Java 访问器方法的使用

Java 访问器方法的使用,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;

这是我的类,包含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;
        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方法之后,看看有助于实现这一点的一个库:Change
String 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;
}