1:
普通的内部类
,
能够访问实例变量
,
方法中的内部内可以访问方法中的局部变量
,
但是该局部变量必须是
FINAL
的
非静态内部类不能有静态的方法和变量
,
内部类可以有控制符
,
任何符号都可以
!
静态的方法只能被隐藏而不能被
OVERRIDE,
父类是
STATIC
方法
,
子类必须是
STATIC,
但是不是
OVERRIDE,
是
HIBBERN.
2:
静态内部类的问题
:
静态内部类的方法只能直接访问外部类的静态成员
,
要访问非静态的成员
,
必须声明该类的实例
.
在静态方法中访问非静态内部类的问题
,
必须先声明外部类
,
Outer myouter=new Outer();
//
先创建外部类的对象
Outer.Inner myinner=myouter.new Inner();
非静态方法访问非静态内部类
可以采用上面的方法也可以直接
参与
new Inner().showName();
3:
构造方法是没有返回直的
,
一旦有了返回直就不时构造方法
,
父类的构造方法没有被
OVERRIDE.,
构造方法不能加
STATIC
关键字
,
想想为什么
,
因为这样就限制了他被
OVERRIDE.
4:
对于基本数据类型的的数据无论是在类中还是在方法中都是
,
系统都会为他赋上相应的缺醒值
!
5:
一个多态的例子
public class Test8 {
public static void main(String [] args){
Base b = new Subclass();
System.out.println(b.x);
System.out.println(b.method());
}
}
class Base{
int x = 2;
int method(){
return x;
}
}
class Subclass extends Base{
int x = 3;
int method(){
return x;
}
}
结果是
2
3
子类的方法
,
父类的变量
6:
静态变量不能定义在方法中
,
这是肯定
,
但是可以在方法中给静态变量赋值
7:GC
v
在清除垃圾之前,系统会调用
finalize
方法,这是顶级类
Object
中的
finalize
方法。
v
System
类中的
runFinalization
方法能够强制调用
finalize
方法,
v
gc
方法强制调用垃圾回收功能
8:OVERRIDE
之后子类控制符更广
,
但是不能抛出更多的异常
父子之间可以
CASE
但是兄弟之间不能
9.
被声明为
FINAL
的对象
,
是不可以改变的
,
但是其内容是可以改变的
posted on 2006-04-03 12:39
loocky 阅读(92)
评论(0) 编辑 收藏 所属分类:
java