本帖最后由 张斯佳 于 2017-10-10 10:06 编辑
先附上上一篇帖子的地址 : 【哈尔滨校区】关于JAVA基础的一些总结(四)
1、多态:
(1)同一个对象,在程序不同时刻的多种运行状态。举例:动物,狗是狗,狗是动物。水(气态,液态,固态)
(2)多态前提
A:存在着继承或者实现关系
B:有方法的重写
C:父类(接口)引用指向子类(实现)对象
(3)多态的好处和弊端:
好处:多态的存在提高了程序的扩展性和后期可维护性
弊端:虽然可以预先使用,但是只能访问父类中已有的功能,运行的是后期子类的功能内容。
不能预先使用子类中定义的特有功能。
(4)多态中对象调用成员的特点
Fu f = new Zi();
A:成员变量
编译看左边,运行看左边
B:成员方法
编译看左边,运行看右边
C:静态方法
编译看左边,运行看左边
(5)多态的思想
指挥同一批对象做事情。举例:带兵打仗,下课等。
2、instanceof关键字
A:用于判断某个对象是否是某种类型。
B:格式
对象名 instanceof 子类(实现)名
3、Object类:
(1)是所有类的根类,超类。
java中提供的类以及我们自定义的类都直接或者间接的继承自Object类。
(2)Object类中的方法
A:void finalize()
当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。
B:Class getClass()
获取对象的字节码文件的描述类,后面再讲反射的时候还会在说这个类。
String name = s.getClass().getName();
C:int hashCode()
获取对象的哈希值。其实就是对象的内存地址值十进制表示
D:String toString()
返回对象的字符串表示。
表示格式:
getClass().getName()+"@"+Integer.toHexString(hashCode()); 一般我们输出对象名的时候,其实底层调用的就是该对象的toString()方法。
这种返回没有意义,所以,我们会重写这个方法,显示类的成员变量信息。
E:boolean equals(Object obj)
用于比较两个对象的地址值是否相同。
我们获取对象后,比较它的地址值意义不大。所以也会对这个方法进行重写。
重写要完成什么功能,是根据需求定的。
(3)==和equals的用法:
A:==怎么用?
**可以用于比较基本数据类型,比较的就是基本数据类型的值是否相等。
**可以用于比较引用数据类型,比较的是对象的地址值是否相等。
B:equals怎么用?
equals只能用于比较引用数据类型的。
**Object提供的equals是用于比较对象地址值是否相同。
**自定义类中,如果重写了equals方法,那么就是按照你自己的需求来比较的。 4、package关键字
(1)包:其实就是文件夹。用于区分不同包下相同的类名。
(2)好处:
A:对类文件进行分类管理。
B:给类提供了多层命名空间
aaa.Demo
bbb.Demo
C:写在程序文件的第一行。
D:包也是一种封装形式。
5、import关键字
(1)导入包的关键字
(2)格式:
import 包名;
(3)注意:
A:一个程序文件中只有一个package,可以有多个import。
B:用来导包中的类,不导入包中的包。
C:通常写import mypack.Demo,明确自己使用的类。
(4)关键字的顺序
类,包,导包这些关键的顺序。
包 -- > 到包 -- > 类
6、不同修饰符可以修饰哪些内容
本类中 同一个包中 不同包中的子类中 不同包中
private OK
默认 OK Ok
protected OK Ok OK
public OK Ok OK Ok 类 构造方法 成员变量 成员方法
private OK OK OK
默认 Ok Ok Ok OK
protected OK OK Ok
public Ok Ok OK OK
static OK Ok
final Ok OK OK
abstract Ok OK 一般格式:
成员变量:
权限修饰符+static/final+数据类型+成员变量名
public static final int NUM = 10;
成员方法:
权限修饰符+static/final/abstract+返回类型+方法名
|