Java基础篇--浅谈面向对象

大学里第一门接触到的语言是C语言,C语言是一门面向过程的语言,其程序的编写完全是面向一件事物的操作流程的。从第一步到第二步再到第三步,生活中我们所做的事情也是一样,都是按照做一件事的先后顺序来思考的。

但是在java里面,程序的设计是需要面向对象的。什么是对象?所有世界上存在的事物,都是对象,例如:人,花,电脑,车等。对象是事物存在的实体。对象具有特征和行为,即属性和方法,例如人,其属性就是具体的身高150cm、体重55kg、年龄25岁、姓名小王等特征,方法就是小王吃饭、小王睡觉、小王喝水等动作行为。如果将每一类对象进行更高一级的抽象,寻找他们之间的共性,那就构成了类。通俗点说,类就是制造对象的基本图纸。例如,保时捷911跑车的生产,首先由汽车设计工程师精心设计跑车的生产图纸,该生产图纸导致生产出来的跑车的结构和功能是一样的,这时候就可以说,该生产图纸是一个保时捷911类,由于款式的不同,厂家在每一款跑车上进行了内饰的修改和颜色的调整,每一辆跑车就是一个由保时捷911类生产出来的实例对象。

面向对象设计与面向对象程序开发的核心技巧就是抽象。什么是抽象?那就是在众多事物中,舍弃他们个性的、非本质的特性,寻找他们共同的、本质的特性的技巧。例如:你我他,有着不同的相貌、身材、身高、皮肤颜色,但是我们的本质都是人类,每个人类共有的特性就是身高、体重、年龄、姓名,我们抽象出来的东西并不是具体的,我们并不在意你的姓名是什么,而是着眼于你是否与我们一样是人类。抽象的过程就是一个比较的过程,通过比较你我他来寻找我们之间的共性。

面向对象有三大特征:封装,继承,多态。

封装:封装是一种方便使用的手段,就像我们去买手机一样,普通的用户基本上只需要知道,手机有什么功能,可以打电话可以发短信,而并不需要知道其打电话和发短信的原理。我们将手机打电话发短信的功能实现封装在手机内部,而把打电话发短信的使用接口开放给用户。对用户来说,手机有两个功能,这两个功能就是手机的方法,提供给用户去调用;对手机来说,其不但有两个方法,还有其方法的具体实现,里面使用了什么通讯协议,显示技术等。封装这一技术简化了用户的使用成本,在程序设计中可以使得程序更加清晰明了,分工更加明确。

继承:继承是当多个类具有相同的特征(属性)和行为(方法)时,可以将相同的部分抽取出来放到一个类中作为父类。其他类继承这个父类,继承后子类自动拥有了父类的属性和方法,例如猫、狗、熊猫他们的共同特征都是动物,有皮毛颜色,尾巴长度等共有属性,有会吃、会跑、会叫等共有方法。我们可以把这些特征抽象成一个Animal类,Animal类有皮毛颜色,尾巴长度属性,有吃、跑、叫方法。猫类(Cat)、狗类(Dog)、熊猫类(Panda)都继承自Animal类,他们都有Animal类的一般属性和方法。但是特别要注意的是,方法和属性都是有共有(public)和私有(private)之分的,共有的是大家都可以看得见的,而私有的是只有自己看的见的。继承的一般都是共有的,因为大家都可以看见可以使用,私有的无论如何都是只能通过自己访问的。猫类、狗类、熊猫类除了拥有Animal类的共性方法吃、跑、叫以外,还有其属于自己个性的属性和方法,猫会抓老鼠,狗会闻味道追踪,熊猫会吃竹子,这是每一个子类自己特有的方法。虽然猫类、狗类、熊猫类都拥有叫的方法,但是他们每一种动物的叫声都是不一样的,子类可以复写父类的方法,即方法的重写,使其拥有自己的叫法。

多态:多态是允许不同类的对象对相同的消息做出响应。通俗点说,就是父类和子类可以在特定情况下进行调换,即可以先告诉程序该地方是一个父类,程序运行到此处的时候,再派出特定的子类进行使用。Java语言中有方法重载和对象多态两种形式的多态:
方法重载:在一个类中,允许多个方法使用相同的名字,但是要求方法的参数不同。
对象多态:子类对象可以与父类对象进行互换,即上文所提到的运行时子类替换。

面向对象的浅谈就到这里,接下来的几天准备对面向对象的三大特征进行详细阐述和深入挖掘。

猜你喜欢

转载自blog.csdn.net/qq_31507627/article/details/81904173