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

原创 2016年12月25日 21:54:12

开心一笑

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

视频教程

大家好,我录制的视频《Java之优雅编程之道》已经在CSDN学院发布了,有兴趣的同学可以购买观看,相信大家一定会收获到很多知识的。谢谢大家的支持……

视频地址:http://edu.csdn.net/lecturer/994

提出问题

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 = "ay@163.com";//内部类公有成员
        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·斯科特·派克《少有人走的路》

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

经典故事

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

其他

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

版权声明:我已委托“维权骑士”(rightknights.com)为我的文章进行维权行动

Java&&接口嵌套

在Java语言中,接口可以嵌套在类或其它接口中。由于Java中interface内是不可以嵌套class的,所以接口的嵌套就共有两种方式:class嵌套interface、interface嵌套int...

从头认识java-7.7 嵌套接口

这一章节只是展示一下嵌套接口的用法,实际用途笔者还没有摸索出来。package com.ray.ch07; import com.ray.ch07.One.Two; interface O...

Java之嵌套接口详解(附源码)

示例源码 接口可以嵌套在类或其他接口中。这揭示了许多非常有趣的特性: package com.mufeng.theninthchapter; class A { interface B {...

深入理解java嵌套类和内部类

一、什么是嵌套类及内部类   可以在一个类的内部定义另一个类,这种类称为嵌套类(nested classes),它有两种类型:静态嵌套类和非静态嵌套类。静态嵌套类使用很少,最重要的是非静态嵌套类...
  • hguisu
  • hguisu
  • 2012年06月08日 09:42
  • 21195

Java嵌套类

Java的嵌套类分为 静态成员类(静态嵌套类)、内部类(非静态嵌套类)、嵌套接口。内部类还可以分为内部成员类、本地内部类、匿名内部类。 一、静态成员类习惯上将它成为静态嵌套类。标记为在类中使用 sta...
  • thesby
  • thesby
  • 2015年10月27日 15:57
  • 526

Windows 使用dryrun 运行github上的Android程序之环境搭建

【引言】由于公司的项目紧加上自己琐事一大堆,所以很久没有写博客了,今天突然有空,就写一篇关于在Windows上通过dryrun直接运行github上的Android程序的环境搭建吧。 转载请注明出...

我的两个月“讲师”之路回首

自今年春节回来后,就一直在考虑一件事,那就是如何安排今年的任务,是继续完成几本未写的新书,还是尝试一下许多读者朋友期待的“视频教学”。说实话,这不是件好做决定的事,因为今年新书的编写计划是在原来与华为...
  • lycb_gz
  • lycb_gz
  • 2014年05月14日 09:43
  • 4405

The Java Programming Language4th读书笔记-第五章 嵌套类和接口

嵌套类型主要有两个用途: 嵌套类和嵌套接口使多个类型可以组织成逻辑上相关的组,并具有相应的作用域; 更重要的一点,嵌套类可以简单而有效地连接逻辑上相关的对象;该能力被广泛地用于事件框架;例如Java...

java进阶--嵌套类和接口

java进阶--嵌套类和接口

Java中 外部类如何对嵌套类进行实例化

问题: 1.B类被A类嵌套,那么在C类中如何调用B类的成员呢? 2.外部类如何对嵌套类进行实例化? 带着这2个问题,我举例说明如下,如果您对嵌套类有更深入的理解和心得,别忘了与大家分享. /* 远外...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java之嵌套接口和嵌套类了解和简单实例
举报原因:
原因补充:

(最多只允许输入30个字)