java类中属性的问题。方法中是怎么匹配的

class Main {
public static void main(String[] args) {

box a =new box();
System.out.print(a.ares());//这里调用的a。方法中的

//ares();怎么知道是box类中的loner和wih;

}
}
class box{
int longer =2;
int wih =6;
public int ares(){

    return longer*wih ;
}

}

1、System.out.print(a.ares());这里不是调用的a,是box的实例对象a调用了其实例方法ares();
2、ares()方法是public类型的,返回值是 longerwih 的乘积。longer和wih是box的属性,在box中可以直接调用。这里的longerwih其本质是this.longer*this.wih 也就是该类的实例对象进行的调用。
3、怎么知道是box类中的loner和wih;因为a.ares()是a调用了ares(),a是box类的实例对象,这两个属性是box类的实例属性,所以box的实例对象可以直接调用。
4、对于类名的书写规范建议以大写英文字母开头,尽量不要小写开头,以便区分类名与实例对象。


longer*wih
this.longer*this.with

this是指本类对象,ares方法是public,longer和wih是default,所以方法可以访问类的成员变量,进行调用

查看对象的实例化过程
https://segmentfault.com/a/1190000023662354