定义:定义在类里面的类被称为“内部类”。
根据内部类的定义位置分为:
- 成员内部类
- 静态内部类
- 方法内部类
- 匿名内部类
成员内部类:内部类与外部类的成员变量在一级。
public class TestInnerClass { private String name = "外部类"; public class InnerClass { private String name = "成员内部类"; public void show() { System.out.println("我是" + TestInnerClass.this.name);//使用外部类.this.变量名→访问外部类的变量,且不管外部类的修饰符是什么 System.out.println("我是" + name); } } public static void main(String[] args) { TestInnerClass ic = new TestInnerClass(); System.out.println(ic.name); ic.new InnerClass().show();//必须使用外部类对象来创建内部类对象 show();//编译出错,外部类无法直接访问内部类的方法及变量 } }
包含成员内部类的编译效果:
静态内部类:
public class TestInnerClass { private String name = "外部类"; private static String name2 = "静态外部变量"; public static class InnerClass2 { public static String name2 = "内部类静态变量"; public void show() { //静态内部类可以使用外部类对象访问外部类非静态变量 System.out.println("外部类非静态变量:" + new TestInnerClass().name); //静态内部类可以使用外部类直接访问外部类静态变量 System.out.println("外部静态变量:" + TestInnerClass.name2); System.out.println("内部类静态变量:" + name2); //静态内部类可以使用外部类直接调用外部类的静态方法 TestInnerClass.show(); //静态内部类使用外部类对象访问外部类非静态方法 new TestInnerClass().show2(); } } public static void show() { System.out.println("外部类静态方法"); } public void show2() { System.out.println("外部类非静态方法"); } public static void main(String[] args) { InnerClass2 ic2 = new InnerClass2();//静态内部类可以直接创建 ic2.show(); } }
方法内部类:内部类定义在外部类的方法中,且只有在外部类的方法中可见、使用,故方法的内部类不能使用访问控制修饰符和static修饰符,可以使用abstract和final修饰。
public class TestInnerClass { public void show2() { class MethodInnerClass { //方法内部类 public String name = "方法内部类"; public void show() { System.out.println(name); } } MethodInnerClass mis = new MethodInnerClass();//创建方法内部类 mis.show(); } public static void main(String[] args) { TestInnerClass ic = new TestInnerClass(); ic.show2(); } }
相关推荐
Java 内部类 实例化 在Outer类的静态方法中实例化内部类 在同一个包的其它类中实例化Outer类中的内部类
java中内部类的分类及用法.pdf
java中内部类的使用.doc
在java语言中,有一种类叫做内部类(inner class),也称为嵌入类(nested class),它是定义在其他类的内部。
java中内部类与外部类的学习资料.docx
JAVA从JDK1.1开始引入了内部类,可以参见代码,感觉好处就是设计类的时候可以偷懒,呵呵。主要是可以引用类的内部其他元素,差不多是把这个内部类当成原类的元素。还有可以隐藏类的一些设计细节,好处还是很多的。
java 匿名内部类的使用规范 java 匿名内部类的使用规范 java 匿名内部类的使用规范
14.java局部内部类(方法中类).zip14.java局部内部类(方法中类).zip14.java局部内部类(方法中类).zip14.java局部内部类(方法中类).zip14.java局部内部类(方法中类).zip14.java局部内部类(方法中类).zip14...
Java 接口 内部类Java 接口 内部类Java 接口 内部类
16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名...
java 局部内部类的使用规范 java 局部内部类的使用规范
Java内部类Java内部类Java内部类Java内部类Java内部类Java内部类Java内部类
主要讲述了JAVA中内部类和匿名内部类的相关问题。
java 内部类应用java 内部类应用java 内部类应用java 内部类应用java 内部类应用java 内部类应用java 内部类应用java 内部类应用java 内部类应用java 内部类应用
java 成员内部类的使用规范 java 成员内部类的使用规范
15.java静态内部类(相当于外部类).zip15.java静态内部类(相当于外部类).zip15.java静态内部类(相当于外部类).zip15.java静态内部类(相当于外部类).zip15.java静态内部类(相当于外部类).zip15.java静态内部...
Java内部类是Java言语的一个很重要的概念,《Java编程思想》花了很大的篇幅来讲述这个概念。但是我们在实践中很少用到它,虽然我们在很多时候会被动的使用到它,但它仍然像一个幕后英雄一样,不为我们所知,不为我们...
java内部类详解
12.java内部类.zip12.java内部类.zip12.java内部类.zip12.java内部类.zip12.java内部类.zip12.java内部类.zip12.java内部类.zip12.java内部类.zip12.java内部类.zip12.java内部类.zip12.java内部类.zip12.java内部类...