Java——内部类
不止Java
共 3193字,需浏览 7分钟
·
2021-07-17 18:17
目录
成员内部类 局部内部类
在一个类中定义一个类。前者称为外部类,后者即为内部类。
内部类的访问特点:
内部类可以直接访问外部类的成员,包括私有;
外部类要访问内部类的成员,必须要创建对象。
内部类定义格式:
public class 类名{
修饰符 class 类名{
}
}
public class Outer {
private int n = 20;
public class Inner{
public void show (){
System.out.println(n);
}
}
public void method() {
//创建对象访问内部类成员
Inner i = new Inner();
i.show();
}}
成员内部类
public class Outer {
private int n = 20;// public class Inner{//// public void show (){// System.out.println(n);// }// }
private class Inner {
public void show() {
System.out.println(n);
}
}
public void method() {
//创建对象访问内部类成员
Inner i = new Inner();
i.show();
}}
public class InnerDemo {
public static void main(String[] args) {
//创建内部类对象,并调用方法
//格式:外部类名.内部类名 对象名 = 外部类对象.内部类对象// Outer.Inner oi = new Outer().new Inner();// oi.show();
Outer o = new Outer();
o.method();
}}
局部内部类
public class Outer {
private int n = 20;
public void method() {
class Inner {
public void show() {
System.out.println(n);
}
}
Inner i = new Inner();
i.show();
}}
/*
测试类
*/public class OuterDemo {
public static void main(String[] args) {
Outer o = new Outer();
o.method();
}}
public class Outer {
public void method() {
//本质为对象
Inter i = new Inter() {
@Override
public void show() {
System.out.println("匿名内部类");
}
};
i.show();
}}
public interface Inter {
void show();}
/*
测试类
*/public class OuterDemo {
public static void main(String[] args) {
Outer o = new Outer();
o.method();
}}
评论