Cirry's Blog

内部包

2019-09-27
技术
java
最后更新:2024-03-22
2分钟
365字

定义一个内部类

1
class Outer{ //外部类
2
private String msg = "cirry"; //私有成员属性
3
public void fun(){ // 普通方法
4
Inner inner = new Inner(); //实例化内部类对象
5
inner.print();
6
7
}
8
class Inner{ // 内部类
9
public void print(){
10
System.out.println(Outer.this.msg); //outer类中的属性
11
}
12
}
13
}
14
15
public class InnerClass{
5 collapsed lines
16
public static void main(String args []){
17
Outer outer = new Outer(); //实例外部类对象
18
outer.fun(); // 调用外部类中的方法
19
}
20
}

将以上程序分为两个类:

1
class Outer{ //外部类
2
private String msg = "cirry"; //私有成员属性
3
public void fun(){ // 普通方法
4
5
//思考五:需要将我们的对象Outer传递到Inner类当中
6
Inner inner = new Inner(this); //实例化内部类对象
7
inner.print();
8
}
9
// 思考一:msg属性如果要被外部访问需要getter方法
10
public String getMsg() {
11
return this.msg;
12
}
13
}
14
15
class Inner{ // 内部类
19 collapsed lines
16
//思考三:Inner这个类对象实例化的时候需要Outer类的引用;
17
private Outer out;
18
19
//思考四:需要通过Inner类的构造方法获取Outer类对象
20
public Inner(Outer out){
21
this.out = out;
22
}
23
public void print(){
24
//思考二:如果需要调用外部类中的getter方法,那么一定需要outer类对象
25
System.out.println(this.out.getMsg()); //outer类中的属性
26
}
27
}
28
29
public class InnerClass{
30
public static void main(String args []){
31
Outer outer = new Outer(); //实例外部类对象
32
outer.fun(); // 调用外部类中的方法
33
}
34
}

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

1
//外部类.内部类 内部类对象 = new 外部类().new 内部类();
2
Outer.Inner in = new Outer().new Inner();
本文标题:内部包
文章作者:Cirry
发布时间:2019-09-27
版权声明:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
感谢大佬送来的咖啡☕
alipayQRCode
wechatQRCode