我已经在Java中苦苦挣扎了很长一段时间了。
例如,如果我想用一些具有适当的set和get方法的名称,性别,年龄等信息来编写一个类。然后在另一个课程中,我想以此为例测试我的集合和getter:
personInfo = myInfo() = new Personinfo("Anna", "female", "17");
我该怎么做?
我知道我可以打印出像:
public void printout() {
System.out.printf("Your name is: " + getName() +
" and you are a " + getSex());
}
答案 0 :(得分:2)
这是一个向您展示如何操作的简单示例:
public class Person {
private String name;
private String gender;
private int age;
Person(String name, String gender, int age){
this.name = name;
this.gender = gender;
this.age = age;
}
public void setName(String name){
this.name = name;
}
public void setGender(String gender){
this.gender = gender;
}
public void setAge(int age){
this.age = age;
}
public String getName(){
return this.name;
}
public String getGender(){
return this.gender;
}
public int getAge(){
return this.age;
}
public static void main(String[] args)
{
Person me = new Person("MyName","male",20);
System.out.println("My name is:" + me.getName());
me.setName("OtherName");
System.out.println("My name is:" + me.getName());
}
}
这将打印出来:
我的名字是:MyName
我的名字是:OtherName
答案 1 :(得分:1)
您需要在另一个类中创建一个类的对象。然后,您可以调用.get()
和.set()
方法。我将在2分钟内发布一个例子
第一类(我称之为Person)将有方法返回其字段
private String name = "";
private String age = 0;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
第二个类在创建第一个类的对象
之后将调用这些方法bob = new Person("Bob", 21);
System.out.println("Your name is: " + bob.getName() +
" and you are " + bob.getAge());
答案 2 :(得分:1)
让eclipse处理它吧
点击你的变量 来源>生成Setter / Getter
答案 3 :(得分:1)
getter和setter的目的是让你限制/扩展你的财产的范围或功能,彼此独立。
您可能希望您的'name'属性只能在PersonInfo类之外读取。在这种情况下,你有一个getter,但没有setter。您可以通过构造函数传递readonly属性的值,并通过 getter 检索该值:
public class PersonInfo
{
//Your constructor - this can take the initial values for your properties
public PersonInfo(String Name)
{
this.name = Name;
}
//Your base property that the getters and setters use to
private String name;
//The getter - it's just a regular method that returns the private property
public String getName()
{
return name;
}
}
我们可以使用getName()来获取此类实例之外的'name'的值,但由于name属性是private,因此我们无法从外部访问和设置它。而且因为没有setter,所以我们也无法改变这个值,只能使它成为读者。
作为另一个例子,我们可能想在修改内部值之前做一些验证逻辑。这可以在 setter 中完成,另一种方式是getter和setter可以派上用场:
public class PersonInfo
{
public PersonInfo(String Name)
{
this.setName(Name);
}
//Your setter
public void setName(String newValue)
{
if (newValue.length() > 10)
{
this.name = newValue;
}
}
现在我们只能设置'name'的值,如果我们想要设置的值的长度大于10.这只是一个非常基本的例子,你可能想要在那里进行错误处理,以防有人去在你的方法中干扰无效值,并在它不起作用时抱怨。
您可以对所需的所有值执行相同的过程,并将它们添加到构造函数中,以便最初设置它们。至于实际使用这种模式,您可以执行以下操作以查看其实际操作:
public static void main(String[] args)
{
PersonInfo myInfo = new PersonInfo("Slippery Sid",97,"male-ish");
var name = myInfo.getName();
System.out.printf("Your name is: " myInfo.getName() + " and you are a " myInfo.getSex());
myInfo.setName("Andy Schmuck");
System.out.printf("Your name is: " myInfo.getName() + " and you are a " myInfo.getSex());
}
答案 4 :(得分:0)
通过实例化构造函数来创建对象,如下所示
Personinfo pi = new Personinfo("Anna", "female", "17");
然后,您可以按如下方式调用该对象上的方法
pi.setName("Alan");
或
pi.getName();
答案 5 :(得分:0)
In personInfo:
public Person(String n, int a, String s){
this.name=n;
this.age=a;
this.sex=s;
}
public String getName(){
return this.name;
}
public int getAge(){
return this.age;
}
public String getSex(){
return this.sex;
}
public void setName(String n){
this.name = n;
}
public void setAge(int a){
this.age = a;
}
public void setSex(String s){
this.sex = s;
}
然后修复print语句:
System.out.println("Your name is: " + myInfo.getName() + " and you are a " + myInfo.getSex());
答案 6 :(得分:0)
这是你如何做到的:
public class PersonInfo {
private String name;
private String sex;
private int age;
/** GETTERS **/
public String getName(){
return name;
}
public String getSex(){
return sex;
}
public int getAge(){
return age;
}
/** SETTERS **/
public void setName(String name){
this.name = name;
}
public void setSex(String sex){
this.sex = sex;
}
public void setAge(int age){
this.age = age;
}
}
class Test{
public static void main(String[] args){
PersonInfo pinfo = new PersonInfo();
pinfo.setName("Johny");
pinfo.setSex("male");
pinfo.setAge(23);
//now print it
System.out.println("Name: " + pinfo.getName());
System.out.println("Sex: " + pinfo.getSex());
System.out.println("Age: " + pinfo.getAge());
}
}
或者你也可以添加它:
@Override
public String toString(){
return "Name: " + this.name + "\n" +
"Sex: " + this.sex + "\n" +
"Age: " + this.age;
}
然后只是.toString
修改强>
在类中添加此构造函数以初始化对象:
public PersonInfo(String name, String sex, int age){
this.name = name;
this.sex = sex;
this.age = age;
}