就近原则
代码如下
//这是一个类的构造方法
public Cat(String name, String species, double weight, int age) {
name=name;
species=species;
weight=weight;
age=age;
}
对于这个类的构造方法,如果使用上面这样的方式进行编写的话,那么局部变量name和后面那些局部变量的值 ,不可能被赋值到类中的成员属性name,species,weight和age的,这是因为就近原则
就近原则:它会导致在程序进行编译的时候,找到最近的名字相同的变量进行赋值,通过调试你会发现,这里它是自己给自己赋了一会值,对于当前的对象里面的值,还是默认值
这里举个例子,加入你和你弟弟妹妹的名字一样,你妈妈叫某个孩子去打酱油,如果只是叫名字,那么肯定是离你妈妈最近的那个孩子先回答,但是你妈妈可能叫的是离得最远的那个孩子,因为他可能做事比较稳当,差不多就是这个道理吧!这就是个人所理解的就近原则
解决这个问题的办法就是使用this关键字,如下
public Cat(String name, String species, double weight, int age) {
this.name=name;
this.species=species;
this.weight=weight;
this.age=age;
}
这样进行赋值就可以赋值到当前的对象中了,当然你也可以改变局部变量的名字,让它和类中的成员属性的名字不同,这也是一个解决办法,但是在读程序的时候,会有一点不太好理解,当然只是一点点