面向对象和面向过程

  面向对象(Object Oriented),简称OO,是软件开发方法的一种,我们都知道java是基于面向对象开发的,但是说到面向对象,我们不得不提一提面向过程开发,面向过程,又称结构化开发,是指在开发过程中注重过程设计,用函数来表示过程,强调过程间的执行顺序,具有代表性的语言比如c语言,而面向对象则注重过程的复用性和扩展性,我举一个简单的例子,我们每天起床后都要做的一些事情,我用方法来描述

  1. 洗脸
  2. 刷牙
  3. 吃早餐
  4. 背着书包上学堂

如果用面向过程的方法来解决,那么很显然我们每天都是按着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编程思想之面向对象的更多相关文章

  1. java编程思想-复用类总结

    今天继续读<java 编程思想>,读到了复用类一章,看到总结写的很好,现贴上来,给大家分享. 继承和组合都能从现有类型生成新类型.组合一般是将现有类型作为新类型底层实现的一部分来加以复用, ...

  2. 《Java编程思想》第一二章

    前段时间一直通过网络教程学习Java基础,把面向对象部分学完之后本来打算继续深入学习,但是感觉自己操之过急了,基础根本不够扎实,所以入手了一本<Java编程思想>,希望先把基础打好,再深入 ...

  3. Java编程思想读书笔记(一)【对象导论】

    2018年1月7日15:45:58 前言 作为学习Java语言的经典之作<Java编程思想>,常常被人提起.虽然这本书出版十年有余,但是内容还是很给力的.很多人说这本书不是很适合初学者,我 ...

  4. 异常笔记--java编程思想

    开一个新的系列,主要记一些琐碎的重要的知识点,把书读薄才是目的...特点: 代码少,概念多... 1. 基本概念 异常是在当前环境下无法获得必要的信息来解决这个问题,所以就需要从当前环境跳出,就是抛出 ...

  5. Java编程思想(后)

    Java编程思想(后) 持有对象 如果一个程序只包含固定数量的且其生命期都是已知的对象,那么这是一个非常简单的程序. Java中的库基本类型: List, Set, Queue和Map --- 称为集 ...

  6. Java编程思想(前十章)

    Java编程思想 有C++编程基础的条件下, 前10章可以快速过一下,都是基本语法,不需要花太多时间. 着重中后段的一些章节,类型信息.泛型.容器.IO.并发等. 中文翻译版 阅读地址 对于一个架构师 ...

  7. 《Java编程思想第四版》附录 B 对比 C++和 Java

    <Java编程思想第四版完整中文高清版.pdf>-笔记 附录 B 对比 C++和 Java “作为一名 C++程序员,我们早已掌握了面向对象程序设计的基本概念,而且 Java 的语法无疑是 ...

  8. Java编程思想 4th 第2章 一切都是对象

    Java是基于C++的,但Java是一种更纯粹的面向对象程序设计语言,和C++不同的是,Java只支持面向对象编程,因此Java的编程风格也是纯OOP风格的,即一切都是类,所有事情通过类对象协作来完成 ...

  9. 《Java编程思想》阅读笔记二

    Java编程思想 这是一个通过对<Java编程思想>(Think in java)进行阅读同时对java内容查漏补缺的系列.一些基础的知识不会被罗列出来,这里只会列出一些程序员经常会忽略或 ...

随机推荐

  1. WPF中CAD control的XAML实现

    原文:WPF中CAD control的XAML实现     下面这个XAML文件是cad control里面最重要的一部分,使用Grid包含Viewport,Viewport中包括Camera和mod ...

  2. Blend_Effect

    原文:Blend_Effect 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u010265681/article/details/76651796 ...

  3. 不积跬步无以至千里(C语言笔记)

    第一章 初始C程序     1.C程序结构         简单来说,一个C程序就是由头文件和函数组成         头文件             一条编译预处理命令:作用是在对C程序进行正式编译 ...

  4. Open SSL 开发环境配置

    Open SSL 开发环境配置 最后更新日期:2014-05-13 阅读前提:VisualStudio的基本使用.Cent OS的基本使用 环境: Windows 8.1 64bit英文版,Visua ...

  5. python 教程 第四章、 控制流

    第四章. 控制流 控制语句后面要加冒号: 1)    if语句 if guess == number: print 'Congratulations, you guessed it.' # New b ...

  6. google 搜索结果在新标签中打开

    google->setting->search setting->Where results open->检查

  7. Highcharts纯js图表库,以后可以跟客户说,你跟阿里云ECS用的图表库是同款

    Highcharts是一款纯javascript编写的图表库,能够很简便的在Web网站或Web应用中添加交互性的图表,Highcharts目前支持直线图.曲线图.面积图.柱状图.饼图.散点图等多达18 ...

  8. WPF中INotifyPropertyChanged用法与数据绑定

    在WPF中进行数据绑定的时候常常会用到INotifyPropertyChanged接口来进行实现,下面来看一个INotifyPropertyChanged的案例. 下面定义一个Person类: usi ...

  9. ASP.NET MVC4使用JCrop裁剪图片并上传

    需要用到的jquery插件Jcrop .Jquery.form 百度webuploader插件( http://fex.baidu.com/webuploader/ ) 引用下载好的css和js文件 ...

  10. Win8 Metro(C#)数字图像处理--2.59 P分位法图像二值化

    原文:Win8 Metro(C#)数字图像处理--2.59 P分位法图像二值化  [函数名称]   P分位法图像二值化 [算法说明]   所谓P分位法图像分割,就是在知道图像中目标所占的比率Rat ...