• Java 内部类


    • 内部类:一个类定义在另一个类内部,不能有static成员
    • 在外部类的静态方法中创建内部类要写全名
      Parec2.Content c = q.content()
    • 从内部类链接到外部类:
      • 内部类拥有其外部类的所有元素的访问权限
      • 原因:创建内部类时会获得一个外部类的引用
      • 生成对外部类对象的引用:外部类名+.:
    • 在外部类创建内部类对象:必须使用外部类的对象创建内部类,因为内部类对象隐式地保存了指向外部类的引用
    class A{
    	public class b{}
    	public void static main(String[] args){
    		A a = new A();
    		A.B b = a.new B();
    	}
    }
    ``` 
    * 嵌套类:如果外部类对象与内部类对象之间没有关系,可以将内部类声明为static,但不能从嵌套类访问非静态外围类对象
    * 使用内部类的意义:可以间接实现多重继承
    * Class对象命名:OuterClass$InnerClass
    * 匿名内部类:匿名内部类也就是没有名字的内部类,使用匿名内部类还有个前提条件:必须继承一个父类或实现一个接口
    	* 不使用匿名内部类:
    	```java
    	abstract class Person {
        public abstract void eat();
    	}
    	class Child extends Person {
        public void eat() {
            System.out.println("eat something");
        }
    	}
    	public class Demo {
        public static void main(String[] args) {
            Person p = new Child();
            p.eat();
        }
    	}
    	```
    	* 实现接口:
    	```java
    	interface Person {
        public void eat();
    	} 
    	public class Demo {
        public static void main(String[] args) {
            Person p = new Person() {
                public void eat() {
                    System.out.println("eat something");
                }
            };
            p.eat();
        }
    	}
    	```
    	* 最常用的情况就是在多线程的实现上,因为要实现多线程必须继承Thread类或是继承Runnable接口<br>
    	```java
    	public class Demo {
        public static void main(String[] args) {
            Thread t = new Thread() {
                public void run() {
                    for (int i = 1; i <= 5; i++) {
                        System.out.print(i + " ");
                    }
                }
            };
            t.start();
        }
    }
    	```
  • 相关阅读:
    ASP.NET Cache的一些总结分享
    C#中委托和事件的区别实例解析
    [hdu2544]最短路spfa
    [codeforces274b]Zero Tree(树形dp)
    [poj2151]Check the difficulty of problems概率dp
    [poj3071]football概率dp
    [poj3744]Scout YYF I(概率dp+矩阵快速幂)
    [bzoj2440]完全平方数(二分+mobius反演)
    [xdoj1216]子树第k小(dfs序+主席树)
    [xdoj1233]Glory and LCS
  • 原文地址:https://www.cnblogs.com/NewDolphin/p/5397233.html
Copyright © 2020-2023  润新知