今日学习计划
一、关于object类
1、关于object中的toString方法
①、SUN在object类中设计toString方法的目的:返回java对象的字符串表示形式。
②、在现实的开发过程中,object里面的toString方法已经不够用了
因为object的toString方法实现的结果不满意。
③ 、object中的toString方法就是要被重写的。
④、 SUN是这样实现toString方法的:
public String toString(){
return getClass().getName()+"@"+Integer.toHexString(hashCode());
object中的toString方法返回: 类名@java对象的内存地址经过哈希算法得出的
int类型值再转换成十六进制。
}
这个输出结果可以等同看做java对象在堆中的内存地址。
2、关于object中的equals方法
①、public boolean equals(objectobj){
return (this ==obj);
}
②、o1.equals(o2);o1是this,o2是obj
== 两边如果是引用类型,则比较内存地址,地址相同则是true ,反之则是false
③、object中equals方法比较的是两个引用的内存地址。
④、java对象中的equals方法的设计目的:判断两个对象是否一样
3、关于object中的finalize方法
①、finalize方法什么时候调用
— finalize方法每个java对象都有
— finalize方法不需要程序员去调用,由系统自动调用
— java对象如果没有更多的引用指向它,则该java对象成为垃圾数据
等待垃圾回收器回收,垃圾回收器在回收这个java对象之前会自动
调用该对象的finalize方法。
② 、finalize方法是该对象马上就要被回收了,例如:需要释放资源,则可以在该方法中释放。
③、如何不让java对象被垃圾回收器回收:让引用再次重新指向该对象,该对象不是垃圾数据,不会被垃圾回收器。
二、软件包机制
1、为了解决类的命名冲突问题,在类名前加命名空间(包机制)
2、字java中使用package语句定义包.(单包,复包)
3、package语句只能出现在.java 源文件的第一行。
4、package定义的格式,通常采用公司域名倒叙方式。
例如:com.bjpowernode.oa.system;
以上包含义:com.bjpowernode公司开发oa项目,system是oa项目中其中一个魔板。
package定义的全格式:公司域名倒叙.项目名.模块名;
5、完整的类名是带有包名的
6、带有package语句的java源文件必须这样编译:
java -d 生产路径 java源文件路径
三、 关于访问控制权限修饰符:修饰类,修饰方法,修饰变量。
1、public 公开的 可以在任何位置访问
2、default 缺省的 本类,同一个包下,但是子类中可以
3、protected 受保护的 本类,同一个包下。
4、private 私有的 只能在本类中访问
四、内部类
1、关于静态内部类
①、静态内部类可以等同看做静态变量
②、内部类重要的作用:可以访问外部类中私有的数据。
③、静态内部类可以直接访问外部类的静态数据,无法直接访问成员
④、可以用访问控制权限的修饰符修饰 public protected private 缺省
2、关于局部内部类
①、局部内部类等同于局部方法
②、局部内部类不能用访问控制权限修饰符修饰
③、局部内部类不能有静态声明
④、 重点:局部内部类在访问局部变量的时候,局部变量必须使用final修饰
3、关于成员内部类
①、成员内部类可以等同看做成员变量
②、成员内部类中不能有静态声明。
③、成员内部类可以访问外部类所有的数据。
④、可以用访问控制权限的修饰符修饰 public protected private 缺省
4、关于匿名内部类
①、匿名内部类:指的是类没有名字。
②、匿名内部类的优点:少定义一个类
③、缺点:无法重复使用!