《Java语言与面向对象程序设计》-面向对象软件开发概述-Java学习笔记1

一、面向过程与面向对象

1.面向过程

面向过程的程序遵循面向过程的问题求解方式。

中心思想:用计算机能够理解的逻辑来描述和表达待解决的问题及其具体的解决过程。

核心组成:数据结构、算法。

优缺点:面向过程的问题求解可以精确、完备地描述具体的求解过程。但却不足以把一个包含了多个相互关联的过程的复杂系统表述清楚。

*数据结构:利用计算机的离散逻辑来量化表达需要解决的问题。

*算法:研究如何快捷的、高效的组织解决问题的具体过程。

2.面向对象

面向对象问题求解关心的不仅仅是孤立的单个过程,而是孕育所有这些系统的母体系统,它能够使计算机逻辑来模拟描述系统本身。包括系统的组成,系统的各种可能状态,以及系统中可能产生的各种过程与过程引起的系统状态的切换。

面向对象的软件:

最早1966年SimulaⅠ 较为成熟1980年 Smalltalk 80

其后有:Lisp、Clascal 、Object Pascal、 C++

其中C++对其推动起了重要作用。

 

二、 对象、类和实体

1.对象

在面对对象的方法学中,“对象“是现实世界的实体或概念在计算机逻辑中的抽象表示。具体地,对象是具有唯一对象名和固定对外接口的一组属性和集合操作的集合,用来模拟组成或影响现实世界的一个或一组因素。

*对象名:区别于其他对象的标志。

*对外接口:对象在约定好的运行框架和消息传递机制中与外界通信的通道。

*对象的属性:表示它所处于的状态。

*对象的操作:改变对象的状态达到特定的功能。

 

主要特点:以数据为中心,它是一个集成了数据和其上操作的独立、自洽的逻辑单位。

主要属性:状态和行为。

*状态:对象的状态又称为对象的静态属性,主要指对象内部包含的各种信息,也就是变量。

*行为:又称为对象的操作。它主要表述对象的动态属性,操作的作用是设置或改变对象的状态。对象的行为在计算机内部用方法来表示。

对象的关系:包含、继承、关联。

*包含:当我们把电视机看作是一个对象,如果把电视机中的屏幕也看作一个对象,那么这两个对象是包含关系。

*继承:对象A是对象B的特例。比如黑白电视机是电视机的一种特例。

*关联:当对象A引用的是对象B的属性时,称对象A和对象B之间是关联关系。当我们将电视机抽象为对象时,假如将这个对象记录的电视机的生产厂商也抽象成一个对象,那么这两个对象之间的关系就是关联。

与包含不同的是,电视机的生产厂商不是电视机的组成成分。电视机中的对象不需要也不必要保存生产厂商的全部部分。

 

2.

类是同种对象的集合与抽象。

在面向对象的程序设计中定义了类的概念来表述同种对象的公共属性和特点。

类是一种抽象的数据类型,它是具有一定共性的对象的抽象,而属于类的某一个对象则被称为是类的一个实例,是类的一次实例化的结果。

//如果类表示“电视机”,那么对象就是某一个具体的电视机,“小雪家的长虹电视机”

 

三、面向对象的软件开发过程

面向对象的软件开发过程可以大体划分为:

面向对象的分析(OOA)

*较为广泛使用的Coad&Yourdon的OOA模型包含5个层次:

1.对象—类层 2.静态属性层 3.服务层 4.结构层 5.主题层

面向对象的设计(OOD)

*在OOA模型的基础上引入界面管理、任务管理和数据管理部分,进一步扩充OOA模型。

面向对象的实现(OOP)

*具体的编码阶段

 

代码理解:

public class chapter1 {
	public static void main(String args[])//程序主入口
	{
		Television xiaoxueTel = new Television(2019,1,false);//电视机类实例化的对象:xiaoxueTel(小雪家的电视机)
		System.out.println("电视机生产年份:"+xiaoxueTel.productionYear
				   +"/n电视机型号:"+xiaoxueTel.modelNumber);//显示年份和型号
		System.out.println(xiaoxueTel.isOpen());//查看电视机状态
		xiaoxueTel.openChange();//打开电视机
		System.out.println(xiaoxueTel.isOpen());
	}
}
class Television//一个电视机类
{
	int productionYear;//生产年份
	int modelNumber;//型号
	boolean open;
	//状态信息,即变量
	Television(int py,int mn,boolean op)//构造函数
	{
		productionYear = py;
		modelNumber = mn;
		open = op;
	}
	String isOpen()//显示电视机状态
	{
		if(open == true)
			return ("\n电视机已经打开");
		else
			return("\n电视机已经关闭");
	}
	void openChange()//打开电视机
	{
		open = true;
	}//行为,即对象的操作。在计算机中用方法表示,类似于C语言的函数。
	void closeChange()//关闭电视机
	{
		open = false;
	}
	
}

学习资料:《Java语言与面向对象程序设计》

你可能感兴趣的:(JAVA)