gpt4 book ai didi

Java:关于对象的概念

转载 作者:行者123 更新时间:2023-12-01 08:13:06 25 4
gpt4 key购买 nike

    public class ex11_2 {
public static void main(String[] args){
Object a=new Person("abc1","def1","ghi1");
System.out.println(a.toString());
Object b=new Person("abc2","def2","ghi2");

System.out.println(a.toString());
}
}

class Person{
private static String name;
private static String address;
private static String phoneNo;

public Person(){
}

public Person(String name,String address,String phoneNo){
setName(name);
setAddress(address);
setPhoneNo(phoneNo);
}

public String toString(){
return super.toString()+(" "+getName()+","+getAddress()+","+getPhoneNo()+".");
}

public static String getName() {
return Person.name;
}

public static void setName(String name) {
Person.name = name;
}

public static String getAddress() {
return address;
}

public static void setAddress(String address) {
Person.address = address;
}

public static String getPhoneNo() {
return phoneNo;
}

public static void setPhoneNo(String phoneNo) {
Person.phoneNo = phoneNo;
}
}

大家好,我是一名Java编程初学者,想请教一些关于OOP的问题。在这个小程序中,我创建一个 Person 类并测试它的 toString() 方法。

测试结果为:

Person@635b9e68 abc1,def1,ghi1.
Person@635b9e68 abc2,def2,ghi2.

我想知道为什么b创建后b的数据字段会取代a的数据字段。谢谢

最佳答案

您的成员变量是静态的,不会附加到该类的任何实例。

private static String name;
private static String address;
private static String phoneNo;

静态成员将在类的实例中可用。要更正它,请将它们更改为非静态成员变量。

private String name;
private String address;
private String phoneNo;

关于Java:关于对象的概念,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15802689/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com