关闭

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

标签: java嵌套类嵌套接口实例
5216人阅读 评论(4) 收藏 举报
分类:

开心一笑

【刚在路上遇到一只狗,我蹲下来问它:我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·斯科特·派克《少有人走的路》

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

经典故事

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

其他

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

3
2
查看评论

Java&&接口嵌套

在Java语言中,接口可以嵌套在类或其它接口中。由于Java中interface内是不可以嵌套class的,所以接口的嵌套就共有两种方式:class嵌套interface、interface嵌套interface。
  • sp_programmer
  • sp_programmer
  • 2014-10-24 10:53
  • 2577

从头认识java-7.7 嵌套接口

这一章节只是展示一下嵌套接口的用法,实际用途笔者还没有摸索出来。package com.ray.ch07; import com.ray.ch07.One.Two; interface One { interface Two { void two(); } void...
  • raylee2007
  • raylee2007
  • 2015-11-09 22:39
  • 1732

thinking in java 笔记--类内的嵌套接口及实例 nested interface(2007.10.11)

以下都是针对thinking in java 第三版的学习笔记.           类(class)中是可以嵌套接口(nested interface)的,就是把接口写到类里,而且interface可以用pu...
  • duming115
  • duming115
  • 2007-10-11 16:36
  • 2772

Java嵌套类(内部类)总结

Java嵌套类的深入理解
  • sunxianghuang
  • sunxianghuang
  • 2016-07-21 14:48
  • 1716

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

一、什么是嵌套类及内部类   可以在一个类的内部定义另一个类,这种类称为嵌套类(nested classes),它有两种类型:静态嵌套类和非静态嵌套类。静态嵌套类使用很少,最重要的是非静态嵌套类,也即是被称作为内部类(inner)。嵌套类从JDK1.1开始引入。其中inner类又可分为三种: ...
  • hguisu
  • hguisu
  • 2012-06-08 09:42
  • 22944

Java嵌套类

Java的嵌套类分为 静态成员类(静态嵌套类)、内部类(非静态嵌套类)、嵌套接口。内部类还可以分为内部成员类、本地内部类、匿名内部类。 一、静态成员类习惯上将它成为静态嵌套类。标记为在类中使用 static 声明的类。静态成员类可以访问外围类的任何成员,包括声明为private的成员。但是非静态的外...
  • thesby
  • thesby
  • 2015-10-27 15:57
  • 614

JAVA中,嵌套类的介绍

1,java中,允许在类中介绍类。这种声明在类的内部的类称为嵌套类,也可以叫内部类。 2,嵌套类对象可以访问创建它的外部类的所有属性和方法、 3,嵌套类通过在其外部类环境内的嵌套声明,不为同一包的其他类所见。可以支持更高层次的封装。 4,嵌套类可以很方便地定义运行时回调。 5,嵌套类在编写事...
  • wodedipang_
  • wodedipang_
  • 2015-10-20 21:19
  • 678

java嵌套接口程序

  • 2012-11-21 22:07
  • 590B
  • 下载

java中嵌套接口

接口知识点       1、接口中定义的变量默认是public static final 型,且必须给其初值,所以实现类中不能重新定义,也不能改变其值       2、接口中的方法默认都是 public abstract 类型的: ...
  • zhugewendu
  • zhugewendu
  • 2017-05-28 12:25
  • 150

嵌套类在接口中的作用

嵌套类在接口中的使用
  • Jack_windows
  • Jack_windows
  • 2017-07-15 10:29
  • 325
    个人资料
    • 访问:419132次
    • 积分:5616
    • 等级:
    • 排名:第5582名
    • 原创:201篇
    • 转载:0篇
    • 译文:0篇
    • 评论:313条
    个人教程

    CSDN视频教程

    个人信息
    博客专栏