一、什么是面向对象?
就我的理解来说,面向对象就是将某一事物(对象)的属性和行为进行抽象。在java中可将对应属性抽象为成员变量,将行为抽象为方法。
二、为什么要面向对象?
1)不从代码层面从日常生活的理解来看,面向对象更利于我们对客观事物的理解,有了这些理解我们才能将其抽象为我们的代码。在生活中将物品分类利于我们管理,面向对象编程也是同理。
2)方法和类都可用于解决一类问题,他们的区别有那些?就我的理解而言,方法适用于解决一类具体的问题,而类是解决一类具体问题的抽象。例如:一个方法可以用于求所有长方形的面积,而一个求面积的类可以求很多的平面图形的面积。并且前面也提到,类是有成员方法的。
3)面向对象编程数据可以被封装进类中,只要提供接口就可以了,这样可以保证数据的安全性。
三、将某一事物抽象为对象的方法
1)先将一些能用基本数据类型表示的属性抽象出来,如:人的身高,体重,年龄,这些可以用基本数据类型表示。
2)有些属性它可能是另一个类,这取决于作用域,要仔细辨别。例如:酒店类,里面的房间可以是它的属性,由于酒店房间可以有很多,在代码上我们可以用房间类数组或集合表示。但是对于单独房间而言,也能抽象出房间类。
3)抽象出方法时,这个方法可能与多个类有关一定要仔细辨别其中的关系。例如酒店类中修改房间价格,可以在酒店类中定义方法修改,也可以直接调用房间类中的接口修改。但是如果直接调用房间类对象实例修改的话,酒店类就没有提供接口,只能先得到其中的房间类实例对象才能修改,这样不利于数据的安全,也不利于我们调用。