课时125:内部类基本概念
摘要:内部类的基本概念、使用以及优点
1.内部类的基本概念
2.内部类的基本定义与操作示例
3.内部类优点
01.内部类的基本概念
在Java中,类的基本组成是成员属性与方法。同时,在任何编程语言里,结构通常是允许嵌套的。所以当在一个类的内部定义其他类时,这样的类就被称为内部类。
02.内部类的基本定义与操作示例
内部类其本身是一个独立且完善的类结构,在一个类的内部除了属性和方法之外还可以继续使用Class定义内部类。
以下通过一段代码来展示内部类的基本定义和操作形式:
class Outer { // 外部类 private String msg = "www.mldn,cn"; // 私有成员属性 public viod fun() { // 普通方法 Inner in = new Inner() ; // 实例化内部类对象 in.print() ; // 调用内部类方法 } class Inner { // 在Outer类的内部定义了Inner类 public viod print() { System.out.println(Outer.this.msg) ;// Outer类中的属性 } } } public class JavaDemo { public static void main(String args[ ]) { Outer out = new Outer(); // 实例化外部类对象 out.fun(); // 调用外部类中的方法 } }
在上述代码中:
(1) 首先定义了一个外部类Outer,其中包含一个私有成员属性MSG和一个普通方法Fun。
(2) 在Outer类的内部定义了一个内部类Inner,Inner类中有一个Print方法,用于输出外部类Outer中的私有属性Msg。
(3) 在Outer类的Fun方法中,实例化了内部类Inner的对象,并调用了Print方法。
(4) 最后在主程序中实例化Outer类的对象,并调用其Fun方法,从而实现了内部类的基本操作。
实际上从整个的代码上发现内部类的结构并不难理解,甚至可以说其结构与普通类一样清晰明了。那么为什么会提供有内部类这样的结构呢?
因为从整体的代码结构上来讲内部类的结构并不合理,所以内部类本身最大的缺陷在于破坏了程序的结构,但是破坏需要有目的的破坏,那么它也一定会有其优势,如果要想更好的观察出内部类的优势,就可以将这个内部类拿到外面来。
代码示例:
class Outer { // 外部类 private String msg = "www.mldn.cn"; // 私有成员属性 public void fun() { // 普通方法 // 思考五:需要将当前对象Outer传递到Inner类之中 Inner in = new Inner(this); // 实例化内部类对象 in.print(); // 调用内部类方法 } // 思考一:msg属性如果要被外部访问需要提供有getter方法 public String getMsg() { return this.msg; } } class Inner { // 在Outer类的内部定义了Inner类 // 思考三:Inner这个类对象实例化的时候需要Outer类的引用 private Outer out; // 思考四:应该通过Inner类的构造方法获取Outer类对象 public Inner(Outer out) { this.out = out; } public void print() { // 思考二:如果要想调用外部类中的getter方法,那么一定需要有Outer类对象 System.out.println(this.out.getMsg()); // Outer类中的属性 } } public class JavaDemo { public static void main(String args[ ]) { Outer out = new Outer(); // 实例化外部类对象 out.fun(); // 调用外部类中的方法 } }
03.内部类优点
从以上整体的操作中可以发现,其主要目的就是为了让Inner这个内部类可以访问Outer这个类中的私有属性。
但是如果不用内部类的时候整体代码就会变得非常的麻烦,所以可以得出内部类的优点:轻松的访问外部类中的私有属性。