package net.gerhut.example.authora;
public class Component {
public void getData()
{
System.out.println("Transferring data...");
};
}
package net.gerhut.example.authorb;
import net.gerhut.example.authora.Component;
public class MainSystem {
private Component component;
private class MainComponent extends Component
{
public void getData()
{
super.getData();
getDataHandle();
}
}
private MainSystem()
{
component = new MainComponent();
}
private void getDataHandle()
{
System.out.println("MainSystem Data Refreshed.");
}
private void refresh()
{
component.getData();
}
public static void main(String[] args) {
new MainSystem().refresh();
}
}
Transferring data...
MainSystem Data Refreshed.
package net.gerhut.example.authora;
public class Component {
public void getDataHandle()
{
System.out.println("Component Data Refreshed.");
}
public void getData()
{
System.out.println("Transferring data...");
getDataHandle();
};
}
Transferring data...
Component Data Refreshed.
Component Data Refreshed.
内部类的this有三种指向:
1、本类的成员,即this.getDataHandle
2、父类的成员,即super.getDataHandle
3、所属类的成员,即MainSystem.this.getDataHandle
其优先级是从1最高3最低,如果强制指定低优先级的this需要改成全称。码农B在this的指向上没有考虑到将来可能会有的的升级,直接指代了优先级最低的对象,是一种很不好的习惯,所以说,this一般来说就指本类的成员,其他七七八八的成员最好使用super或者所属类.this的指代方法,避免类似问题不再发生。