Java 访问器方法的使用
这是我的类,包含setter和getterJava 访问器方法的使用,java,getter-setter,Java,Getter Setter,这是我的类,包含setter和getter package Pack; public class Details { String FirstName,LastName,City,Country; public Details(String firstName, String lastName, String city, String country) { super(); FirstName = firstName;
package Pack;
public class Details {
String FirstName,LastName,City,Country;
public Details(String firstName, String lastName, String city,
String country) {
super();
FirstName = firstName;
LastName = lastName;
City = city;
Country = country;
}
public String getFirstName() {
return FirstName;
}
public void setFirstName(String firstName) {
FirstName = firstName;
}
public String getLastName() {
return LastName;
}
public void setLastName(String lastName) {
LastName = lastName;
}
public String getCity() {
return City;
}
public void setCity(String city) {
City = city;
}
public String getCountry() {
return Country;
}
public void setCountry(String country) {
Country = country;
}
}
===========================================================================
这是我的主要任务
==========================================================================
我知道我的main()不完整。我应该写什么来显示“d”的内容?类似的内容
System.out.printf("%s %s (%s, %s)\n", d.getFirstName(), d.getLastName(), d.getCity(), d.getCountry());
我会将您的字段(FirstName、LastName、City和Country)设置为私有字段,否则使用getter和setter没有多大意义。有两种方法
第一,只需打印details对象的每个属性:
System.out.println(“FirstName:+d.getFirstName())代码>等
或者,更好的选择是重写类中的toString()
方法
public void toString() {
return this.getFirstName()+ " " + this.getLastName()+" "+.... ;
}
然后只需打印类System.out.println(d)代码>重写toString()方法的详细信息如下,然后只需调用即可打印所需内容:
public String toString(){
return this.firstName+" "+this.lastName+" "+this.city+" "+this.country;
}
大体上,只需将其称为System.out.println(d)代码>在Details类中需要一个toString()方法:
public String toString(){
return this.firstName + " " + this.lastName + ", " + this.city + " " + this.country;
}
及
在main中,尝试添加方法(或具有更多属性的类似方法):
toString()也是一个不错的选择。我需要“重写”还是“生成”toString()?@hari:只需将我的答案中的方法复制/粘贴到您的代码中即可。它将自动覆盖。如果您希望可以在方法的顶部添加@Override
注释。因为这应该是Details类的函数,所以不要调用d的实例。相反,可以使用字段变量FirstName、LastName等,也可以调用方法getFirstName()等。返回getFirstName()+“”+LastName+…如果成功重写toString()
方法,则可以执行System.out.println(d)
(请参见我如何省略toString()
)。@Everyone:注意Nishan是如何使用toString()
中的访问器方法,而不是直接使用实例变量本身。这打开了许多可能性。在厌倦了键入toString方法之后,看看有助于实现这一点的一个库:ChangeString FirstName、LastName、City、Country代码>至私人字符串firstName、lastName、city、country代码>。按照惯例,Java变量是camelCase,类名是PascalCase。使用this.
区分类作用域变量和方法参数或方法变量。将便利getter添加为方法不会显示类内容。
public String toString(){
return this.firstName + " " + this.lastName + ", " + this.city + " " + this.country;
}
System.out.println(d.toString());
public String asFirstnameLastname()
{
return firstName + " " + lastName;
}
public String asLastNameFirstname()
{
return lastName + " " + firstName;
}