java内部类

来源:互联网 发布:淘宝的慈恩数码怎么样 编辑:程序博客网 时间:2024/06/06 07:32
内部类分为四种:
1、成员内部类
2、静态内部类
3、方法内部类
4、匿名内部类


一、例子:
成员内部类:
public class HelloWorld{
String name = "xiaobai";//在内部类的外部定义一个变量


//定义一个内部类
class Inner{
String name = "zhangsan";

public void show(){
//访问外部类的属性
System.out.println("访问外部类"+Inner.this.name);

System.out.println("访问内部类"+name);
}
}
//程序的入口
public static void main(String[] args){
//实例化对象
HelloWorld sl = new HelloWorld();
//实例化内部类对象
Inner a = sl.new Inner();
//调用内部类里面的方法
a.show();
}
}

二、静态内部类:
1、静态内部类不能直接访问外部类的非静态方法,但可以通过new 外部类().成员访问
2、如果外部类的静态成员与内部类的成员名称相同,可通过类名.静态成员 访问
3、创建内部类对象时,不需要创建外部类,直接可以创建内部类
格式:内部类名称 对象名 = new 内部类();

例子:
public class HelloWorld{
//定义外部类的静态属性
public static String name = "xiaobai";
//定义外部类的非静态属性
String age = 21;
//创建内部类
public static class Inner{
public static String name = "zhangsan";
public void show(){
//访问外部类的非静态属性
System.out.println("外部类的age"+new HelloWorld().age);

System.out.println("外部类的name"+HelloWorld.name);

System.out.println("内部类的name"+name);
}
}

public static void main(String[] args){
Inner a = new Inner();
a.show();
}
}

三、方法内部类:
顾名思义,只能在方法内部定义和访问的类
例子:
public class HelloWorld{
public void show(){
String name = "xiaobai";
//定义一个内部类
class Inner{
Inner(){
System.out.println(name);
}
}
//在方法中实例化内部类对象
Inner in = new Inner();
in.Inner();
}

public static void main(String[] args){
HelloWorld h = new HelloWorld();
//只需要调用上面的show方法就可以执行内部类的内容
h.show();
}
}
0 0
原创粉丝点击