美文网首页
10、内部类

10、内部类

作者: whyshang | 来源:发表于2017-02-14 10:06 被阅读0次
    • 可以将一个类的定义放在另一个类的定义内部,这就是内部类

    一、创建内部类
    外部类将有一个方法,该方法返回一个指向内部类的引用。

    public class Parcel2 {
        class Contents{
            private int i = 11;
            public int value(){
                return i;
            }
        }
        
        class Destination{
            private String label;
            public Destination(String whereTo) {
                label = whereTo;
            }
            String readLabel(){
                return label;
            }
        }
        public Destination to(String s){  //返回内部类的引用
            return new Destination(s);
        }
        public Contents contents(){   //返回内部类的引用
            return new Contents();
        }
        
        public void ship(String dest){
            Contents c = new Contents();
            Destination d = new Destination(dest);
            System.out.println(d.readLabel());
        }
        
        public static void main(String[] args) {
            Parcel2 p = new Parcel2();
            p.ship("Tasmaina");
            Parcel2 q = new Parcel2();
            Parcel2.Contents c = q.contents();  //创建内部类对象
            Parcel2.Destination d = q.to("Borneo");
        }
    }
    

    二、链接到外部类

    • 内部类对象能够访问外围对象的所有成员。内部类拥有外围类所有元素的访问权。

    三、使用 .this 和 .new
    对外部类对象的引用: 外部类名.this
    创建某个内部类对象: 外部类对象.new 内部类构造器

    • 当想直接创建内部类对象时,不能直接创建,而是必须使用外部类对象来创建内部类对象

    四、内部类与向上转型

    • 内部类继承自接口,

    五、在方法和作用域内的内部类
    +1、在方法的作用域内创建一个完整的类,这被成为局部内部类

    相关文章

      网友评论

          本文标题:10、内部类

          本文链接:https://www.haomeiwen.com/subject/exhxwttx.html