面向对象钦件开发概述
1-1 Programming in Java Lecture 1 面向对象软件开发概述
旋肉 •面向对象程序设计的基本概念 ·面向对象的软件开发过程 ·面向对象程序设计方法的优点
1-2 Programming in Java 提纲 •面向对象程序设计的基本概念 • 面向对象的软件开发过程 • 面向对象程序设计方法的优点
•程序设计方法的发展 >程序 >程序设计语言 >程序设计方法 ·软件危机与结构化程序设计 ·面向对象程序设计
1-3 Programming in Java • 软件危机与结构化程序设计 • 程序设计方法的发展 ¾ 程序 ¾程序设计语言 ¾程序设计方法 • 面向对象程序设计 面向对象问题求解的提出
面向过程的程序设计:自顶向下、功能分解、模块化 >执行一系列算法来解决问题 >在数据结构上执行特定的功能 ·面向过程的程序设计的缺点 >数据与过程分离 >可重用性差 >系统维护困难 >难以开发大规模复杂软件系统
1-4 Programming in Java 面向过程的程序设计 •面向过程的程序设计:自顶向下、功能分解 、模块化 ¾ 执行一系列算法来解决问题 ¾ 在数据结构上执行特定的功能 • 面向过程的程序设计的缺点 ¾ 数据与过程分离 ¾ 可重用性差 ¾ 系统维护困难 ¾难以开发大规模复杂软件系统
知阅过值植行夜行”模你二热疮特闪平丹塔 #include main({ int i; for(i=0:i<100:i++){ if(i%2=0) cout <"n"; cout<<"Hello,world...": }∥for }/∥nainO find(item t item,note t n); delete(index ti,array t a); print(list t list,size tn); mainO; save(item t item,db t db); 返回
1-5 Programming in Java 面向过程程序设计:程序 =数据结构 +算法 返回
0的头毯行度 数据与算法是集成的 array list 0+000 对象(实例)是由对象名、 count 属性(数据)和操作(过程) 组成 objectO); ~objectO; get_array(); get list(); get count(); set count(int n);
1-6 Programming in Java 面向对象程序设计 •数据与算法是集成的 •对象 (实例) 是由对象名、 属性 (数据) 和 操作 (过程) 组成
Lisp Simula I Smalltalk-80 Object Pascal 1966 1980 C++ JAVA 开始SIMULA67 •具有面向对象特性的模拟语言 Smalltalk •第一个“纯”的面向对象语言 类和方法具有模块化概念 Java ·完全面向对象程序设计语言
1-7 Programming in Java 面向对象 Simula I 1966 Smalltalk-80 1980 Lisp Object Pascal C++ JAVA 开始 SIMULA67 •具有面向对象特性的模拟语言 Smalltalk •第一个 “纯”的 面向对象语言 •类和方法具有模块化概念 Java • 完全 面向对象程序设计语言
。一般意义:everything 对象是现实世界的实体或概念在计算机逻辑中的抽象表示 ·不同观点: 现实世界 问题世界 计算机系统 ←模拟 现实对象 > 问题对象 > 计算机对象 抽象 〉 表示
1-8 Programming in Java • 一般意义: everything 对象是现实世界的实体或概念在计算机逻辑中的抽象表示 现实对象 → 问题对象 → 计算机对象 抽象 → 表示 对象 • 不同观点: 现实世界 问题世界 计算机系统 ← 模拟
·什么是对象? >软件对象是模仿现实世界的对象一具有属性和操作 >每个对象必须有一个唯一的D >软件对象通过属性来表示其状态,用方法来实现其操 作 ■属性:对象的变量 ·方法:操作,与其它语言中的函数类似,用于模拟对 象的行为 ·例如: Car:model,color,year,turn left,accelerate,.. TV:brand,channels,set channel,display channel
1-9 Programming in Java 什么是对象(1) • 什么是对象? ¾软件对象是模仿现实世界的对象 – 具有属性和操作 ¾每个对象必须有一个唯一的 ID ¾软件对象通过属性来表示其状态,用方法来实现其操 作 属性 : 对象的变量 方法: 操作, 与其它语言中的函数类似, 用于模拟对 象的行为 • 例如: – Car: model, color, year, turn left, accelerate, ... – TV: brand, channels, set channel, display channel,
什么是为影 ◎ accelerate attributes model /variables brake color behaviors speed /methods turn left
1-10 Programming in Java 什么是对象(2) accelerate turn left … behaviors /methods attributes /variables brake model color speed