要知道什么是面向对象,你首先要有个对象吧,所以······没有对象的可以回家洗洗睡了·

好吧,前面是开玩笑,要说明什么是面向对象,我们还是先


例子:

小呆:“小傻,你今天早餐吃的什么?”

小傻:“吃的东西可多啦,有两片面包,一块鸡肉饼,几片菜叶子,一点沙拉酱,另外还喝了一杯可乐,一袋油炸土豆条”

小呆:“小傻,你四不四洒啊!你直接说你吃的鸡肉堡套餐不行么 - -”

小傻:“呃,好吧,我吃的这个鸡肉汉堡套餐”


OK,从上面的例子可以了解到什么是面向对象了吧,初学者可以这样理解:把很多单独的数据和方法封装在一起,就变成了一个对象。

后面我们会讲解面向对象的一些概念:类、对象、属性、方法、封装、继承、多态,通过这些概念再来理解什么是面向对象。

那么,上面这个例子中出现了几个对象呢?

第一个:鸡肉汉堡套餐:包含的属性有鸡肉汉堡,薯条,可乐

第二个:鸡肉汉堡:包含的属性有面包,鸡肉饼,生菜,海拉酱

第三个:一袋薯条:包含的属性有很多根薯条,一个包装袋

第四个:一杯可乐:一个杯子,一些冰块,可乐

第五个:......

是不是发现,这样分析下去可以无穷无尽???哈哈,那就对了,这就是面向对象编程分析。

当然实际开发中我们不会这样不断分解下去,没必要把一个对象最终分解成原子。

一般我们会根据功能来分析具体有哪些对象,如果有一些对象具有相同的属性和方法,我们会把它们归于一类。具体如何分析就是我们接下来的内容了。


基本概念介绍

一、类:

类就是对一组具有相同属性和方法的对象的一个抽象,简单说就是一个概念,比如“女神”就是一个类

女神

二、对象:

对象就是类的一个实例,简单说就是一个真实存在的实物,是一个具体的东西了,比如有些看官的女神就很具体了

               

林姐姐                                                  苍井姐姐

贾大姐

三、属性:

属性就是对象的特征,是名词,比如上面的女神都有身高、体重、姓名、年龄和三围等·

 林姐姐:173cm,54kg,林志玲,43和保密。

苍井姐姐:155cm,45kg,苍井空,34和保密。

 贾大姐:166cm,保密 ,贾 玲,35和保密。

四、方法:

方法就是对象的行为,是动词或动名词

林姐姐有游泳、跑步和拍广告等方法。

苍姐姐有拍写真、拍电影等方法。

贾大姐有演小品、唱歌等方法。

五、封装:

封装就很好理解了,都有收发过包裹吧,这就是一种封装

封装最大的好处就是隐藏细节,只预留使用者关注的功能API就OK了。

比如空调,从使用者的角度,我们只关心以下功能的使用:开、关、制热、制冷、调温度等。具体这些功能如何实现的,对应的电子电路图是什么样的,使用了什么样的电路板等,我们完全不关心也不用关心。

六、继承:

继承应该也好理解吧,就是龙生龙,凤生凤,老鼠的儿子会打洞,如果出现下面这情况,就要问问隔壁老王了。

七、多态:

面向对象中的多态是指不同的对象对相同的指令有不同的执行效果。比如你让不同的葫芦娃执行“放大招()”这个方法,对应的效果就不一样。

今天就先介绍一下基本概念吧,下次我们再来看这些概念对应的Java语法。

“软件思维”博客地址:51CTO博客园,感兴趣的小伙伴可以去看相关的其它博文。

