美文网首页程序员
Java之嵌套接口和嵌套类了解和简单实例

Java之嵌套接口和嵌套类了解和简单实例

作者: 阿_毅 | 来源:发表于2016-12-25 22:09 被阅读419次

    开心一笑

    【刚在路上遇到一只狗,我蹲下来问它:我2017年的运势,它慎重考虑了下说:旺旺旺,这下我就放心了......】

    提出问题

    java中的嵌套接口和嵌套类???

    解决问题

    唯美图片
    接口嵌套接口
    /**
     * 花(接口嵌套接口)
     */
    interface Flower{
    //接口默认是abstract的的
    //public abstract interface Flower{
        /**
         * 心脏
         */
        interface FlowerHeart{
            //接口中定义的变量默认是public static final 型,且必须给其初值
            public static final int age  = 99;
    
        }
        //嵌套接口默认是public,下面写法也可以
        //public interface FlowerHeart{}
    
        
        //嵌套接口默认是public,不能是private,下面写法错误
        //private interface FlowerHeart{}
    
    }
    
    接口嵌套类
    /**
     * 花(接口嵌套类)
     */
    interface Flower{
        /**
         * 花的心脏
         */
        class FlowerHeart{
    
        }
    }
    
    类嵌套接口
    /**
     * 花(类嵌套接口)
     */
    class Flower{
        /**
         * 花的根须
         */
        interface Roots{
    
        }
    }
    
    类嵌套类
    /**
     * 花(类嵌套接口)
     */
    class Flower{
        /**
         * 花的根须
         */
        class Roots{
    
        }
    }
    
    thinking in java例子
    class A {
        private interface D {
            void f();
        }
        private class DImp implements D {
            public void f() {}
        }
        public class DImp2 implements D {
            public void f() {}
        }
        public D getD() { return new DImp2(); }
        private D dRef;
        public void receiveD(D d) {
            dRef = d;
            dRef.f();
        }
    }
    
    public class NestingInterfaces {
        public static void main(String[] args) {
            A a = new A();
            //The type A.D is not visible
            //D是A的私有接口,不能在外部被访问
            //! A.D ad = a.getD();
            //Cannot convert from A.D to A.DImp2
            //不能从A.D转型成A.DImpl2
            //! A.DImp2 di2 = a.getD();
            //The type A.D is not visible
            //D是A的私有接口,不能在外部被访问,更不能调用其方法
            //! a.getD().f();        
            A a2 = new A();
            a2.receiveD(a.getD());
        }
    }
    
    嵌套静态类
    class StaticClassTest {
        //私有 static 成员变量
        private static String mylove = "ay & al";
        //私有成员变量
        private String id = "100424060";
        static class Person{
            private String address = "厦门";
            public String mail = "26";//内部类公有成员
            public void display(){
                System.out.println(id);//不能直接访问外部类的非静态成员
                System.out.println(mylove);//只能直接访问外部类的静态成员
                System.out.println("Inner "+address);//访问本内部类成员。
            }
        }
    
        public void test(){
            Person person = new Person();
            person.display();
            //System.out.println(mail);//不可访问
            //System.out.println(address);//不可访问
            System.out.println(person.address);//可以访问内部类的私有成员
            System.out.println(person.mail);//可以访问内部类的公有成员
            System.out.println(Person.mail);//另外一种访问方法
            System.out.println(Person.mail);//
    
        }
        public static void main(String[] args) {
            StaticClassTest staticTest = new StaticClassTest();
            staticTest.test();
        }
    }
    

    参考文章

    【1】java---接口中嵌套接口
    【2】Java&&接口嵌套
    【3】java进阶--嵌套类和接口
    【4】深入理解java嵌套类和内部类、匿名类
    【5】Thinking in Java(Java编程思想)
    【6】嵌套类:静态嵌套类和非静态嵌套类
    【7】java静态嵌套类和内部类

    读书感悟

    来自 M·斯科特·派克《少有人走的路》

    • 大部分的恐惧与懒惰有关,这句我深以为然。我们常常会害怕改变,其实都是因为自己太懒了,懒得去适应新的环境,懒得去学习新的知识,涉足新的领域,但如果总是这样的话如何能让自己成熟起来呢?
    • 多数人认为勇气就是不害怕。现在让我来告诉你,不害怕不是勇气,它是某种脑损伤。勇气是尽管你感觉害怕,但仍能迎难而上;尽管你感觉痛苦,但仍能直接面对。
    • 你不能解决问题,你就会成为问题。
    • 想让别人真正爱你,只有让自己成为值得爱的人。
    • 治疗一个人痛苦的最好方法,往往不是设法消除痛苦,而是应该与他一起承受。我们必须学会聆听和分担他人的痛苦,这也是意识成长的全部内容。随着意识的成长,我们能更加看清他人的把戏和伎俩,同时也能更深切地体会他们的沉重和悲哀。

    经典故事

    【住在田里的青蛙:“你这里太危险了,搬来和我住吧。”路边的青蛙说:“我已经习惯了,懒得搬了。”几天后,田里的青蛙去探望路边的青蛙,却发现他已经被车子轧死在路边。启发:原来掌握命运的方法很简单,远离懒惰就行了。】

    唯美图片

    其他

    如果有带给你一丝丝小快乐,就让快乐继续传递下去,欢迎点赞、顶、欢迎留下宝贵的意见、多谢支持!

    相关文章

      网友评论

        本文标题:Java之嵌套接口和嵌套类了解和简单实例

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