黑马程序员技术交流社区
标题:
内部类定义在外部类的方法中使用成员变量为
[打印本页]
作者:
赵亚威
时间:
2013-3-18 11:57
标题:
内部类定义在外部类的方法中使用成员变量为
本帖最后由 赵亚威 于 2013-3-18 19:59 编辑
class Outer{
int x=8;
public void show(){
int z=5;
class Inner {
void function() {
// TODO Auto-generated method stub
System.out.println("z="+z);
}
}
new Inner().function();
}
}
为什么使用final 原理是?
作者:
宋耀冬
时间:
2013-3-18 12:04
final修饰符
在Java声明类、属性和方法时,可以使用关键字final来修饰,final所标记的成分具有终态的特征,表示最终的意思。
final的具体规则
·final标记的类不能被继承
·final标记的方法不能被子类重写
·final标记的变量(成员变量或局部变量)即成为常量,只能赋值一次
·final标记的成员变量必须在声明的同时赋值,如果在声明的时候没有赋值,那么只有一次赋值的机会,而且只能在构造方法中显式赋值,然后才能使用
·final标记的局部变量可以只声明不赋值,然后再进行一次性的赋值
·final一般用于标记那些通用性的功能、实现方式或取值不能随意被改变的成分,以避免被误用
如果将引用类型(即,任何类的类型)的变量标记为final,那么,该变量不能指向任何其它对象,但可以改变对象的内容,因为只有引用本身是final的。
内部类
在一个类(或方法、语句块)的内部定义另一个类,后者称为内部类,有时也称为嵌套类。
内部类的特点
·内部类可以体现逻辑上的从属关系,同时对于其它类可以控制内部类对外不可见等
·外部类的成员变量作用域是整个外部类,包括内部类,但外部类不能访问内部类的private成员
·逻辑上相关的类可以在一起,可以有效地实现信息隐藏
·内部类可以直接访问外部类的成员,可以用此实现多继承
·编译后,内部类也被编译为单独的类,名称为outclass$inclass的形式
例:
public class Outer{
private int size;
public class Inner{
private int counter = 10;
public void doStuff(){
size++;
}
}
public static void main(String [] args){
Outer outer = new Outer();
Inner inner = outer.new Inner();
inner.doStuff();
System.out.println(outer.size);
System.out.println(inner.counter);
}
}
作者:
陈丽莉
时间:
2013-3-18 14:35
若还有问题,请继续追问,没有的话,请将帖子分类改成【已解决】~
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2