【java】初识面向对象程序设计

来源:互联网 发布:视频加工软件 编辑:程序博客网 时间:2024/05/10 20:45

为日后工作需要,我在大四开始系统的学习java。ps:之前是在做安卓或者web的时候,需要用哪部分就看一下哪部分,不系统的学习了java。

因为之前有c++的基础,所以对一些基础的、相通的知识(基本数据类型、数组、函数等等)就不在CSDN上总结了。

———分割线———————————————————
面向对象程序设计:

类与对象:
类:定义出一个基本的模板,代表着一个共性。类中定义了一些属性和方法。
对象:代表一个个性。每个对象都能有不同的属性值。

举个例子:比如说我们小时候玩的变装类游戏。那个初始的模特就像是一个类。这个模特有很多属性,比如衣服、发型等等。当我们给她穿上衣服,设计了发型之后,她就成为了一个对象。而我们给她穿衣服的过程(鼠标点着衣服移过去)就可以看作一个方法,暂时把这个方法叫setClothes。
只要我们在程序中调用这个方法,那么模特就会穿一件衣服,那到底穿哪件,就要我们传递参数。

public void setClothes(衣服){}

传递参数之后,就要改变初始模特身上的衣服。

public void setClothes(衣服){    模特身上的衣服 = 我选择的衣服}

那么在类中写好这些内容之后。我们玩家去完成一个作品就是新建了一个对象。那么我们很容易可以想到,类和对象的关系应当是一对多。一个初始的模特可以生成无数个打扮各异的模特。面向对象的程序设计就是说我们把各个方法都封装成在一个类中,再对这个类生成的对象去做设计。

面向对象设计的一些性质或者说要求:

封装性:
封装性就更像是一个要求,简单来说就是一个类的编写尽量做到不能直接从外界访问他的性质,只能通过类自身定义的方法来进行访问。比如我只能用setClothes这个方法去改变模特的衣服而不能直接改变模特的衣服这个属性。

继承性:
继承性的好处就是我写了一大类,比如人类。我肯定不能包含所有的属性,也没必要包含。人类这个类我就只定义姓名和年龄这两个属性以及相应的方法。后来我又想定义一个学生这个类。那我是不是要从头定义呢?显然不合适,因为学生也是人类。所以学生类就继承人类这个类。就不需要再去定义姓名和年龄之类的东西了,只需要定义新增的比如考试成绩等属性。

多态性:
多态性是指程序允许出现重名现象。具体应用为:方法重载和对象多态。
方法重载的好处是,比如上面说的人类和学生的例子。人类的年龄在set的时候可以是0到150,不在这个范围就应该报错。但学生可能只有0到40。那么我们就需要覆写setAge()这个方法了。
对象多态的好处我暂时没有很明显的感受,后面再补充把。

后面会再谈具体应用封装性和继承性的时候的一些收获。

0 0