/*
* 内部类的概述:
* 在一个类中定义另一个类,内部类
* 举例:在A类中定义了一个B类,B就是A类的内部类,A类叫做外部类!
*
*
* 内部类的访问特点:
* 内部类可以直接访问外部类的成员,包括私有!
*
* 外部类直接可以直接访问内部类的成员吗?
* 外部类不能直接访问内部类的成员!
* 需要在这里创建内部类对象,通过内部类对象使用方法
* */
class Outer{
private int num = 10 ;
//定义一个内部类
class Inner{
public void show(){
System.out.println(num);
}
}
public void method(){
// show();
Inner i = new Inner() ;
i.show();
}
}
package org.westos_内部类;
/*
* 内部类的分类:
* 成员内部类:在外部类的成为位置
* 局部内部类:在外部类的局部位置
* */
class Outer2{
private int num = 10 ;
//成员位置
//成员内部类
// class Inner2{
//
// }
public void method(){
//局部位置
//局部内部类!
class Inner2{
}
}
}
成员内部类:
* 如何访问内部类的成员?
*
* 注意:不能直接创建对象:
* 格式:外部类名.内部类名 对象名 = 外部对象.内部类对象;
* class Outer3{
private int num =10 ;
//成为位置
//定义一个成员内部类
class Inner3{
public void show(){
System.out.println(num);
}
}
public void method(){
}
}
//测试类
public class InnerClassDemo3 {
public static void main(String[] args) {
//内部类访问其中的成员
//创建对象
// Inner3 i = new Inner3();
// i.show();
// 格式:外部类名.内部类名 对象名 = 外部对象. 内部类对象;
// Outer3.Inner3 oi = new Outer3().Inner3();//错误写法
Outer3.Inner3 oi = new Outer3().new Inner3();
oi.show();
}
}
注意:
成员内部类有关的修饰符
* 可有有private :目的是保护数据的安全性
*
* 成员内部类:可以是一个静态的内部类:
* 静态的内部类访问的外部类数据,必须是静态的!