JavaSE基础
一.面向对象
1.面向对象都有哪些特性以及对这些特性的理解
1)继承:继承是已有类得到继承信息创建新类的过程。提供信息的叫父类;得到继承信息的叫子类。继承让变化中的软件系统有了一定的延续性,同时继承也是封装程序中可变因素的重要手段。
2)封装:通常认为封装就是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口。面向对象的本质就是把显示世界描绘成一系列完全自治,封闭的对象。封装就是隐藏一切可以隐藏的东西,只对外界提供最简单的编程接口。
3)多态:允许不同子类型的对象对同一消息做出不同的响应。简单地说是用同样的对象引用调用相同的方法但是做了不同的事。多态分为编译时多态和运行时多态。运行时多态是面向对象最精髓的东西,要实现多态需要做两件事:1.方法重写 2.对象造型
4)抽象:抽象是一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。抽象只关注对象有哪些属性和行为,并不关注行为的细节是什么。
默认:继承 封装 多态三大特性 四个加上 抽象
2. 访问权限修饰符 public, private,protected 以及不写的区别
修饰符 当前类 同包 子类 其他包
public 可 可 可 可
protected 可 可 可 否
default 可 可 否 否
private 可 否 否 否
3.如何理解clone 对象
3.1 为什么要用clone?
有一个对象A,在某一刻A中已经包含了一些有效值,此时需要一个和A完全相同新对象B,并且此后B改动不会影响A的值,A,B完全独立。B的初值是A对象确定的
实现clone()方法是其中最简单,也是最高效的手段。
3.2 new一个对象的过程和 clone一个对象的区别
new的本意是分配内存。程序执行到new操作符时,首先去看new操作符后面的类型才知道要分配多大的内存空间。分配完内存后,在调整构造函数,填充对象的各个域,叫对象的初始化,构造方法返回后,一个对象创建完毕,可以把它的引用地址发到外部,在外部就可以使用这个引用操作这个对象。
clone在第一步和new相似,分配内存,调用clone时,分配的内存和原对象相同,然后在使用原对象中对应的各个域,填充新对象的各个域,填充完成后,clone方法返回,一
个新的相同的对象被创建,同样可以把这个新对象的引用发布到外部。
3.3