java之内部类
发布时间:2020-12-15 06:43:38 所属栏目:Java 来源:网络整理
导读:在Java中,允许一个类的定义位于另一个类的内部,前者称为内部类,后者称为外部类。 Inner class一般用在定义它的类或语句块之内,在外部引用它时必须给出完整的名称,Inner的名字不能与包含它的类名相同; Inner class可以使用外部类的私有数据,因为它是外
在Java中,允许一个类的定义位于另一个类的内部,前者称为内部类,后者称为外部类。 Inner class一般用在定义它的类或语句块之内,在外部引用它时必须给出完整的名称,Inner的名字不能与包含它的类名相同; Inner class可以使用外部类的私有数据,因为它是外部类成员,同一个类的成员之间可以相互访问,而外部类要访问内部类中的成员需要:内部类.成员或者内部类对象.成员。 分类:成员内部类(static成员内部类和非static成员内部类)、局部内部类(不带修饰符)、匿名内部类 Test.java package fac; public class Test { int i; j; private k; A{ i; void setTestFields() { Test.this.i = 1; Test.this.j = 2this.k = 3; } set() { this.i = 4 get() { System.out.println(this.i); } } seInfo() { new A().setTestFields(); } showInfo() { System.out.println(.i); System.out.println(.j); System.out.println(.k); } static main(String[] args) { Test t = Test(); t.seInfo(); t.showInfo(); Test.A a = t. A(); a.set(); a.get(); } } 输出: 1 2 3 4 内部类特性:
内部类的作用是什么? 主要是解决Java不能多重继承。 Test2 { main(String[] args) { //现在类A可以获得类B和类C的方法 A a = A(); a.testB(); a.testC(); } } A{ testB() { InnerB().testB(); } testC() { InnerC().testC(); } class InnerB extends B{ testB(){ System.out.println("这是重写之后的B方法"); } } class InnerC C{ testC(){ System.out.println("这是重写之后的C方法"); } } } B{ testB(){ }} C{ testC(){ }} 输出: 这是重写之后的B方法 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |