目录
一,面向对象概述
面向对象程序设计(object-oriented programming, OOP)是目前主流的程序设计范型。它的出现代替了以前的基于面向过程的编程技术。
由于Java是基于面向对象设计的一门语言,所以想要学习Java,熟悉OOP是必不可少的。
面向对象的程序是由对象组成的,每个对象包含对用户公开的特定功能部分和隐藏的实现部分。程序中的很多对象来自于标准库,但也有些是自定义的。要完成一门程序,两者都必不可少。
与传统程序设计区别
传统的面向过程程序设计通过一系列过程(即算法)来求解问题。一旦确定了这些过程,就要开始考虑存储数据的适当方式。这就是Pascal语言设计者要将他的著作命名为《算法+数据结构=程序》的原因了。
需要注意的是,算法是第一位,数据结构是第二位,这就明确了以前的程序设计方式:首先要确定如何操作数据,然后再考虑如何组织数据的结构。
而对于OOP来说,却调换了这个次序,采取了先将数据解决好,再考虑算法操作数据的事。
解决规模
两者在在处理程序规模的问题上有区别:
对于一些小规模问题,采用基于面向过程的开发方式比较理想。因为面向对象需要搭架构,小规模问题需要搭架构就能解决,这时采用面向对象程序设计效率就低了。
而对于大规模问题,面向对象更加合适。例如想要实现一个Web浏览器可能需要2000个过程,采用面向对象只需要设计大约100个类,每个类包含20个左右方法就能解决。而且采用面向对象框架更清晰,类与类之间耦合低,更容易发现bug出现在哪里。
二,类
概述
类(Class)是构造对象的模板或蓝图。我们可以想象成类是做甜甜圈的模具,而对象则是甜甜圈。由类构造对象的过程称之为创建类的实例。
基于Java编写的代码基本上都集中在类里。标准Java库提供了几千个类,可以用于各种目的,例如数字运算、字符串拼接、日期显示等等。但是在Java中还是需要自己创建一些类,以便描述你的应用程序所应对的问题领域中的对象。
类的三大特性:
封装
封装(encapsulation)有时也称数据隐藏,是处理对象的一个重要概念。
从表面看,封装就是把数据和行为组合到一个类中,并对外只暴露它的功能,但隐藏具体的实现方式。相当于给调用类的对象赋予了“黑盒子”特征。
在类中: