内部类
内部类
-
内部类就是一个在类的内部再定义一个类,比如,A类中定义一个B类,那么B类相对A类来说就成为内部类,而A类为B类的外部类
-
-
-
成员内部类
2.静态内部类
- 不依赖外部类对象,可直接创建或通过类名访问,可声明静态成员。相当于一个外部类
3.局部内部类
-
-
不能加任何访问修饰符
4.匿名内部类
成员内部类:
package com.oop; import com.oop.demo08.Outer; public class Application { public static void main(String[] args) {
//1.创建外部类对象 Outer outer = new Outer();
//2.创建内部类对象 Outer.Inner inner = outer.new Inner(); inner.in(); inner.getID(); } } package com.oop.demo08; //讲的是成员内部类 public class Outer { private int id=10; public void out(){ System.out.println("这是外部类的方法"); } public class Inner{ public void in(){ System.out.println("这是内部类的方法"); } //获得外部类的私有属性 public void getID(){ System.out.println(id); } } }
静态内部类:
package com.oop; import com.oop.demo08.Outer; public class Application { public static void main(String[] args) { //创建静态内部类对象 Outer.Inner inner = new Outer.Inner(); inner.show(); inner.in(); } } package com.oop.demo08; //讲的是成员内部类 public class Outer { private int id=10; public void out(){ System.out.println("这是外部类的方法"); } //静态内部类:和外部类同级 public static class Inner{ private static int count=50; public void in(){ System.out.println("这是内部类的方法"); } //获得外部类的私有属性 public void show(){ //调用外部类对象属性和方法 //1.先创建外部类对象 Outer outer = new Outer(); //2.调用外部类对象的属性和方法 System.out.println(outer.id); outer.out(); //调用静态内部类的属性和方法 System.out.println(count); } } }
局部内部类
package com.oop; import com.oop.demo08.Outer; public class Application { public static void main(String[] args) { //创建静态内部类对象 Outer outer = new Outer(); outer.out(); } } package com.oop.demo08; //讲的是成员内部类 public class Outer { private int id=10; public void out(){ //局部内部类:不能加任何访问修饰符 class Inner{ //局部内部类的属性和方法 private int count=50; public void show(){ //调用外部类对象属性和方法 System.out.println(id); //调用静态内部类的属性 System.out.println(count); } } //创建局部类对象 Inner inner = new Inner(); inner.show(); } }
匿名内部类:
package com.oop; import com.oop.demo08.Usb; public class Application{ public static void main(String[] args) { //使用匿名内部类(相当于创建了一个局部内部类) Usb usb = new Usb() { @Override public void service() { System.out.println("连接电脑成功,开始工作"); } }; usb.service(); } } package com.oop.demo08; public interface Usb { public void service(); }





浙公网安备 33010602011771号