我写博客是为了提升自己和为了进入黑马程序员学习,还有分享些自己的心得给大家,希望能帮助大家学习JAVA。

我是自学的,如果写的有错误或者能更好的修改的请提出。

在这里我先引用下《think in java》中的一句话来引入学习 “万物皆对象” 。。

java是一种面向对象的程序设计语言,了解 甚至熟悉 面向对象的编程思想对于学习Java开发相当重要。下面我为大家解释下面向对象的概念。

面向对象的概念

面向对象是一种符合人类思维习惯的编程思想。

JAVA面向对象最重要的特征就是:封装,继承,多态。





封装是为了方便调用类库里面已经写好的函数,继承是方便对已有函数的功能进行直接调用和扩展。按照原则,java中已经写好的类库会被打包成jar包,不允许调用者更改里面的代码。





但是你可以通过其中的抽象类或者接口,根据具体的业务逻辑进行功能的扩展。





多态的作用是,可以实现对继承对象的统一调度,是面向对象的精髓所在。





另外,java还有语言简单,面向对象,和平台无关性。之所以java可以跨平台,在于他可以通过java虚拟机JVM,将java代码解释成该平台能理解的语言。

下面我用简单的例子来解释下JAVA面向对象的特征:

1.封装性

封装是面向对象的核心思想,将对象的属性和行为封装起来,不需要让外界知道具体实现细节,这就是封装思想。例如:人使用电脑,只需要用手操作键盘和鼠标就可以实现了,完全不需要内部是如何工作的,即使人可能知道电脑的工作原理,但是使用时并不完全依赖电脑工作原理这些细节。

2.继承性

继承性主要描述的是类之间的关系,通过继承,可以在无需重新编写原有类的情况下,对原有类的功能进行扩展。

例如:比如儿子继承了爹的东西,是不是就相当于有爹的功能呢?例如爹有个叫做挣钱的功能,你是不是就有钱花了? 比如再有一个干爹,干爹有个叫移民的功能。 你就在有钱花的基础上 又可以移民了  所以继承的越多干爹,儿子就更多爹的功能呢? 就是他们的功能 儿子都可以使用。。这就是继承,继承不仅增强了代码复用性,提高了开发效率,而且为了程序的修改补充提供了便利。

3.多态性

多态性指的是在程序中允许出现重名现象,它值在一个类中定义的属性和方法被其他类继承后,她们可以具有不同的数据类型或表现出不同的行为,这使得同一个属性和方法在不同的类中具有不同的语义。例如,当听到“cut”这个单词时候,理发师的行为是剪发,演员的行为是停止表演,不同的对象,所表现的行为是不一样的。

面向对象的思想光靠上面的介绍是无法真正理解的,只有通过大量的实践去学习和理解,才能将面向对象真正领悟。

