内部类和外部类⽅法间的互相调⽤内部类调⽤外部类的⽅法
public class test{
public static void main(String[] args) {
Outer.Inner  p=new Outer().new Inner();
p.show();
}
}
class Outer{
int sum;
//在Outer类中声明⼀个内部类Inner
class Inner{
public void show(){
System.out.println("这是内部类的⽅法");
//在内部类的⽅法中调⽤外部类的⽅法:直接外部类的名字+this+外部类⽅法名
st();
}
}
public void test(){
System.out.println("这是⼀个外部类⽅法");
}
}
外部调⽤内部类的⽅法
1. 使⽤static可以声明⼀个内部类,可以直接在外部调⽤
// 定义外部类
public class Outer{
// 定义外部类的私有属性 info
private static String info = "hello world";
/
/ 定义外部类的⽅法
public void fun(){
// 通过内部类的实例化对象调⽤内部类的⽅法
new Inner().print();
}
// 使⽤static定义内部类
static class Inner{
实例化类和实例化对象// 定义内部类的⽅法
public void print(){
// 直接访问外部类的私有属性
System.out.println(info);
}
};
};
public class test{
public static void main(String args[]){
new Outer.Inner().print();  // 调⽤外部类的fun()⽅法
}
};
2. 不使⽤statc声明⼀个内部类,使外部调⽤
//定义外部类
class Outer{
/
/ 定义外部类的私有属性
private String info = "hello world";
// 定义外部类的⽅法
public void fun(){
// 通过内部类的实例化对象调⽤⽅法
new Inner().print();
}
// 定义内部类
class Inner{
// 定义内部类的⽅法
public void print(){
/
/ 直接访问外部类的私有属性
System.out.println(info);
}
};
};
public class test{
public static void main(String args[]){
// 外部类实例化对象
Outer out = new Outer();
// 内部类实例化对象
Outer.Inner in = w Inner();
/
/ 调⽤内部类的⽅法
in.print();
}
};
3. 在⽅法中定义内部类,使外部调⽤
// 定义外部类
class Outer{
// 定义外部类的私有属性
private String info = "hello world";
// 定义外部类的⽅法
public void fun(final int temp){
/
/ 在⽅法中定义的内部类
class Inner{
// 定义内部类的⽅法
public void print(){
// 直接访问外部类的私有属性
System.out.println("外部类的属性:" + info);
System.out.println("外部类的⽅法中的参数:" + temp) ;            }
};
// 通过内部类的实例化对象调⽤⽅法
new Inner().print();
}
};
public class InnerClassDemo05{
public static void main(String args[]){
// 调⽤外部类的⽅法
new Outer().fun(30);
}
};

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。