美文网首页程序员
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之嵌套接口和嵌套类了解和简单实例

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

  • 《Kotlin 实战》- 4 类、对象和接口

    4.1.4 内部类和嵌套类:默认是嵌套类 默认情况下 Kotlin 的嵌套类不能访问外部类的实例(不持有外部类的引...

  • Kotlin学习(七): 类和继承、接口与实现

    本文是学习Kotlin的类和继承相关,嵌套类相关,接口相关。 类 Kotlin的类的声明与Java一样,使用cla...

  • Java访问级别

    一、类只有两个访问级别:public和default 这里说的是顶层类和接口,不包括嵌套类和接口。 public是...

  • Java嵌套类(Nested Classes)

    在Java中,可以将一个类声明在另一个类的内部,这个类就是嵌套类。嵌套类可以分为两类:静态(static)和非静态...

  • Java-嵌套类

    嵌套类分为两类:静态和非静态。被声明static的嵌套类称为静态嵌套类。非静态嵌套类称为内部类。内部类有两种特殊的...

  • kotlin 嵌套和内部类

    Kotlin 嵌套类 与Java类似,Kotlin允许您在另一个称为嵌套类的类中定义一个类 由于嵌套类是其封闭类的...

  • java编程语言1-类和对象

    类成员 域:与类及对象相关联的数据变量,其中保存着类或对象的状态 方法 嵌套类和嵌套接口 类修饰符 类声明的前面可...

  • 20、【Swift】扩展 - Extensions

    适用:结构体、枚举、枚举、协议 使用场景增加计算属性(实例和类)【不能扩充存储属性】方法(实例或)构造器下标嵌套类...

  • Java 编程思想笔记六:接口和内部类

    第9章《接口》和第10章《内部类》主要介绍了抽象类、接口、内部类、匿名类以及嵌套类等概念,以及它们的区别和联系。主...

网友评论

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

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