26.黑马程序员-内部类
2012-10-17 08:56
211 查看
------- android培训、java培训、期待与您交流! ----------
1.概念
将一个类定义在另一个类的里卖弄,对里面那个类被称为内部类(内置累、嵌套类)。
2.定义
class Outer
{
成员变量
class Inner
{
//内部类也可以定义成员变量、成员函数
//内部类可以直接访问外部类的成员(包括私有),而不用创建外部类对象。
void function()
{
Sop("inner");
}
}
void method()
{
inner in = new Inner();//创建inner对象
in.function();//调用内部类方法。
}
}
3.使用方法
外部类访问内部类:创建内部类的对象,调用内部类的方法。
而内部类不需要创建外部类的对象,就可以直接使用外部类的成员(包括私有)。原因是内部类持有一个外部类的引用,这个引用的格式是:外部类.this。
在其他地方使用内部类时,需要加上外部类名,格式是:Outer.Inner in = new Outer().new Inner; 这种格式很少使用。一般情况是:内部类作为成员被私有修饰,不允许其他类直接访问。
4.访问规则
内部类定义在另一个类(外部类)里面,可以定义自己的成员变量、成员函数。
内部类也可以定义成员变量、成员函数
内部类可以直接访问外部类的成员(包括私有),而不用创建外部类对象。
5.访问规则2
当内部类在成员位置上,就可以被成员修饰符所修饰。
比如,
private:将内部类在外部类中进行封装。
static:内部类就具备static的特性。
当内部类被static修饰后,只能直接访问外部类中的static成员,出现了访问局限。
在外部其他类中,如何直接访问static内部类的非静态成员呢?
new Outer . Inner().function();//新对象 外部类名.内部类().方法
在外部其他类中,如何直接访问static内部类的静态成员呢?
Outer.Inner.function(); //外部类名.内部类名.方法
注意:
当内部类中定义了静态成员,该内部类必须是static的。这个是内部类的一个特点。
当外部类中的静态方法访问内部类时,内部类也必须是静态的。
6.内部类什么时候使用?
当类用来描述事物时,该事物中还有事物,该事物用内部类来描述,因为内部事务在使用外部事物的内容。举例:描述人体class body,人体由心脏等组成,心脏的描述成员太多,并且心脏访问人体里的其他数据,需要封装成一个类,心脏heart就是一个内部类。心脏不需要对外暴露,所以private。body 可以提供一个方法使外部访问,当然需要一些条件,不能随便访问心脏吧^_^。
1.概念
将一个类定义在另一个类的里卖弄,对里面那个类被称为内部类(内置累、嵌套类)。
2.定义
class Outer
{
成员变量
class Inner
{
//内部类也可以定义成员变量、成员函数
//内部类可以直接访问外部类的成员(包括私有),而不用创建外部类对象。
void function()
{
Sop("inner");
}
}
void method()
{
inner in = new Inner();//创建inner对象
in.function();//调用内部类方法。
}
}
3.使用方法
外部类访问内部类:创建内部类的对象,调用内部类的方法。
而内部类不需要创建外部类的对象,就可以直接使用外部类的成员(包括私有)。原因是内部类持有一个外部类的引用,这个引用的格式是:外部类.this。
在其他地方使用内部类时,需要加上外部类名,格式是:Outer.Inner in = new Outer().new Inner; 这种格式很少使用。一般情况是:内部类作为成员被私有修饰,不允许其他类直接访问。
4.访问规则
内部类定义在另一个类(外部类)里面,可以定义自己的成员变量、成员函数。
内部类也可以定义成员变量、成员函数
内部类可以直接访问外部类的成员(包括私有),而不用创建外部类对象。
5.访问规则2
当内部类在成员位置上,就可以被成员修饰符所修饰。
比如,
private:将内部类在外部类中进行封装。
static:内部类就具备static的特性。
当内部类被static修饰后,只能直接访问外部类中的static成员,出现了访问局限。
在外部其他类中,如何直接访问static内部类的非静态成员呢?
new Outer . Inner().function();//新对象 外部类名.内部类().方法
在外部其他类中,如何直接访问static内部类的静态成员呢?
Outer.Inner.function(); //外部类名.内部类名.方法
注意:
当内部类中定义了静态成员,该内部类必须是static的。这个是内部类的一个特点。
当外部类中的静态方法访问内部类时,内部类也必须是静态的。
6.内部类什么时候使用?
当类用来描述事物时,该事物中还有事物,该事物用内部类来描述,因为内部事务在使用外部事物的内容。举例:描述人体class body,人体由心脏等组成,心脏的描述成员太多,并且心脏访问人体里的其他数据,需要封装成一个类,心脏heart就是一个内部类。心脏不需要对外暴露,所以private。body 可以提供一个方法使外部访问,当然需要一些条件,不能随便访问心脏吧^_^。
相关文章推荐
- 黑马程序员--java基础复习之多态与Object及匿名内部类
- 黑马程序员--------内部类和外部类
- 黑马程序员_面向对象(二)_继承、多态、内部类
- 黑马程序员——面对对象———继承、多态、内部类等
- 黑马程序员——多态,内部类,异常
- 黑马程序员 笔记(九)——面向对象(内部类)
- 黑马程序员—继承多态以及内部类
- 黑马程序员——java第九、十天:面向对象(内部类、异常和包)
- 黑马程序员——Java基础---内部类
- 黑马程序员———内部类的访问规则
- 黑马程序员--内部类
- 【黑马程序员】Java笔记--内部类
- 黑马程序员_day011_内部类和异常
- 黑马程序员———面向对象之包、访问修饰符、内部类
- 黑马程序员——面向对象09(内部类、异常上)
- 黑马程序员——内部类的总结
- 黑马程序员---内部类与异常
- 黑马程序员——接口、克隆、内部类
- 黑马程序员——内部类、匿名内部类
- 黑马程序员---java 内部类