java编程思想之面向对象
面向对象和面向过程
面向对象(Object Oriented),简称OO,是软件开发方法的一种,我们都知道java是基于面向对象开发的,但是说到面向对象,我们不得不提一提面向过程开发,面向过程,又称结构化开发,是指在开发过程中注重过程设计,用函数来表示过程,强调过程间的执行顺序,具有代表性的语言比如c语言,而面向对象则注重过程的复用性和扩展性,我举一个简单的例子,我们每天起床后都要做的一些事情,我用方法来描述
- 洗脸
- 刷牙
- 吃早餐
- 背着书包上学堂
如果用面向过程的方法来解决,那么很显然我们每天都是按着1、2、3、4的顺序在执行,但是总有一些特殊情况,比如说今天起晚了,没有时间吃饭了,那么怎么让程序变为1、2、4呢,对于纯粹的面向过程,我们只能回去改源代码,如果我们把每一步都用一个函数来包装,那我们只需要少调用一个3便达到了目的,在这里函数包装就是面向对象的思想,可以看出,在面向过程编程中也有面向对象的影子,其实在面向对象中也有面向过程,面向对象强调过程(也就是函数)的复用性和扩展性,那么这个函数从何而来呢,来自于过程,其实我们不应该去比较面向过程和面向对象的好坏,他们只是历史发展的潮流,面向过程注重过程的实现,其中有面向对象的雏形,面向对象又是对过程的包装,不同的时代,所注重的重点不同
面向对象思想
java面向对象主要分为以下几个方面:
- 抽象:我们生活中的抽象是指看不见摸不着的东西,总是指一些难以理解的事物,而在计算机科学领域,抽象是指抽出一类事物的本质,一些我们注重的特性。
- 类:当我们通过抽象提取出来一些特性,就得有容器来装这些特性,类就是 java中用来装特性的容器,类具有属性和方法,分别对应事物的属性和行为。
- 对象:当我们拥有类的时候,怎么使用这些类呢,类的实例化,实例化是将一个抽象的类赋予其特定的属性,构造出一个实实在在存在的,我们可以使用的对象,对象是类的实例化。
- 封装:在上面提到了函数是对过程的简单封装,那我们为什么不封装的更加彻底一些呢,将我们抽象提取出来的一类事物的属性和行为封装起来呢!这就是封装,至于彻底不彻底,这得比java更加抽象的语言来证明。
- 继承:继承是类与类之间的关系,继承的前提是二者是一类事物(比如说都是老师)。当一个A(例如:老师类)类已经存在时,我们还需要一个B(例如:数学老师类)类,我们发现B是在A的基础上,但又不同于A,我们希望通过某种方式来描述B类,继承可以帮助我们不必从无到有的构造这个B类,我们直接在A类的基础上,增加B的区别于A类的属性和行为。
- 多态:多态是类与对象之间的关系,多态的前提是继承和实例化,在上面我们了解了继承的一个好处,他可以帮助我们快速的构造一个类,而多态就是继承的另外一个好处,多态可以理解为一种对象多种实现方式(实现方式指的是实例化),例如A a = new B(),我们声明了一个A的对象,但却是B的实例化,这个a可以调用A和B共有的方法。有些时候我们写代码并不确定这里是一个什么类型,只能在运行时期才能确定是什么类型,所以先声明一个父类,运行期间无论碰到哪一个子类程序都没有问题。
java编程思想之面向对象的更多相关文章
- java编程思想-复用类总结
今天继续读<java 编程思想>,读到了复用类一章,看到总结写的很好,现贴上来,给大家分享. 继承和组合都能从现有类型生成新类型.组合一般是将现有类型作为新类型底层实现的一部分来加以复用, ...
- 《Java编程思想》第一二章
前段时间一直通过网络教程学习Java基础,把面向对象部分学完之后本来打算继续深入学习,但是感觉自己操之过急了,基础根本不够扎实,所以入手了一本<Java编程思想>,希望先把基础打好,再深入 ...
- Java编程思想读书笔记(一)【对象导论】
2018年1月7日15:45:58 前言 作为学习Java语言的经典之作<Java编程思想>,常常被人提起.虽然这本书出版十年有余,但是内容还是很给力的.很多人说这本书不是很适合初学者,我 ...
- 异常笔记--java编程思想
开一个新的系列,主要记一些琐碎的重要的知识点,把书读薄才是目的...特点: 代码少,概念多... 1. 基本概念 异常是在当前环境下无法获得必要的信息来解决这个问题,所以就需要从当前环境跳出,就是抛出 ...
- Java编程思想(后)
Java编程思想(后) 持有对象 如果一个程序只包含固定数量的且其生命期都是已知的对象,那么这是一个非常简单的程序. Java中的库基本类型: List, Set, Queue和Map --- 称为集 ...
- Java编程思想(前十章)
Java编程思想 有C++编程基础的条件下, 前10章可以快速过一下,都是基本语法,不需要花太多时间. 着重中后段的一些章节,类型信息.泛型.容器.IO.并发等. 中文翻译版 阅读地址 对于一个架构师 ...
- 《Java编程思想第四版》附录 B 对比 C++和 Java
<Java编程思想第四版完整中文高清版.pdf>-笔记 附录 B 对比 C++和 Java “作为一名 C++程序员,我们早已掌握了面向对象程序设计的基本概念,而且 Java 的语法无疑是 ...
- Java编程思想 4th 第2章 一切都是对象
Java是基于C++的,但Java是一种更纯粹的面向对象程序设计语言,和C++不同的是,Java只支持面向对象编程,因此Java的编程风格也是纯OOP风格的,即一切都是类,所有事情通过类对象协作来完成 ...
- 《Java编程思想》阅读笔记二
Java编程思想 这是一个通过对<Java编程思想>(Think in java)进行阅读同时对java内容查漏补缺的系列.一些基础的知识不会被罗列出来,这里只会列出一些程序员经常会忽略或 ...
随机推荐
- Python 标准库 —— string
1. maketrans()/translate() maketrans(frm, to) -> string, 建立从字符串 frm 到 to 的映射表(字符串的形式): translate( ...
- 微信小程序 获取用户信息 encryptData解密 C#版本
最近学习小程序开发,需要对encryptData解密,获取用户信息,官方源码没有C#版本,网上的资料比较杂,有的使用还有问题,下面贴一下自己亲试可以使用的一个源码 1.code 换取 session_ ...
- Asp.net-MyFirstMVCProject详细解释
一个URL要求, ASP.NET MVC引擎将分析URL要使用Controller, 这个Controller(取而代之的是,真实的方法Controller的Action)从数据库或者其它数据源获取数 ...
- HDU4421 Bit Magic 【2-sat】
叙述性说明: 这给出了一个矩阵,原来的请求a排列 2-sat称号.对于每一位跑步边,跑31位可 详细的施工方 注意N=1的情况特判,还有检查对称元素是否同样 #include <stdio.h& ...
- Java数组List换算方法
1.List转换到一个数组.(这里List它是实体是ArrayList) 调用ArrayList的toArray方法. toArray public <T> T[] toArray(T[] ...
- ubuntu 16.04快速安装ceph集群
准备工作 假设集群: 选一台作管理机 注意: ceph集群引用hostname,而非ip. 172.17.4.16 test16 #hostname必须是test16 172.17.4.17 test ...
- 疯狂的图形(利用C# + GDI plus模拟杂乱无章的现实场景)
原文:疯狂的图形(利用C# + GDI plus模拟杂乱无章的现实场景) 本文给出了模拟竹叶.长叶草.杂乱石头.天上繁星等关键代码.使用.Net环境下C#语言,GDI+编写. 模拟竹叶 挺像的吧? ...
- SICP 关于递归迭代的重新理解以及尾递归的引入...
看了线性的递归和迭代以及树形递归迭代这部分的内容,感觉对递归和迭代又有了新的理解...所以记录一下,也算对这部分内容的总结吧. 首先书中提到的递归与迭代和我以前想的有点不一样,我感觉书中提到的递归和迭 ...
- 修改window.external使JS可调用Delphi方法
原文地址:http://hi.baidu.com/rarnu/blog/item/4ec80608022766d663d986ea.html 在js中,有一个比较特殊的对象,即window.exter ...
- android x86 7.0 32bit调试apk时出现的错误
detected problems with app native libraries libavcodec.so:text relocationslibavutil.solibswresample. ...