Java面向对象

        “世间万物皆对象”。

类是什么?

        对现实生活中事物的描述。(类是对某一事物的描述,是抽象的,概念上的定义。)很多个具有相同属性和行为特征的对象所抽象出来的,对象是类的一个实例。

类是对某一类事物的形容或者说概括,例如:人类,动物类,猫科类等等。

对象是什么?

        就是这类事物,实实在在存在的个体。(对象是实际存在的该事物的个体,是具体的、现实的。)对象可以直接反应现实生活的事物,除了存储数据之外还可以对自身进行操作。

对象是拥有该类特征的个体,并可以赋予自己的属性。

面向对象的思想:

程序员从面向过程的执行者转化成了面向对象的指挥者。

个人理解:从我要做什么变成了我能做什么。

面向对象分析方法分析问题的思路和步骤:

1.根据问题需要,选择问题所针对的现实世界中的实体。

2.从实体中寻找解决问题相关的属性和功能,这些属性和功能就形成了概念世界中的类。

3.把抽象的实体用计算机语言进行描述,形成计算机世界中类的定义。即借助某种程序语言,把类构造成计算机能够识别和处理的数据结构。

4.将类实例化成计算机世界中的对象。对象是计算机世界中解决问题的最终工具。

面向对象与面向过程:

        面向对象是相对于面向过程来进行对比的:面向对象是相对于面向过程而言。面向过程强调的是功能、行为,以函数为最小单位,考虑该怎么做。面向对象强调了具备功能的对象,以类/对象为最小单位,考虑谁来做。面向过程直接高效,面向对象更易于复用和维护。

        面向对象三大基本特征:封装、继承、多态。而面向对象的过程就是找对象、建立对象、使用对象、维护对象的关系的过程。

面向过程:做某件事情都需要自己亲历亲为,按照步骤去完成。(要做什么)

面向对象:做某件事情不需要自己亲历亲为,只需指定特定的对象去完成即可。(能做什么)

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

        封装:方法就是一个最基本封装体。类其实也是一个封装体。将类的某些信息隐藏(例如属性,方法私有化)在类内部,不允许外部程序直接访问,而是通过该类提供的方法(对应的get(),set()方法)来实现对隐藏信息的操作和访问。

        封装的好处:隐藏类的实现细节,方便加入控制语句,方便修改实现,只能通过规定方法访问数据。

        继承:继承是子类对父类的拓展,延伸。继承的特点:

1,使用关键字 extends来实现。

2,java 没有多继承(接口可实现伪多继承),只有单继承(单继承意思是一个类除了 Object 这个祖先类之外,只能继承另外的一个类),但是可以多重继承(A 被 B 继承,B 被 C 继承)。

3,不能继承父类的三种情况 private(私有) 成员(有一种说法是,子类接手了父类的私有方法和属性,但不能直接使用,其实一个道理。)、构造方法、子类与父类不在同包,使用默认访问权限的成员。

4,java 中所有的类的祖先都是 Object 类。

5,不同的叫法 父类:基类,超类 ;子类:派生类。

        多态:一个对象在不同的载体中呈现不同的形态。同一个引用类型,调用同一个方法,得到不同的结果。不同的对象接收同样的消息展示出不同的结果。多态的例子:

1,形参多态的必要条件(方法的重载)。

2,要有继承关系。

3,要有方法的重写。

4,父类的引用指向子类的对象(对象转型)。

用途:可以减少类中的代码量,可以提高代码的可拓展性和可维护性,继承是多态的基础,没有继承就没有多态,使用父类作为方法形参和使用父类作为返回值类型是使用多态的常用方式。

面试题:谈谈你对面向对象的理解。

思路:面向对象是相较于面向过程语言来讲的,所以要分别说出两种语言的特点,其次,面向对象的三大特征:封装、继承、多态,也要一并给出详解,最好带上个人理解和看法。

以下是个人的理解:

        面向对象是一种编程思想,它是在面向过程之后提出来的。相较于面向过程语言直接寻找解决问题办法,做某件事情都需要自己亲历亲为,按照步骤去完成,而面向对象语言是指定特定的对象完成相应的功能,面向过程强调的是功能、行为,以函数为最小单位,考虑该怎么做。面向对象强调了具备功能的对象,以类/对象为最小单位,考虑谁来做。面向过程直接高效,面向对象更易于复用和维护。此外,面向对象有三大特性:封装,继承和多态。封装的意义在于保护或者防止代码(数据)被破坏,对想要展示的数据公开,对不想展示的属性隐藏,也就是内部细节对外部透明(看不见),外部调用无需考虑内部实现。继承主要实现重用代码,节省开发时间,在继承基类的基础上,做出自己的改变和扩展。(和C语言声明函数的意义一样,但Java继承一般来说除了有很明显的隶属关系,不要轻易继承,尽量实现接口,毕竟Java只能单继承。此外,被继承的父类,一般来说都是抽象类。)。多态是基于对象所属类不同,外部调用同一个方法,实际执行逻辑不同,也可以是不同的对象接收同样的消息展示出不同的结果。

参考:

尚硅谷【官网】谷粉与老学员力挺的Java培训|大数据培训|前端培训|Python培训 (atguigu.com)

(1条消息) java面向对象_黎小小的博客-CSDN博客_java面向对象

(1条消息) java面向对象最全入门笔记(通俗易懂,适合初学者)_javaboy_yl-CSDN博客

膜拜!华为大牛透彻讲解Java面试100道必考题,不管你工作几年,都得看看!现在免费分享给大家!_哔哩哔哩_bilibili

(15条消息) Java面向对象(知识点整理)_yang642019851的博客-CSDN博客_java面向对象知识点

(15条消息) 如何理解封装、继承和多态_c_w_d的博客-CSDN博客_封装继承多态的理解

(15条消息) java的三大特征之一封装__cris的博客-CSDN博客_java封装的体现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿长@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值