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内容查漏补缺的系列.一些基础的知识不会被罗列出来,这里只会列出一些程序员经常会忽略或 ...
随机推荐
- Android TV开发总结(七)构建一个TV app中的剧集列表控件
原文:Android TV开发总结(七)构建一个TV app中的剧集列表控件 版权声明:我已委托"维权骑士"(rightknights.com)为我的文章进行维权行动.转载务必转载 ...
- Apache Cordova开发环境搭建(二)VS Code
原文:Apache Cordova开发环境搭建(二)VS Code 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u011127019/articl ...
- CCNP路由实验之七 动态路由之BGP
CCNP路由实验之七 动态路由之BGP 动态路由协议能够自己主动的发现远程网络,仅仅要网络拓扑结构发生了变化,路由器就会相互交换路由信息,不仅能够自己主动获知新添加的网络,还能够在当前网络连接失 ...
- 【iOS发展-49】的插件-插件该文档的凝视VVDocumenter安装与使用
文件凝视是/** */.快捷键///. 但是,这需要安装插件.VVDocumenter. 下载链接:https://github.com/onevcat/VVDocumenter-Xcode (1 ...
- WPF IDataErrorInfo使用-数据对象上验证
<Window x:Class="DataBindingExam.MainWindow" xmlns="http://schemas.microsof ...
- WPF三维图形
原文:WPF三维图形 wpf 三维图形基础生成三维图形的基本思想是能得到一个物体的三维立体模型(model).由于我们的屏幕只有二维,因而我们定义了一个用于给物体拍照的照相机(Camera).拍到的照 ...
- win10 uwp 如何判断一个对象被移除
原文:win10 uwp 如何判断一个对象被移除 有时候需要知道某个元素是否已经被移除,在优化内存的时候,有时候无法判断一个元素是否在某个地方被引用,就需要判断对象设置空时是否被回收. 本文告诉大家一 ...
- HTTP 错误 403.14 - Forbidden Web 服务器被配置为不列出此目录的内容。
解决方法: 找到目录浏览,打开,点击右边的启用就OK了.
- Android零基础入门第29节:善用TableLayout表格布局,事半功倍
原文:Android零基础入门第29节:善用TableLayout表格布局,事半功倍 前面学习了线性布局和相对布局,线性布局虽然方便,但如果遇到控件需要排列整齐的情况就很难达到要求,用相对布局又比较麻 ...
- Android零基础入门第62节:搜索框组件SearchView
原文:Android零基础入门第62节:搜索框组件SearchView 一.SearchView概述 SearchView是搜索框组件,它可以让用户在文本框内输入文字,并允许通过监听器监控用户输入,当 ...