java类的比较_关于JAVA类的比较的问题!

publicclassPersons{privateStringname;privateintage;publicPersons(Stringname,intage){this.setName(name);this.setAge(age);}publicbooleancompare(Personsper){Personsp1=this;P...

public class Persons {

private String name;

private int age;

public Persons(String name,int age){

this.setName(name);

this.setAge(age);

}

public boolean compare(Persons per){

Persons p1=this;

Persons p2=per;

if(p1==p2){//比较两个地址是否相等

return true;

}

//分别判断每一个属性是否相等

if(p1.name.equals(p2.name) && p1.age==p2.age){

return true;

}else{

return false;

}

}

public String getName(){

return name;

}

public void setName(String n){

name=n;

}

public int getAge(){

return age;

}

public void setAge(int a){

age=a;

}

}

/*======================这上面是Persons类里面有compare方法进行类的比较================================*/

/*==============这下面是入口==================*/

public class test_per {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

Persons p1=new Persons("张三",22);

Persons p2=new Persons("张三",22);

boolean b=p1.compare(p2);

if(b){

System.out.println("相等");

}else{

System.out.println("不相等");

}

}

}

/*================下面是问题======================*/

问题是:persons类里面的compare方法里面进行p1.name和p2.name的方法进行比较的时候,p1.name直接调用没有疑问,因为调用的是本对象里面的私有属性。但是为什么p2.name也能直接调用呢?p2是另外一个对象啊,它不得通过getName()方法调用自身对象的name属性吗?对这里搞不懂,还请高手解答。同理还有age属性的调用也是。

展开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值