1.内部类的概述和分类
/*
1.定义在在一个类内部的类
2.内部类访问特点:
A.内部类可以直接访问外部类的成员,包括私有
B.外部类要想访问内部类,必须创建对象
3.内部类的位置:
A.成员位置:内部类在成员位置
B.局部位置:内部类在局部位置
*/
class Outer{
private int num=10;
//成员位置
class inter{
public void show(){
//A.内部类可以直接访问外部类的成员,包括私有
System.out.println(num);
}
}
//B.外部类要想访问内部类,必须创建对象
public void method(){
inter i = new inter();
System.out.println(i.show);
/*
//局部位置
class inter{
}
*/
}
}
class InterClassDemo{
public static void main(String args[]){
}
}
(A)成员内部类
(a).成员内部类的访问
/*
成员内部类:
访问内部类成员:
外部类名.内部类名 对象名 = 外部类对象.外部类对象
*/
class Outer{
private int num=10;
//成员位置
class inter{
public void show(){
System.out.println(num);
}
}
}
class InterClassDemo2{
public static void main(String[] args){
//访问内部类
Outer.inter oi= new Outer().new inter();
oi.show();
}
}
(b).成员内部类的修饰符
private:为了保证数据的安全性
static:为了方便访问数据
注意: 用static修饰的内部类,访问的外部类数据必须用静态修饰
/*
成员内部类的修饰符:
private:保证数据的安全性
static:
成员静态内部类中的方法,可以是静态的,也可以是非静态的
注意:被静态修饰的内部类,只能访问外部类的静态数据
*/
class Outer{
private int num=10;
static int num2=100;
//成员位置
public static class inter{
public void show(){
System.out.println(num2);
}
public static void show2(){
System.out.println(num2);
}
}
}
class TnterClassDemo3{
public static void main(String[] args){
//访问成员静态内部类
Outer.inter oi = new Outer.inter();
oi.show();
oi.show2();
//show2的另一中调用
Outer.inter.show2();
}
}