zoukankan      html  css  js  c++  java
  • 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();
        }
    }
    	```
  • 相关阅读:
    win10如何在局域网中设置一台电脑的固定ip地址
    智能电视软件安装(WIFI上网)
    路由器连接宽带(成功上网步骤方法)
    FastReport.Net使用:[5]主从表
    FastReport.Net使用:[4]分组
    FastReport.Net使用:[3]简单报表一
    FastReport.Net使用:[2]添加MSSQL数据源一
    FastReport.Net使用:[1]屏蔽打印对话框
    如何配置FastReport.Net环境
    如何安装使用FastReport
  • 原文地址:https://www.cnblogs.com/NewDolphin/p/5397233.html
Copyright © 2011-2022 走看看