码迷,mamicode.com
首页 > 编程语言 > 详细

java中的内部类

时间:2016-12-14 21:07:25      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:内部类   外部类   void   name   rod   存在   创建   使用   this   


/**
* 内部类 ??
* 定义在一个内部的类,被称为内部类。
* 内部类里有类体,方法体
* 内部类所在的类,被称为外部类。
* ---------------------------------
* ①内部类的意义
* 在一定程度上,起到了代码的有效保护。
* ②语法
* class Outer{////外部类
* 成员变量
* 成员方法
* class Inner{///内部类
* 成员变量
* 成员方法
* }
* }
* ③ 类对象的创建
* //创建外部类对象
* Outer outer =new Outer();
* //创建内部类对象
* Inner inner=new Inner();//这样创建时错误的
* //无法直接创建内部类对象,但是可以通过先创建外部类对象
* 再通过外部类对象创建内部类对象。
* 例如:
* Outer outer=new Outer();
* Outer.Inner inner2=new Outer().new Inner();
* 或
* Outer.Inner inner2=outer.new Inner();
*
* 内部类引用外部类的成员变量
* 两种情况
* a.外部类的成员变量在内部类中不存在。
* 则内部类中可以直接使用外部类的成员变量名。
* class Outer {
* String name;
* class Inner{
* public void test{
* name="CC";//为外部类的name;
* }
* }
* }
* b.外部类的成员变量在内部类中同时存在,则内部类想要使用外部类的成员变量,
* 必须 外部类名.this.成员变量名
* class Outer{
* String name;
* class Inner{
* String name;
* public void test(){
* name="cc";//为内部类的name;
* Outer.this.name="dd";//此时为外部类的name
* }
* }
* }
*
* @param args
*/

package test05;
public class InnerClass {

public static void main(String[] args) {
// TODO 自动生成的方法存根
Outer outer=new Outer();
outer.name="张三";
outer.age=18;
outer.introduce();
System.out.println("-------------------------------");
Outer.Inner inner=outer.new Inner();
inner.name="李四";
inner.age=20;
inner.introduce();
}

}

class Outer{/////外部类
String name;
int age;
void introduce(){
System.out.println("name"+this.name+"age"+this.age);
}
class Inner{/////内部类
String name;
int age;
void introduce(){
System.out.println("内部类姓名:"+this.name+"内部类年龄:\n"+this.age+"外部类姓名:"+Outer.this.name+"外部类年龄:"+Outer.this.age);
}

}
}

java中的内部类

标签:内部类   外部类   void   name   rod   存在   创建   使用   this   

原文地址:http://www.cnblogs.com/wqq0402/p/6180633.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!