Cirry's Blog

内部包

Sep 27, 2019
技术 java
2分钟
365字

定义一个内部类

class Outer{ //外部类
private String msg = "cirry"; //私有成员属性
public void fun(){ // 普通方法
Inner inner = new Inner(); //实例化内部类对象
inner.print();
}
class Inner{ // 内部类
public void print(){
System.out.println(Outer.this.msg); //outer类中的属性
}
}
}
public class InnerClass{
5 collapsed lines
public static void main(String args []){
Outer outer = new Outer(); //实例外部类对象
outer.fun(); // 调用外部类中的方法
}
}

将以上程序分为两个类:

class Outer{ //外部类
private String msg = "cirry"; //私有成员属性
public void fun(){ // 普通方法
//思考五:需要将我们的对象Outer传递到Inner类当中
Inner inner = new Inner(this); //实例化内部类对象
inner.print();
}
// 思考一:msg属性如果要被外部访问需要getter方法
public String getMsg() {
return this.msg;
}
}
class Inner{ // 内部类
19 collapsed lines
//思考三:Inner这个类对象实例化的时候需要Outer类的引用;
private Outer out;
//思考四:需要通过Inner类的构造方法获取Outer类对象
public Inner(Outer out){
this.out = out;
}
public void print(){
//思考二:如果需要调用外部类中的getter方法,那么一定需要outer类对象
System.out.println(this.out.getMsg()); //outer类中的属性
}
}
public class InnerClass{
public static void main(String args []){
Outer outer = new Outer(); //实例外部类对象
outer.fun(); // 调用外部类中的方法
}
}

内部类实例化对象的格式如下:

//外部类.内部类 内部类对象 = new 外部类().new 内部类();
Outer.Inner in = new Outer().new Inner();
本文标题:内部包
文章作者:Cirry
发布时间:Sep 27, 2019
感谢大佬送来的咖啡☕
alipayQRCode
wechatQRCode
总访问量
总访客数人次