public class ThikingTest {
public static void main(String[] args){
T t=new T();
System.out.println(t.a);
t.getA();
}
}
class T{
private int a=5;
public T(){
}
public int getA(){
return this.a;
}
}
在调用getA()的时候 this==t ,它不照样是t.a访问的吗?
这是怎么回事?大侠们谁能说出它的深层原理?
public static void main(String[] args){
T t=new T();
System.out.println(t.a);
t.getA();
}
}
class T{
private int a=5;
public T(){
}
public int getA(){
return this.a;
}
}
在调用getA()的时候 this==t ,它不照样是t.a访问的吗?
这是怎么回事?大侠们谁能说出它的深层原理?
解决方案 »
- Hibernate居然JDBC连不上
- 作为JAVA新手应该怎么办~!!
- 随意问下,一个窗口中包含多个jpanel,jpanel中包含jbutton和自定义的控件等,关闭窗口时,释放资源是如何考虑的?是不是只要在frame关闭时调用下this.dispose();以及自定义控件提供的释放方法 就可以释放所有资源了?
- 那里有jmf中文技术指南?
- 有经验的捧个台场,有志的捧个人场---集思广益,如何管理一个小的团队(做java项目)
- 100分求教,在redhatlinux 下 jdk安装好了,如何设置classpath path javahome?
- JAVA的属性也太那个了点吧
- 请高手指点
- 如何实现JTree在不同的子叶的情况下,显示不同的图标形式?
- 我对同步嵌入类很模糊,哪位朋友可以详细说明一下,谢了
- 这样会不会形成死递归
- 关于java mysql jdbc中中文的问题,我在csdn中找过没找到答案,高人指点!
至于深层的原理.应该是sun定义的修饰符规则.
这里不是只有get方法么
return a;
这和一般的权限控制差不多.但是他能访问到public的getA方法,然后getA方法由于属于T的实例方法,所以又能访问到T实例中的a字段.这都是规则,基于数据保护原则的规则.