java面向对象编程思想_Java面向对象编程思想

面向对象三个特征:封装、继承、多态

封装:

语法:属性私有化(private)、提供相对应的get/set 的方法进行访问(public)、

在set/get的方法中对属性的数据 做相对应的业务逻辑的判断

思想:封装外面的程序不能直接访问本类的属性,需要通过本类提供的方法间

接访问本类的属性,从而提高代码的安全性。

涉及到的其他的知识点:

构造方法:用来描述对象创建过程,可以通过构造方法快速创建对象。

this关键字:代表本类对象,调用本类的属性、方法、构造方法。

方法重载:方法名相同,参数列表不相同

继承:

语法:子类  extends  父类

思想: 多个类所描述的有共同的特征或行为,就可以将这些

类中共同的部分抽取出来建立他们的父类。

继承的好处:子类共用父类的代码,提高了代码的重用性;代码

后期扩展和维护,只需添加对应的子类即可。

涉及到的其他的知识点:

super关键字:代表父类的对象,调用父类的属性、方法、构造方法。

abstract关键字:抽象,修饰类、修饰方法。

static关键字:静态,修饰属性、方法、代码块、内部类

final关键字:最终,修饰属性、方法、类

方法重写:方法名相同,参数列表相同,返回值类型相同,

修饰符大于或等于父类的访问修饰符

多态:

语法:父类  对象名=new  子类();

思想:父类型的引用可以指向内存中的子类对象的内存空间,

就可以方便在设计方法的参数和返回值类型的时候,可以

设计成父类对象,这样的方法在实现时比较简洁,在后期

进行扩展时,方法比较容易。

在代码中,多态的使用更多的是父类引用指向子类对象,

会自动类型转换(向上转型),但是有时候也需要调用子类

中自己的东西,这个时候就需要还原子类,叫强制类型转换

(向下转型),转的时候要先使用instanceof运算符做类型的

判断。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/409039.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[机器学习笔记]Note15--大规模机器学习

继续是机器学习课程的笔记,本节内容主要是介绍大规模机器学习的内容。 大型数据集的学习 对于一个过拟合的模型,增加数据集的规模可以帮助避免过拟合,并获得一个更好的结果。 但是对于一个大规模的数据,比如有100万个数据量的训…

Linux管道和重定向 ---多命令协作

管道及重定向就是Linux多命令协作的基础机制Linux的Shell对数据流进行以下分类定义:   stdin 标准输入 编号为:0 默认:键盘  stdout 标准输出 编号为:1 默认:终端  stderr 标准错误 编号为&…

java 骰子_基本随机滚动骰子Java

5 个答案:答案 0 :(得分:12)Random.nextInt()具有不可预测的行为 - 它可以为整数生成所有可能的值,包括负数。改为使用Random.nextInt(numSides) - 它将从[0,numSides]返回一个整数,即包括0并排除numSides。要获得所需的功能[1&am…

[机器学习笔记]Note16--应用示例:图像文字识别

继续是机器学习课程的笔记,本节课是最后一节内容了,主要是介绍一个应该–图中文字的识别。 问题描述和流程图 图像文字识别应用就是从给定的图片中识别文字。这比从一份扫描文档中识别文字要复杂得多。一个例子图片如下所示: 为了完成这样的…

java中文处理_Java的中文乱码处理

1,设置编译器的编码(Eclipse)、Window >preferences>Workspace> Text file encoding下的Other设置为UTF-8设置jsp页面的编码(Eclipse)Window >preferences>Web> JSPFile>Encoding设置为UTF-82.从前端获取的数据乱码(1)request.setCharacterEnc…

[线性代数]Note2--矩阵消元

第二节介绍矩阵消元的知识. 消元法 首先是给出一个例子来说明消元法的使用,例子如下所示: ⎧⎩⎨x2yz23x8yz124yz2\begin{cases} x+2y+z=2 \\ 3x+8y+z=12 \\4y+z=2 \end{cases}用矩阵表示就是 A⎡⎣⎢130284111⎤⎦⎥b⎡⎣⎢2122⎤⎦⎥A = \left[ \be…

error LNK2019: unresolved external symbol _WinMain@16 referenced in function ___tmainCRTStartup

一、问题描述: error LNK2019: unresolved external symbol _WinMain16 referenced in function ___tmainCRTStartup 二、产生原因: 1. 你用vc建了一个控制台程序,它的入口函数应该是main, 而你使用了WinMain.2. 你用vc打开了一个.c/.cpp 文…

python小老鼠编程_邯郸pythonnot学习费用多少

邯郸pythonnot学习费用多少更新时间:2020-08-02 12:49:04注意:如果出现错误,可能是因为安装时未勾选AddPython3.5toPATH选项,此时卸载Python后重新安装时勾选AddPython3.5toPATH选项即可。1.2Mac中安装Python3Mac系统中自带了Pyth…

[线性代数]Note3--乘法和逆矩阵

继续是线性代数的学习笔记,第三节课乘法和逆矩阵 矩阵乘法 首先是对于矩阵相乘,如矩阵A和B相乘得到C,即A*BC;那么如果要得到矩阵C的一个元素,如c34,其求解如下所示: c34a31∗b14a32∗b24…∑k1na3kbk4c_{34} = a_{3…

数学/sgu 130 Circle

题意 一个圆上有2k点,请输出点于点之间连线使得所分区域块数最小的方案总数以及区域数 分析 2k个点最少能把平面分成k1的区域,易证; 至于方案数,利用递推和乘法原理 令f[i]表示2i个点时的方案数,f[0]f[1]1,则f[i]sigma…

java多线程调用nsq消费_spark-streaming连接消费nsq

spark-streaming连接消费nsq目的使用 NSQ作为消息流使用 spark-streaming 进行消费对数据进行清洗后,保存到hive仓库中连接方案1、编写Spark Streaming Custom Receivers(spark-streaming 自定义接收器),详细见文档2、使用 nsq 官方提供的Java程序连接包…

[线性代数]Note4--A的LU分解转置-置换-向量空间

继续是线性代数的学习笔记,这次的笔记包含第四、五、六节三节课的内容。 第四节课是介绍A的LU分解。A的LU分解是指将矩阵A分解成一个下三角矩阵和一个上三角矩阵的乘积。其主要应用在数值分析中,用来解线性方程、求反矩阵或者计算行列式。 第五节课是介…

java:自定义数据库连接池

http://idata.blog.51cto.com/4581576/1159243转载于:https://www.cnblogs.com/fengjian/archive/2013/03/22/2975366.html

(转)C结构体之位域(位段)

转载自C结构体之位域(位段) 有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可。为了节省存储空间,并使处理简便,C…

java为何重复调用方法_通过反射调用Java中的getter:重复调用它的最快方法是什么(在性能和可伸缩性方面)?...

小编典典您可以使用MethodHandle。其Javadoc写道:使用Lookup API中的工厂方法,可以将Core ReflectionAPI对象表示的任何类成员转换为行为等效的方法句柄。例如,可以使用Lookup.unreflect将反射方法转换为方法句柄。生成的方法句柄通常提供对底…