编程语言
首页 > 编程语言> > Java Day16【第二十八章】内部类基本概念

Java Day16【第二十八章】内部类基本概念

作者:互联网

【第二十八章】内部类基本概念

一.内部类的基本定义

范例:内部类

class Outer {
    private String msg = "www.mldn.cn";
    public void fun() {
        Inner in = new Inner();
        in.println();
    }
    class Inner{
        public void println() {
            System.out.println(Outer.this.msg);
        }
    }
}

  内部类的优势:轻松访问外部类的私有属性

二.内部类的相关说明:

  现在已经清楚的认识到了内部类的优势以及结构,现在对内部类进行一些相关说明

  1.外部类也可以轻松访问内部类中的私有属性。

范例:内部类实例化对象

  外部类.内部类 内部类对象 = new 外部类().内部类();

  在内部类编译完成之后会自动形成一个“Out$Inner.class”类文件,其中"$"这个符号换到程序之中就是”.“,所以内部类的全程就是外部类.内部类

  内部类与外部类之间可以直接进行私有成员的访问,所以一点要保证外部类的实例化。

class Outer {
    private String msg = "www.mldn.cn";
    class Inner{
        public void println() {
            System.out.println(Outer.this.msg);
        }
    }
}
public class Main
{
    public static void main(String[] args) {
        Outer.Inner in = new Outer().new Inner();
        in.println();
    }
}

 

  内部类结构也可以在抽象类或者接口之中使用

范例:定义内部接口

interface IChannel{
    public void send(IMessage msg);
    interface IMessage{
        public String getContent();
    }
}
class ChannelImpl implements IChannel{
    public void send(IMessage msg) {
        System.out.println("Send Message:"+msg.getContent());
    }
    class MessageImpl implements IMessage{
        public String getContent() {
            return "www.mldn.com";
        }
    }
}
public class Main
{
    public static void main(String[] args) {
        IChannel channel = new ChannelImpl();
        channel.send(((ChannelImpl)channel).new MessageImpl());
    }
}

 

 

标签:Java,第二十八章,void,public,Day16,Inner,println,class,内部
来源: https://www.cnblogs.com/xiwenxinaini/p/11793424.html