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