JAVA_SE基础——22.面向对象的概念的更多相关文章

  1. JAVA_SE基础——25.面向对象练习

    黑马程序员入学blog ... 昨晚我写了篇面向对象的内存分析,今天我们来做个小练习.. 需求: 使用java描述一个车与修车厂两个事物, 车具备的公共属性:轮子数. 名字. 颜色 ,还 具备跑的功能 ...

  2. JAVA_SE基础——24.面向对象的内存分析

    黑马程序员入学blog ... 接着上一章的代码: //车类 class Car{ //事物的公共属性使用成员变量描述. String name; //名字的属性 String color; //颜色 ...

  3. [.net 面向对象编程基础] (22) 事件

    [.net 面向对象编程基础] (22)  事件 事件(Event)是学习.net面向对象编程很重要的一部分,在学习事件之前,我们实际上已经在很多地方使用了事件,比如控件的click事件等,这些都是. ...

  4. (转)Python成长之路【第九篇】:Python基础之面向对象

    一.三大编程范式 正本清源一:有人说,函数式编程就是用函数编程-->错误1 编程范式即编程的方法论,标识一种编程风格 大家学习了基本的Python语法后,大家就可以写Python代码了,然后每个 ...

  5. [.net 面向对象编程基础] (11) 面向对象三大特性——封装

    [.net 面向对象编程基础] (11) 面向对象三大特性——封装 我们的课题是面向对象编程,前面主要介绍了面向对象的基础知识,而从这里开始才是面向对象的核心部分,即 面向对象的三大特性:封装.继承. ...

  6. [.net 面向对象编程基础] (12) 面向对象三大特性——继承

    [.net 面向对象编程基础] (12) 面向对象三大特性——继承 上节我们说了面向对象的三大特性之一的封装,解决了将对同一对象所能操作的所有信息放在一起,实现统一对外调用,实现了同一对象的复用,降低 ...

  7. [.net 面向对象编程基础] (13) 面向对象三大特性——多态

    [.net 面向对象编程基础] (13) 面向对象三大特性——多态 前面两节,我们了解了面向对象的的封装和继承特性,面向对象还有一大特性就是多态.比起前面的封装和继承,多态这个概念不是那么好理解.我们 ...

  8. JAVA_SE基础——7.常量&变量

    上一篇,我讲了标识符&关键字    这篇我来解释下变量&常量~~~ 变量与常量这两个概念相信大家都不会感到陌生,在数学中就已经涉及了变量与常量.理解变量与常量,可以举这样一个例子: 例 ...

  9. JAVA_SE基础——6.标识符&关键字

    学会写helloworld之后,  我们就开始来认识标识符&关键字 一.标识符 标识符是指可被用来为类.变量或方法等命名的字符序列,换言之,标识符就是用户自定义的名称来标识类.变量或方法等.更 ...

随机推荐

  1. vultr VPS的购买及搭建ss介绍,支持锐速加速优化

    Vultr虽然成立时间不久,但是其背景实力还是比较雄厚的,基于全球最大的游戏服务器提供商之一的基础,所以才有实力开设这么多的数据中心.有速度较好的日本东京.洛杉矶等机房,也有我们很多人需要的欧洲机房等 ...

  2. 使用 SVN 创建 Externals 引用 其他 SVN项目

    方法地址 http://blog.sina.com.cn/s/blog_6204ca300101itg2.html

  3. 用MATLAB结合四种方法搜寻罗马尼亚度假问题

    选修了cs的AI课,开始有点不适应,只能用matlab硬着头皮上了,不过matlab代码全网仅此一份,倒有点小自豪. 一.练习题目 分别用宽度优先.深度优先.贪婪算法和 A*算法求解"罗马利 ...

  4. 每个java初学者都应该搞懂的问题

    对于这个系列里的问题,每个学JAVA的人都应该搞懂.当然,如果只是学JAVA玩玩就无所谓了.如果你认为自己已经超越初学者了,却不很懂这些问题,请将你自己重归初学者行列.内容均来自于CSDN的经典老贴. ...

  5. BAT脚本/Dos 改ip地址

    BAT脚本/Dos 改ip 经常换地方上网,总改这些很麻烦,直接写三个bat,点一下就换了.需要管理员权限.之前用python的wmi写过,但是没起作用. ip:10.10.41.15 子网掩码:25 ...

  6. C++模板类与Qt信号槽混用

    一.正文 目前正在做一个视频处理相关的项目.项目的技术栈是这样的,UI层采用Qt来实现基本的数据展示和交互,底层音视频采用的是一套基于FFmpeg的视频处理框架.这是一套类似Microsoft Med ...

  7. push_back和emplace_back的区别

    emplace_back能就地通过参数构造对象,不需要拷贝或者移动内存,相比push_back能更好地避免内存的拷贝与移动,使容器插入元素的性能得到进一步提升.在大多数情况下应该优先使用emplace ...

  8. Java String常用方法

    字符串查找 两种查找字符串的方法,indexOf(String s)和lastIndexOf(String s). String str = "tyson-json"; int i ...

  9. Python之sqlite3

    Python sqlite3数据库是一款非常小巧的内置模块,它使用一个文件存储整个数据库,操作十分方便,相比其他大型数据库来说,确实有些差距.但是在性能表现上并不逊色,麻雀虽小,五脏俱全,sqlite ...

  10. ES6中export及export default的区别

    相信很多人都使用过export.export default.import,然而它们到底有什么区别呢? 在JavaScript ES6中,export与export default均可用于导出常量.函 ...