面向过程——
步骤化面向过程就是分析出实现需求所需要的步骤,通过函数(方法)一步一步实现这些步骤,接着依次调用即可
**类和对象的关系?
**在现实客观世界里: 类是抽象的,看不见摸不着的;对象是具体的,看的见摸得着。
**类是对象的模板,对象是类的实例。**
1.3 为什么局部变量存在于栈中而不是堆中
解释:一个类可以创建 n 个不同的对象,当我们 new 一个对象后,这个对象实体,已经在堆上分配了内存空间,由于类的成员变量在不同的对象中各不相同(例如,小李和老王的姓名不同),都需要自己各自的存储空间,所以类的成员变量会随着对象存储在堆中,而由于类的方法是所有对象通用的,所以创建对象时,方法还未出现,只有声明,方法里面的局部变量也并没有被创建,只有等到对象使用方法的时候才会被压入栈。
4 访问权限修饰符 public、private、protected, 以及不写(默认)时的区别访问权限 类 包 子类 其他包
public √ √ √ √
protect √ √ √
default √ √
private √
public:公共的,可以被项目中所有的类访问。protected:受保护的,可以被这个类本身访问;被同一个包中的类访问;被它的子类(同一个包以及不同包中的子类)访问。
default:默认的,可以被这个类本身访问;被同一个包中的类访问。
private:私有的,只能被这个类本身访问。
2.1封装
封装的好处:隐藏实现细节,提供公共的访问方式,提高了代码的复用性,提高安全性。
2.2 继承
就是在一个已有类的基础上派生出新类(例如动物类可以派生出狗类和猫类),子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为提高了代码的复用性,提高了代码的维护性。
2.3 多态:是同一个行为具有多个不同表现形式或形态的能力,例如:黑白打印机和彩色打印机相同的打印行为却有着不同的打印效果,对象类型和引用类型之间存在着继承(类)/ 实现(接口)的关系;
当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;如果有,再去调用子类的同名方法。如果子类重写了父类的方法,最终执行的是子类覆盖的方法,如果没有则执行的是父类的方法