package com.qf.inner02;
//静态内部类
public class DemoInner02 {
public static void main(String[] args) {
//实例化内部类对象
Outer.Inner inner = new Outer.Inner();
}
}
class Outer{
private String name="tom";
private static String phone="1234";
public void run(){
//访问内部类成员
System.out.println(Inner.sex);
Inner.drink();
Inner inner = new Inner();
System.out.println(inner.age);
inner.eat();
}
public static void sleep(){
}
//静态内部类
static class Inner{
private int age = 20;
//静态内部类中可以直接声明静态成员
private static String sex="male";
public static void drink(){
}
public void eat(){
//不能直接访问非静态成员
//System.out.println(name);
//run();
//可以直接访问静态成员
System.out.println(phone);
sleep();
}
}
}
/*
静态内部类,使用static修饰内部类
a:静态内部类不持有外部类的引用,不能直接访问外部类中非静态成员,可以直接访
问静态成员
b:静态内部类中可以直接声明静态成员
c:在外部类中访问内部类的成员
1)静态的成员,内部类名直接访问,Inner.age
2)非静态成员,实例化内部类对象之后访问
d:实例化内部类对象
Outer.Inner inner = new Outer.Inner();
e:生成的字节码文件:Outer$Inner.class
*/
java静态内部类
最新推荐文章于 2022-03-21 08:20:51 发布