Java教程

N种内部类

本文主要是介绍N种内部类,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

内部类

访问内部类

public class Outer {
​
    private int id=10;
    public void out(){
        System.out.println("这是外部类的方法");
    }
​
    public  class Inner{
        public void in(){
            System.out.println("这是内部类的方法");
        }
public class Application {
​
      public static void main(String[] args) {
         Outer outer = new Outer();//先new外部类
​
        //通过这个外部类实例化内部类~
        Outer.Inner inner = outer.new Inner();//再用外部类对象new内部类
        inner.getID();
​
    }
}

直接访问外部类的私有变量

package com.oop.demo10;
​
public class Outer {
    //局部内部类
    public  void method(){
        class  Inner{
            public void  in(){
​
            }
        }
    }
​
    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.demo10;
​
public class Outer {
    //局部内部类
    public  void method(){
        class  Inner{
            public void  in(){
​
            }
        }
    }
​
    private int id=10;
    public void out(){
        System.out.println("这是外部类的方法");
    }
​
    public  class Inner{
        public void in(){
            System.out.println("这是内部类的方法");
        }
​
        //获得外部类的私有属性~
        public static void getID(){
            System.out.println(id);//id报错
        }
​
    }
}

局部内部类

public class Outer {
    //局部内部类
    public  void method(){
        class  Inner{
            public void  in(){
​
            }
        }
    }
}

匿名内部类

package com.oop.demo10;
​
​
public class Test {
    public static void main(String[] args) {
        //没有名字初始化类
        new Apple().eat();//匿名内部类
​
        new UserService(){//匿名实现接口的类
​
            @Override
            public void hello() {
​
            }
        };
    }
}
class Apple{
    public void eat(){
        System.out.println("1");
    }
}
interface UserService{
    void hello();
}
 

搜索

复制

这篇关于N种内部类的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!