《Java从入门到放弃》JavaSE入门篇:面向对象概念(入门版)
要知道什么是面向对象,你首先要有个对象吧,所以······没有对象的可以回家洗洗睡了·
好吧,前面是开玩笑,要说明什么是面向对象,我们还是先
例子:
小呆:“小傻,你今天早餐吃的什么?”
小傻:“吃的东西可多啦,有两片面包,一块鸡肉饼,几片菜叶子,一点沙拉酱,另外还喝了一杯可乐,一袋油炸土豆条”
小呆:“小傻,你四不四洒啊!你直接说你吃的鸡肉堡套餐不行么 - -”
小傻:“呃,好吧,我吃的这个鸡肉汉堡套餐”
OK,从上面的例子可以了解到什么是面向对象了吧,初学者可以这样理解:把很多单独的数据和方法封装在一起,就变成了一个对象。
后面我们会讲解面向对象的一些概念:类、对象、属性、方法、封装、继承、多态,通过这些概念再来理解什么是面向对象。
那么,上面这个例子中出现了几个对象呢?
第一个:鸡肉汉堡套餐:包含的属性有鸡肉汉堡,薯条,可乐
第二个:鸡肉汉堡:包含的属性有面包,鸡肉饼,生菜,海拉酱
第三个:一袋薯条:包含的属性有很多根薯条,一个包装袋
第四个:一杯可乐:一个杯子,一些冰块,可乐
第五个:......
是不是发现,这样分析下去可以无穷无尽???哈哈,那就对了,这就是面向对象编程分析。
当然实际开发中我们不会这样不断分解下去,没必要把一个对象最终分解成原子。
一般我们会根据功能来分析具体有哪些对象,如果有一些对象具有相同的属性和方法,我们会把它们归于一类。具体如何分析就是我们接下来的内容了。
基本概念介绍
一、类:
类就是对一组具有相同属性和方法的对象的一个抽象,简单说就是一个概念,比如“女神”就是一个类
女神
二、对象:
对象就是类的一个实例,简单说就是一个真实存在的实物,是一个具体的东西了,比如有些看官的女神就很具体了
林姐姐 苍井姐姐
贾大姐
三、属性:
属性就是对象的特征,是名词,比如上面的女神都有身高、体重、姓名、年龄和三围等·
林姐姐:173cm,54kg,林志玲,43和保密。
苍井姐姐:155cm,45kg,苍井空,34和保密。
贾大姐:166cm,保密 ,贾 玲,35和保密。
四、方法:
方法就是对象的行为,是动词或动名词
林姐姐有游泳、跑步和拍广告等方法。
苍姐姐有拍写真、拍电影等方法。
贾大姐有演小品、唱歌等方法。
五、封装:
封装就很好理解了,都有收发过包裹吧,这就是一种封装
封装最大的好处就是隐藏细节,只预留使用者关注的功能API就OK了。
比如空调,从使用者的角度,我们只关心以下功能的使用:开、关、制热、制冷、调温度等。具体这些功能如何实现的,对应的电子电路图是什么样的,使用了什么样的电路板等,我们完全不关心也不用关心。
六、继承:
继承应该也好理解吧,就是龙生龙,凤生凤,老鼠的儿子会打洞,如果出现下面这情况,就要问问隔壁老王了。
七、多态:
面向对象中的多态是指不同的对象对相同的指令有不同的执行效果。比如你让不同的葫芦娃执行“放大招()”这个方法,对应的效果就不一样。
今天就先介绍一下基本概念吧,下次我们再来看这些概念对应的Java语法。
“软件思维”博客地址:51CTO,博客园,感兴趣的小伙伴可以去看相关的其它博文。
《Java从入门到放弃》JavaSE入门篇:面向对象概念(入门版)的更多相关文章
- dotnet 从入门到放弃的 500 篇文章合集
本文是记录我从入门到放弃写的博客 博客包括 C#.WPF.UWP.dotnet core .git 和 VisualStudio 和一些算法,所有博客使用 docx 保存 下载:dotnet 从入门到 ...
- Java性能测试从入门到放弃-详解篇
Jmeter组件分类说明 Jmeter的组件可以放在任意位置 线程池:用于创建线程.每个线程会"批次顺序"执行任务,因此后面的任务可根据前面的任务决定具体的操作. ...
- python从入门到放弃之线程篇
一,什么是多线程? 1.多线程的概念? 说起多线程,那么就不得不说什么是线程,而说起线程,又不得不说什么是进程. 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分 ...
- 拒绝从入门到放弃_《Python 核心编程 (第二版)》必读目录
目录 目录 关于这本书 必看知识点 最后 关于这本书 <Python 核心编程 (第二版)>是一本 Python 编程的入门书,分为 Python 核心(其实并不核心,应该叫基础) 和 高 ...
- 2018-8-10-dotnet-从入门到放弃的-500-篇文章合集
title author date CreateTime categories dotnet 从入门到放弃的 500 篇文章合集 lindexi 2018-08-10 19:16:52 +0800 2 ...
- Kafka从入门到放弃(三)—— 详说消费者
之前介绍了Kafka以及生产者,包括它的一些特性和参数,这回写一下消费者. 之前没看得可以点击链接阅读. Kafka从入门到放弃(一) -- 初识Kafka Kafka从入门到放弃(二) -- 详说生 ...
- hive从入门到放弃(三)——DML数据操作
上一篇给大家介绍了 hive 的 DDL 数据定义语言,这篇来介绍一下 DML 数据操作语言. 没看过的可以点击跳转阅读: hive从入门到放弃(一)--初识hive hive从入门到放弃(二)--D ...
- Linux Capabilities 入门教程:进阶实战篇
原文链接:https://fuckcloudnative.io/posts/linux-capabilities-in-practice-2/ 该系列文章总共分为三篇: Linux Capabilit ...
- pytorch从入门到放弃(目录)
目录 前置基础 Pytorch从入门到放弃 推荐阅读 前置基础 Python从入门到放弃(目录) 人工智能(目录) Pytorch从入门到放弃 01_pytorch和tensorflow的区别 02_ ...
随机推荐
- nyoj_600:花儿朵朵(树状数组+坐标离散化)
http://acm.nyist.net/JudgeOnline/problem.php?pid=600 只附代码好了 #include<bits/stdc++.h> using name ...
- 学习笔记TF031:实现VGGNet
VGGNet,牛津大学计算机视觉组(Visual Geometry Group)和Google DeepMind公司一起研发,深度卷积神经网络.VGGNet反复堆叠3x3小型卷积核和2x2最大池化层, ...
- Haproxy的配置
1,下载Haproxy 下载Haproxy 1.6 2,安装haproxy uname -r cd /usr/local/src/haproxy-1.6.9/ make TARGET=linux31 ...
- C++学习(八)入门篇——复合类型
数组(需要声明以下三点): (1)存储在每个元素中值的类型 (2)数组名 (3)数组中的元素数 声明数组的通用格式如下: typeName arrayName[arraySize];arraySize ...
- javac.exe、 java.exe、 java虚拟机三者之间的区别与联系
JDK中 javac:Java编译器,将Java源代码换成字节代: java:Java解释器,直接从类文件执行Java应用程序代码: 先编译 *.java文件――――>*.class文件 运行 ...
- Unity Shader入门教程(四)反射光斑的实现
本节内容介绍PhongModel(也就是上文说的反射光的计算模型),采用的计算方法是BlinPhong(也即是用视线方向V+光源方向L的和,与N做点积,随后幂化得到高光反射系数)下图采用了csdn博文 ...
- oracle ORA-00604/ORA-01653
问题描述: ORA-00604: error occurred at recursive SQL level 1ORA-01653: unable to extend table SYS.AUD$ b ...
- React Native 系列(二) -- React入门知识
前言 本系列是基于React Native版本号0.44.3写的,最初学习React Native的时候,完全没有接触过React和JS,本文的目的是为了给那些JS和React小白提供一个快速入门,让 ...
- salesforce零基础学习(七十八)线性表链形结构简单实现
前两篇内容为栈和队列的顺序结构的实现,栈和队列都是特殊的线性表,线性表除了有顺序结构以外,还有线性结构. 一.线性表的链形结构--链表 使用顺序存储结构好处为实现方式使用数组方式,顺序是固定的.所以查 ...
- 28.Implement strStr()【leetcod】
Implement strStr(). Returns the index of the first occurrence of needle in haystack, or -1 if needle ...