内部类
1.内部类定义和特点
内部类:
把类定义在其他类的内部,我们称之为内部类
内部类有哪些特点:
(1)、内部类可以访问外部类的成员,包括私有
(2)、外部类要想访问内部类的成员,必须要创建内部类的对象
按照内部类在类中定义的位置不同,可以分为如下两种格式:
成员位置(成员内部类)
局部位置(局部内部类)
举例:
public class InnerClassDemo1 {
public static void main(String[] args) {
Outner outner = new Outner();
outner.show1();
}
}
class Outner {
int num = 10;
class Inner {
public void show() {
System.out.println("好好学习天天向上");
}
}
public void show1() {
//在外部类内,内部类外创建内部类对象
Inner inner = new Inner();
inner.show();
}
}
2.成员内部类
成员内部类:
1、定义在类的成员位置上
2、内部类可以访问外部类的成员,包括私有的
正确创建成员内部类对象的格式
外部类名.成员内部类名 对象名 = new 外部类名().new 成员内部类名();
Outer3.Inner oi3 = new Outer3().new Inner();
oi3.show();
举例:
public class InnerClassDemo3 {
public static void main(String[] args) {
//Outner1 outner1=new Outner1();
Outner1.Inner s= new Outner1().new Inner();
s.show();
}
}
class Outner1{
private int num=10;
class Inner{
public void show(){
num=100;
System.out.println("我是内部类的方法");
System.out.println(num);//100
}
}
}
结果:
3.成员内部类常见的修饰符
(1)private: 其他类不能直接创建内部类的对象,要想使用被private修饰内部类成员,必须在本类中间接的创建对象调用
class Outner3{
private int num=100;
private class Inner{
public void show(){
System.out.println("我是私有内部类");
}
}
public void show1(){
Inner inner=new Inner();
inner.