面向对象与面向过程
1、面向过程:
在面向对象编程之前,程序员最初都是以面向过程为思想进行编程的。
面向过程,是一种以过程为中心的编程思想。以事件流程为出发点,分析出解决
问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依
次调用函数。
2、面向对象:
所谓的面向对象,就是在编程的时候尽可能的去模拟真实的现实世界,按照现
实世界中的逻辑去处理一个问题,分析问题中参与其中的有哪些实体,这些实体应
该有什么属性和方法,我们如何通过调用这些实体的属性和方法去解决问题。
面向对象这一思想更符合我们思考问题的习惯,可以将复杂的问题进行简单化,
更加灵活,更适用于解决大型复杂的业务逻辑。
面向对象具有三大特征:
1、封装
封装是指将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象的
内部信息,而是通过该类所提供的方法来实现对内部信息的操作和访问。
封装可以达到以下目的:
1、隐藏类的实现细节;
2、便于修改,提高代码的可维护性;
3、对外提供公共的访问方法,可以在方法中加入逻辑,以便可以保证数据
的安全性。
封装可以通过访问控制符来实现:
public:公共访问权限,范围最大,所有的都可以访问;
protected:子类访问权限,可以被该类或者该类的子类进行访问;
default:包访问权限,也是默认的访问权限,同一个文件夹下可以访问;
private:当前类访问权限,只有在该类的内部才有权限进行访问。
2、继承
继承是从已有类构建新类的一个方法。提供继承信息的类被称为父类、超类或
者基类,得到继承信息的类被称为子类或者派生类。在java中通过关键字extends来
实现继承。值得一提的是,java中的继承是单继承,也就是说一个类只能有一个直接
父类。
super:是java中提供的一个关键字,用于限定该对象调用它从父类继承得到的实
例变量或方法。正如this不能出现在static修饰的方法中一样,super也不能出现在
static修饰的方法中。static修饰的方法是属于类的,而不是对象,因此super限定
也就失去了意义。
重写(override):子类扩展了父类,继承了父类的方法。但是,父类的方法并不
总是适合子类。这时,子类可以重写父类的方法。在子类对象调用的时候,子类方法会
覆盖掉父类方法。
多态:java引用变量有两个类型:一个是编译时类型,一个是运行时类型。在java
代码中,使父类引用指向子类对象,就可以制造出多态。多态在java中具有广泛的应用。
其巨大的体现之一就是使用一个父类引用可以代表所有的子类。
instanceof:该关键字用于判断前面的对象是否属于后面的类,或其子类、实现类的
实例,如果是,则返回true,否则,返回false。