面向对象程序设计
面向对象程序设计(简称:OOP),是现在主流的程序设计。Java是完全面向对象的,我们必须理解才能更好的编写Java程序。
大家都知道C语言是面向过程的。那么C语言为什么叫面向过程,Java又为什么叫面向对象呢?
下面给大家举个栗子让大家简单了解:
好比C语言是一个穷吊丝,Java是一个极品富二代,做同一件事,就拿洗衣服来说吧。
C语言:
第一步:把脏衣服拿到洗衣服的盆里。
第二步:盆里倒满水
第三步:开始洗衣服
第四步:拧干衣服
第五步:晒衣服
需要自己亲自动手完成每一步,然后得到自己想要的结果,这个过程就是面向过程,
而Java只需要告诉佣人把衣服给我洗好,这个佣人代Java完成洗衣服的步骤。
我只需要我想要的结果,具体的过程我不需要了解,这个可以叫做面向对象。
下面进入正题
Java面向对象的三大基本特征:
封装性
继承性
多态性
封装性:
类:
可以理解类是一个手机模版,模版可以写上这个手机是什么颜色,多大尺寸,这此可以称之为属性。
手机可以干什么,手机可以打电话,可以发短信,可以玩游戏,这些可以称之为行为或者方法。
对象:
由手机模版而制造出来的手机,这个手机就是这个模版的对象,也可以称之为实体或实例都一样。
它具备手机模版的所有的属性和行为。对象是属性和行为一组的集合。
创建一个手机类(模版)
它有两个属性 color/size,两个方法 show/show1
在类中属性称为成员变量,方法称为成员方法
成员变量是有默认值的
创建对象
创建一个手机对象(实例)它具备类中的属性和方法(除加上private关键字的属性和方法)

构造方法:
构造方法的名称必须和类名称一致,如果不写构造方法,编译器会自动生成一个无参数的构造方法。
它是随着new关键字而被调用,它也可以进行重载。是用来初始化
封装的优点:
1. 能够减少代码的耦合
2. 可以对成员变量和成员方法进行控制
3. 更容易维护
继承性:
继承性是多态的前提,没有继承就没有多态
继承主要解决的问题是:共性抽取
子类可以继承父类非私有的成员变量和成员方法。
父子类构造方法访问:
1. 子类构造方法当中有一个默认super()调用,所以一定是先调用父类构造,再执行子类构造
2. 子类构造中可以通过super关键字来调用父类的重载构造方法
继承的特征:
1. java语言是单继承的
2. java可以多级继承
3. 一个子类的只能有一个父类,而一个父类可以有多少子类
多态性:
继承或implements实现,是多态的前提。父类引用指向子类对象。
对象的向上转型:
格式:
父类名称 对象名 = new 子类名称();
对象的向下转型:
格式:
子类名称 对象名 = (子类名称)父类对象
就是将父类对象,还原成本来的子类对象
Java面向对象
原文:https://www.cnblogs.com/webji/p/10883760.html