提出问题

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

解决问题

java 条件Function java 条件嵌套_java 条件Function

接口嵌套接口
/**
 * 花(接口嵌套接口)
 */
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();
    }
}