标签:内部 成员 定义 class String void public name
成员内部类 成员内部类:定义在类中方法外的类 定义格式class 外部类 { class 内部类{ } }在描述事物时,若一个事物内部还包含其他事物,就可以使用内部类这种结构。比如,汽车类 Car 中包含发动机 类 Engine ,这时, Engine 就可以使用内部类来描述,定义在成员位置。 代码举例:
class Car { //外部类 class Engine { //内部类 } }
package demo01; public class Body { public class Header{ public void beast(){ System.out.println("心脏跳动"); } } private String name; public void methodBoby(){ System.out.println("外部类的方法"); } public String getName() { return name; } public void setName(String name) { this.name = name; } }访问特点 内部类可以直接访问外部类的成员,包括私有成员。 外部类要访问内部类的成员,必须要建立内部类的对象。 创建内部类对象格式:
外部类名.内部类名 对象名 = new 外部类型().new 内部类型();访问演示,代码如下: 定义类:
package demo01; public class Body { public class Header{ public void beast(){ System.out.println("心脏跳动"); } } private String name; public void methodBoby(){ System.out.println("外部类的方法"); } public String getName() { return name; } public void setName(String name) { this.name = name; } }
public class Person { private boolean live = true; class Heart { public void jump() { // 直接访问外部类成员 if (live) { System.out.println("心脏在跳动"); } else { System.out.println("心脏不跳了"); } } } public boolean isLive() { return live; } public void setLive(boolean live) { this.live = live; } }定义测试类
public class InnerDemo { public static void main(String[] args) { // 创建外部类对象 Person p = new Person(); // 创建内部类对象 Heart heart = p.new Heart(); // 调用内部类方法 heart.jump(); // 调用外部类方法 p.setLive(false); // 调用内部类方法 heart.jump(); } }内部类仍然是一个独立的类,在编译之后会内部类会被编译成独立的.class文件,但是前面冠以外部类的类名 和$符号 。 比如,Person$Heart.class
package demo02; public class Body { public class Header{ public void beast(){ System.out.println("心脏跳动"); } } private String name; public void methodBoby(){ System.out.println("外部类的方法"); new Header().beast(); } public String getName() { return name; } public void setName(String name) { this.name = name; } }
package demo02; /* 如果一个事物的内部包含另一个事物,那么这就是一个类内部包含另一个类。例如:身体和心·脏的关系。又如:汽车和发动机的关系。 分类: 1.成员内部类 2.局部内部类(包含匿名内部类) 成员内部类的定义格式: 修饰符cLass外部类名称{ 修饰符class内部类名称{// ... } //..... 注意:内用外,随意访问;外用内,需要内部类对象。 如何使用成员内部类?有两种方式: 1.间接方式:在外部类的方法当中,使用内部类﹔然后main只是调用外部类的方法。 */ public class Demo01InnerClass { public static void main(String[] args) { Body body = new Body(); body.methodBoby(); Body.Header header = new Body().new Header(); header.beast(); } }
标签:内部,成员,定义,class,String,void,public,name 来源: https://www.cnblogs.com/x3449/p/16445202.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。