《Java从入门到放弃》JavaSE入门篇:面向对象概念(入门版)的更多相关文章

  1. dotnet 从入门到放弃的 500 篇文章合集

    本文是记录我从入门到放弃写的博客 博客包括 C#.WPF.UWP.dotnet core .git 和 VisualStudio 和一些算法,所有博客使用 docx 保存 下载:dotnet 从入门到 ...

  2. Java性能测试从入门到放弃-详解篇

    Jmeter组件分类说明 Jmeter的组件可以放在任意位置 线程池:用于创建线程.每个线程会"批次顺序"执行任务,因此后面的任务可根据前面的任务决定具体的操作.          ...

  3. python从入门到放弃之线程篇

    一,什么是多线程? 1.多线程的概念? 说起多线程,那么就不得不说什么是线程,而说起线程,又不得不说什么是进程. 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分 ...

  4. 拒绝从入门到放弃_《Python 核心编程 (第二版)》必读目录

    目录 目录 关于这本书 必看知识点 最后 关于这本书 <Python 核心编程 (第二版)>是一本 Python 编程的入门书,分为 Python 核心(其实并不核心,应该叫基础) 和 高 ...

  5. 2018-8-10-dotnet-从入门到放弃的-500-篇文章合集

    title author date CreateTime categories dotnet 从入门到放弃的 500 篇文章合集 lindexi 2018-08-10 19:16:52 +0800 2 ...

  6. Kafka从入门到放弃(三)—— 详说消费者

    之前介绍了Kafka以及生产者,包括它的一些特性和参数,这回写一下消费者. 之前没看得可以点击链接阅读. Kafka从入门到放弃(一) -- 初识Kafka Kafka从入门到放弃(二) -- 详说生 ...

  7. hive从入门到放弃(三)——DML数据操作

    上一篇给大家介绍了 hive 的 DDL 数据定义语言,这篇来介绍一下 DML 数据操作语言. 没看过的可以点击跳转阅读: hive从入门到放弃(一)--初识hive hive从入门到放弃(二)--D ...

  8. Linux Capabilities 入门教程:进阶实战篇

    原文链接:https://fuckcloudnative.io/posts/linux-capabilities-in-practice-2/ 该系列文章总共分为三篇: Linux Capabilit ...

  9. pytorch从入门到放弃(目录)

    目录 前置基础 Pytorch从入门到放弃 推荐阅读 前置基础 Python从入门到放弃(目录) 人工智能(目录) Pytorch从入门到放弃 01_pytorch和tensorflow的区别 02_ ...

随机推荐

  1. UDP和多线程服务器

    UDP: UDP是数据报文传输协议,这个传输协议比较野蛮,发送端不需要理会接收端是否存在,直接就发送数据,不会像TCP协议一样建立连接.如果接收端不存在的话,发送的数据就会丢失,UDP协议不会去理会数 ...

  2. 20170717_python爬虫之requests+cookie模拟登陆

    在成功登陆之前,失败了十几次.完全找不到是什么原因导致被网站判断cookie是无效的. 直到用了firefox的httpfox之后才发现cookie里还有一个ASP.NET_SessionId 这个字 ...

  3. 快速了解cpu、核与线程

    作为一个后台开发人员,我想有必要了解这些基础知识.如果本文有不严谨或者疏忽的地方,请指正. cpu与核心 物理核 物理核数量=cpu数(机子上装的cpu的数量)*每个cpu的核心数 虚拟核 所谓的4核 ...

  4. 天地图使用过程中由于display:none导致加载部分地图瓦片失败

    在为按钮添加点击事件让地图显示的时候,初始加载未加载到当前页面尺寸的所有地图瓦片,在display:none之后停止加载地图,所以display:none属性去掉,改为dom解析完成之后$('#map ...

  5. (转)spring学习之@ModelAttribute运用详解

    @ModelAttribute使用详解 1 @ModelAttribute注释方法 例子(1),(2),(3)类似,被@ModelAttribute注释的方法会在此controller每个方法执行前被 ...

  6. hibernate 使用枚举字段的最佳实践

    枚举类虽然很简单,但是却往往是系统中业务逻辑最集中最复杂的地方.本文将会分享我们项目中基于hibernate的枚举类使用规范,包含数据库中枚举列数据类型.注释.枚举列与枚举类的映射等. 一.枚举类定义 ...

  7. RequireJs加载Codemirror,配合AngularJS的坑

    requireJS加载codemirror,并且配合angularJs一起使用的时候,高亮显示代码编辑器.要注意以下几点: 1:普通Js加载CodeMirror  代码如下: <!DOCTYPE ...

  8. Vue2源码分析-逻辑梳理

    很久之前就看完vue1,但是太懒就一直没写博客,这次打算抽下懒筋先把自己看过了记录下来,否则等全部看完,估计又没下文了 看源码总需要抱着一个目的,否则就很难坚持下去,我并没做过vue的项目,我几乎很少 ...

  9. linux下怎么卸载自带的JDK和安装想要的JDK

    linux下怎么卸载自带的JDK和安装想要的JDK   安装linux系统后,系统有自带jdk的版本,因为系统中的有些软件需要使用此环境.但时候我们安装eclipse和tomcat的时候,使用此jdk ...

  10. 【待整理】MySQL alter table modify vs alter table add产生state不一样

    MySQL:5.6.35 OS:redhat5.8 今天更新数据库某些表字段,有如下两SQL: ①alter table xx modify xxxx;(表大概是77w) ②alter table s ...