JAVA学习笔记one:类与对象and面向对象和面向过程and继承性与多态性

原创 2016年06月01日 18:57:25

一、类与对象

类可以理解为生活中一些对象共同点的集合、主观的、以人的意识存在的;对象则是生活中一个一个实体,是客观存在的。类具有共同特征和共同行为,例如人类有身高、体重、体重等特征,也有吃饭、睡觉、学习等行为。

1、类的基本语法

(1)一个类对应一个java文件

(2)类的属性与特征定义格式

     属性(特征):public 类型 属性名

     方法(行为):public 返回类型 方法名(参数列表){}

(3)创建对象时的格式

     类名 对象名=new 类名();

(4)调用格式

     调用属性时格式:对象名.属性名(具体内容);

     调用方法时格式:对象名.方法名(具体内容);

二、面向对象和面向过程

生活中一件事情 =  对象(执行者)+ 过程(执行流程)

简单说,面向对象,关注的是对象,也就是关注事情的执行者是谁,结果并不确定;面向过程,关注事情的执行流程,结果已经确定。面向对象也就相比面向过程有了更多的灵活性。例如:我写代码。面向对象关注的是“我”,而面向过程关注的是“怎么写的”,写的过程。

三、继承性与多态性

    面向对象有三大特性,分别是继承性、多态性和封装性,其中继承性与多态性是非常重要的两个特性。

在写代码的时候我们会经常碰到两个对象的属性和行为相同或类似,引用继承能有效减少书写代码的行数,减少不必要的时间、资源消耗。

1、子类可以继承到父类的所有的非私有属性和方法。继承我们可以和生活中的继承相类比,子代继承父代的财产,但子代并不能继承父代的老婆等私有的东西。同样在编写代码时,子类能继承父类public定义的属性和行为,不能继承父类private定义的属性和行为。

语法:子类extends 父类

举例: 在eclipse运行环境下创建父类Father和子类Son,并在父类Father中创建public行为GetMoney和私有行为GetFriend,并在子类Son中调用GetMoneyGetFriend方法,可以得到

 

 

由上图可以看到GetFriend报错,报错内容显示类型 Father 中的方法 GetFriend()不可视由此可验证子类可以继承父类的公有属性和行为,不可以继承私有属性和行为。

2、方法重写

    定义:子类重写父类的方法,方法名、参数、返回类型必须相同

    子类重写父类方法:用于覆盖父类继承过来的函数

例:创建父类Father和子类SonSon继承Father,并在子类Son中重写GetMoney方法,运行后结果为使用重写的GetMoney方法。

 

 

 

3、自动转型

   子类类型的对象自动转型为父类类型的引用,最终是父类类型的

   转型后的对象:调用方法,如果子类重写了父类的方法,则调用的是重写后的,如果没有重写,则依然调用的是父类自己的

例:创建父类Father和子类SonSon继承Father,并在子类Son中重写GetMoney方法,Son类中的实例化对象代码为:Father s=new Son,将Son的对象转型为Father类型,再运行,得到:

 

 

 

由此,验证上述。

4、多态性

  多个同一个类型的引用,调用同一个方法,执行的流程不一样。(详情可以参考3

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

面向对象和面向过程-学习笔记

面向对象和面向过程 OC是面向对象的,C是面向过程的。面向对象和面向过程只是解决问题的两种不同思想。 一、面向对象和面向过程的区别 1) 以用电脑听歌为例子 a) 面向过程 打开电脑  播放电脑中的歌...

Objective-C基础学习笔记(二)-面向对象与面向过程的两种思想

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 一、 面向对象与面向过程的区别 Objective-C语言是面向对象的,c语言是面向过程的,面向...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

OC学习笔记之面向过程与面向对象

---------------------- http://www.itheima.com/" target="_blank">IOS开发、http://www.itheima.com/" targe...

面向对象程序设计具有4个共同特征:抽象性、封装性、继承性和多态性

面向对象程序设计具有4个共同特征:抽象性、封装性、继承性和多态性
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)