/*
* 内部类简单的说就是在类或者方法/代码块中再定义一个类,就是嵌套。
* 内部类分为有名内部类和匿名内部类,其中有名内部类又分为局部内部类和成员内部类,
* 成员内部类又分为实例成员内部类和静态成员内部类。
* 接下来记录静态成员内部类,这个和静态变量类似,声明内部类时加上static,静态成员内部类只能访问外部类的静态成员(变量和方法)。
*/
package myfirst_Java;
public class Hello {
//主程序入口
public static void main(String[] args) {
// 实例化外部类,并调用外部类方法
Outer out=new Outer();
out.Test();
// 实例化内部类,要先实例化外部类,并调用内部类方法
Outer.Inner inner=new Outer.Inner();
// Outer.Inner inner=out.new Inner();实例成员内部类时,直接调用内部类的实例化方法与静态内部类不一样哦
inner.Display();
inner.Hang();
}
}
//外部类
class Outer{
// 外部类变量和方法
private int a=100;
// 外部类静态变量
private static int x=100;
private static void Print() {
System.out.println("我是静态外部方法");
}
private void Print2() {
System.out.println("我是非静态外部方法");
}
void Test(){
Inner in=new Inner();
in.Display();
}
// 内部类
static class Inner{
// 内部类变量和方法
private int x=50;
void Display(){
// 注意this的使用,其实就是一个指向的作用,无论是指向方法还是变量
// System.out.println("访问外部类成员变量"+a);//报错,只能访问静态变量,类名+静态变量,注意不要加this
System.out.println("访问外部类成员变量"+Outer.x);
System.out.println("访问内部类成员变量"+this.x);
// 内部类成员变量的访问,也可以不加this
System.out.println("访问内部类成员变量"+x);
// 访问外部类静态方法,直接类名+静态方法,注意不要加this
Outer.Print();
// 访问外部类非静态方法,报错,只能访问静态方法
// Outer.Print2();
}
void Hang(){
System.out.println("我是内部类方法");
}
}
}
Python每日一记167>>>Java内部类之静态成员内部类
最新推荐文章于 2022-11-07 17:19:27 发布