2008-11-10
1. 类变量,类方法,只归类所有,在内存里只有一份。类方法不能使用实例变量(即没有static 定义的)
2. 实例变量,每个对象都有自己的实例变量,即实例变量有多个拷贝。
-------------------------------------------
2008-11-11
Lesson2I:
1. 一个常量 final double pi = 3.1415926, 最好是定义成静态变量,即static final double pi = 3.1415926; 因为静态变量是类变量,归类所有,不属于任何一个对象,所以内存里只有一个。 如果要是实例变量(即不是类变量),那么每个对象,都有一个pi变量,那样会造成内存里存在多个拷贝。
2. 重载是发生在同一个类里的,即同一个类里有相同的函数名,只是参数不同。
覆盖是发生在子类与父类之间,即子类的一个方法与父类的一个方法相同(参数,名称,返回值等都相同),那么子类则的方法则覆盖了父类的方法。
3. package 语句必须是文件中的第一条语句,前面只能是注释或是空白。
4. import 引入包中的类 如果不是必要,不要引入一个包中所有的类,那样的话,需要专门的内存来管理,较耗内存。
Lesson3C
5. 缺省的类(即前面没加public修饰),那么只能同一个包的类才能访问。要想被别的包的类访问,则该类必须被声明为public class 类名;
---------------------------------------------
2008-11-12
6. 方法的访问说明符:(1) public
(2) protected
(3) default (即不加访问说明符时)
(4) private
7. 方法的修饰符有:(1) static (表示为类方法)
(2) final (常方法,表示在继承过程中保持不变,并且不能被覆盖)
(3) abstract(抽象方法)
(4) native(该方法是用户在JAVA中可以使用,但不能编写的方法)
(5) synchronized(在线程里用,表同步)
Lesson3F
8. JNI(JAVA本地接口)技术:即JAVA程序与别的程序进行交互的技术。
一般的步骤是:
1. 先编写一个JAVA程序,并编译
2. 将.class文件产生.H文件(通过javah -jni 命令)
3. 实现该接口(.c文件)
4. 创建动态链接库文件
5. 执行JAVA程序,即可。
Lesson3H
9. 接口里的方法都是 public abstract; 在接口中声明方法时,不能使用native、static、final、synchornized,private、protected等修饰符。
接口中可以有数据成员,这些成员默认都是public static final;
(1) 在类里必须把所有接口里的方法都要实现,否则的话,该类是视为抽象(abstarct)类的
(2) 在类里实现接口的方法时,该接口的访问权限要比接口里相等或高。
(3) 讲了几个类之间的调用实现,很好。比如显卡接口,显卡类,主板类,计算机类,这几个大融合起来讲,值得一看。
(4) 一个接口可以继承自另外一个接口,也可以多继承接口。
Lesson3J
10. 内部类可以任意访问外部类的任意成员。
(1) 生成内部类对象 Outer.Inner inner = new Inner(); //Outer是外部类,Inner是内部类
Lesson3L
11. 非static的内部类中的成员不能声明为static的,只有在顶层类或static的内部类中才可以声明static成员。
匿名类的定义:即没有class关键字的类
为什么使用内部类:
(1) 可以用于创建适配器类,适配器类是用于实现接口的类。使用内部类来实现接口,可以更好地定位与接口关联的方法在代码中的位置。