软件构造之关于OOP的一些感悟
Object-Oriented Programming面向对象的编程
1. 类:
类的定义包括“成员变量”的定义和“方法”的定义:成员变量用于描述该类型对象共同的数据结构,方法用于描述对象的行为,封装对象的功能。类定义完成后,对象的创建可通过new关键字创建,创建对象的过程通常被称为实例化。
2. 对象:
为了能够对实例化对象进行访问控制,需要用一个特殊的变量—引用。引用类型变量可以存放该类对象的地址信息,通常称为“指向该类的对象”。当一个引用类型变量指向该类的对象时,就可以通过这个变量对对象实施访问。除8种基本类型之外,用类、接口、数组等声明的变量都称为引用类型变量,简称“引用”。通过引用就可以访问对象的成员变量和调用方法。
3. 继承:
子类继承自父类。一般通用的属性和方法都放在父类,子类继承后也有这些属性和方法,并可以添加自己的属性和方法。一个类只能继承一个父类。继承不仅让代码变得简洁,还增加了代码的可重用性,拓展,修改。子类的构造方法必须通过super关键字调用父类的构造方法。如果子类的构造方法没有调用父类的构造方法,编译器会自动加入对父类无参构造的调用。override:当子类对象的重写方法被调用时(无论是通过子类的引用还是父类的引用 调用),运行的都是子类重写后的方法。这里注意一下override和overload的一些区别:overload是指在一个类中定义多个方法名相同参数列表不同的方法,在编译时根据参数个数和类型来决定绑定哪个方法;override是指在子类中定义和父类完全相同的方法,在运行时根据对象的类型不同(不是引用类型)来调用不同的版本。
4. 封装:
修饰符 本类 同一个包中的类 子类 其他类
public 可以访问 可以访问 可以访问 可以访问
protected 可以访问 可以访问 可以访问 不能访问
默认 可以访问 可以访问 不能访问 不能访问
private 可以访问 不能访问 不能访问 不能访问
真的,这个图就很重要,默认这个其实也是default(我这么看的)
5. 多态:
多态是在继承的基础上实现的。多态的三要素:继承、重写和父类引用指向子类对象。父类引用指向不同子类对象时,调用相同的方法,呈现出不同的行为就是类多态特性。多态可以分为编译时多态和运行时多态。一个类型的引用在指向不同的对象时会有不同的实现;当然同样一个对象,造型成不同的类型时,也会有不同的功能。另外关注一下instanceof关键字,为了避免ClassCastException,可以通过instanceof关键字判读某个引用指向的对象是否可以强制为某类型。
以上是本人学习了OOP之后结合课件和CSDN上的一些文章总结的结果,侵删,仅供参考和作为课程感悟用途。