Java面向对象编程
面向对象的软件开发:
面向对象的开发把软件系统看成各种对象的集合,对象就是最小的子系统,一组相关的对象能够组合成复杂的子系统。
面向对象的开发方法具有以下优点:
1.把软件系统看成是各种对象的集合,更接近人类自然思维方式。
2.软件需求的变动往往都是功能的变动,而功能的执行者---对象一般不会有大的变化,按照对象设计出来的结构比较稳定。
3.对象包括属性(数据)和行为(方法),对象把数据及方法的具体实现方式一起封装起来,这使得方法和与之相关的数据不再分离,提高了每个子系统的相对独立性,从而提高了软件的可维护性。
4.支持封装,抽象,继承和多态,提高了软件的可重用性,可维护性和可扩展性。
软件开发经历的生命周期:
①软件分析 ②软件设计 ③软件编码 ④ 软件测试 ⑤ 软件部署 ⑥软件维护
为了提高软件开发效率,降低软件开发成本,一个优良的软件系统应该具备以下特点:
① 可重用性 ② 可扩展性 ③ 可维护性
系统结构是指系统由多个子系统组成,以及子系统由多个更小的子系统组成的结构
软件中的子系统具有以下特点:
① 结构稳定性 ②可扩展性 ③内聚性 ④可组合性 ⑤松耦性
目前在软件开发领域有两种主流的开发方法:结构化开发和面向对象开发
1、结构化开发是一种比较传统的开发方法,随着软件开发的逐步发展,面向对象的编程语言以及面向对象的设计理论应运而生,Java语言就是一种纯面向对象的编程语言
结构化开发简介:
结构化设计是属于自顶向下的设计。在进行结构化编程时,程序的主体是方法,方法是最小的功能模块。
举例说明结构化开发过程,图1-4显示了一个按照功能划分的画板panel系统的结构。
包括4个功能模块:选择形状模块、画长方形模块、画圆模块和画直线模块。图1-5为选择形状模块的数据流图
结构化开发弊端:
①自顶向下地按照功能来划分软件模块
②软件系统中最小的子系统是方法
2、面向对象软件开发方法简介
把软件系统看成各种对象的集合,对象就是最小的子系统,一组相关的对象能够组合成更复杂的子系统。
优点:
① 把软件系统看成是各种对象的集合,更接近人类的自然思维方式
② 系统结构稳定
③ 提高软件的可维护性、可重用性、可扩展性
对象模型
1、自底向上的抽象
2、自顶向下的分解
UML可视化建模语言
Rational Rose 可视化建模工具
面向对象开发中的核心思想和概念
问题领域、对象、属性、状态、行为、方法、实现
对象是对问题领域中事物的抽象。对象特征:
1.万物皆为对象
2.每个对象都是唯一的
3.对象具有属性和行为
4.对象具有状态
5.对象都属于某个类
类、类型
类是一组具有相同属性和行为的对象的抽象。类及类的关系构成了对象模型的主要内容
消息、服务
每个对象都具有特定的功能,相对于其他对象而言,它的功能就是为其他对象提供的服务。例如电视机具有的功能包括:开机、关机、选择频道、调节音量和播放VCD等。遥控器为了获得电视机的服务,需要向电视机提出获得特定服务的请求,提出请求的过程被称为发送消息
接口
在现实世界中,接口也是实体,比如电源插口、洗衣机上的按钮和电灯的开关。而在面向对象范畴中,接口是一个抽象的概念,是指系统对外提供的所有服务。
在Java语言中,接口有两种意思:
1、指系统对外提供的所有服务,在对象中表现为public类型的方法的声明
2、指用interface关键字定义的实实在在的接口,也称为接口类型。用于描述系统对外提供的所有服务,更加清晰地把系统的实现细节与接口分离
封装、透明
封装是指隐藏对象的属性和实现细节。
两个原则:
1、把尽可能多的东西藏起来,对外提供简捷的接口
2、把所有的属性藏起来
抽象
抽象是一种由具体到抽象、由复杂到简洁的思维方式。在面向对象的开发过程中,抽象体现在以下方面
1、从问题领域的事物到软件模型中对象的抽象
2、从对象到类的抽象
3、从子类到父类的抽象
继承、扩展、覆盖
在父类和子类之间同时存在着继承和扩展关系。子类继承了父类的属性和方法,同时,子类中还可以扩展出新的属性和方法,并且还可以覆盖父类中方法的实现方式。覆盖也是专业术语,是指在子类中重新实现父类中的方法。
注:
子类只能继承父类的部分属性和方法,父类中用private修饰的属性和方法对子类是透明的。
目前在Java领域比较流行的架构软件包括:
① J2EE
② Struts
③ JSF
④ Spring
组合
组合是一种用多个简单子系统来组装出复杂系统的有效手段。个人计算机系统就是一个典型的组合系统。它由主机、键盘、鼠标、显示器、和外围设备打印机等组成。而主机由处理器、内存、一个或多个硬盘、显卡、网卡和声卡等组成。
多态、动态绑定
UML语言简介
类之间的关系
关联、依赖、聚集、泛化、实现
关联:指的是类之间的特定对应关系,在UML中用带实线的箭头表示
依赖:指的是类之间的调用关系
聚集:指的是整体与部分之间的关系
泛化:指的是类之间的继承关系
实现:指的是类与接口之间的关系
小结:
没有不进步的人生,只有不进取的人 !!!
Java面向对象编程的更多相关文章
- Java面向对象编程基础
一.Java面向对象编程基础 1.什么是对象?Object 什么都是对象! 只要是客观存在的具体事物,都是对象(汽车.小强.事件.任务.按钮.字体) 2.为什么需要面向对象? 面向对象能够像分析现实生 ...
- java 面向对象编程。。。。
经过一周的学习(java),总结了许多,对java的理解,java的类型,运用,安装,基础语法,变量,常量,表达式,语句 java从C语言中继承了大量语言特性.java面向对象编程的基本特征,包括继承 ...
- 《Java面向对象编程》
<Java面向对象编程> 第11章 对象的生命周期 11.1 创建对象的方式 用new语句创建对象 运用反射手段,调用java.lang.Class 或者 java.lang.Const ...
- JAVA面向对象编程课程设计——网络版单机斗地主
一.团队介绍 成员姓名 任务分配 成员课程设计博客链接 兰泽祥(组长) 数据库,斗地主规则的实现,人机自动出牌的算法,实体类的设计 JAVA面向对象编程课程设计--web版斗地主 吴修恩 JSP界面的 ...
- JAVA面向对象编程课程设计——web版斗地主
一.团队课程设计博客链接 JAVA面向对象编程课程设计--网络版单机斗地主 二.个人负责模块或任务说明 实体类的设计 斗地主规则的实现 人机自动出牌的算法 实现数据库的DAO模式 三.自己的代码提交记 ...
- java面向对象编程知识点总结
一:今天完成 上午详细了解了java面向对象编程的一些细节,记录如下. 1)类 是一种引用类型,包含一个签名和一个主体,主体是放在花括号里面的成员,成员包括字段和方法,还有构造方法.初始化程序和嵌套类 ...
- Java面向对象编程(一)
由于常常将Java和C++面向对象编程的原则搞乱,所以这次把相关要点分别总结一下,本文主要总结Java面向对象编程. 面向对象编程的三大特性是:继承性(inheritance), 多态性(polymo ...
- JAVA学习(五):Java面向对象编程基础
Java面向对象编程基础 面向对象(Object oriented programming,OOP)技术是一种强有力的软件开发方法,它採用数据抽象与信息隐藏技术,来使软件开发简单化,以达到代码重用的目 ...
- (一)如何理解java面向对象编程
哲学中,事物总是螺旋式上升,波浪式前进.因而编程也逐渐向人类更容易理解的方向前进,多年来人们苦苦追求的编程境界 : 高扩展性(extensibility),高复用性(reuseable).java语言 ...
- java面向对象编程--第九章 多态和抽象
9.1多态 在生物学中,是指一个生物或物种可以有多种不同的形式或阶段: 在OOP中,多态是指一个对象有多种形式的能力. 多态可以说是面向对象编程的精髓所在.java中之所以引入多态的概念,原因之一是它 ...
随机推荐
- 10 个学习iOS开发的最佳网站(转)
10 个学习iOS开发的最佳网站 作者 jopen 2012-09-26 08:59:56 1) Apple Learning Objective C Objective-C,通常写作ObjC和较少用 ...
- ML 06、感知机
机器学习算法 原理.实现与实践 —— 感知机 感知机(perceptron)是二分类的线性分类模型,输入为特征向量,输出为实例的类别,取值+1和-1.感知机学习旨在求出将训练数据进行线性划分的分离超 ...
- 封装自己的printf函数
#include <stdio.h> #include <stdarg.h> //方式一 #define DBG_PRINT (printf("%s:%u %s:%s ...
- 智能车学习(七)——按键矩阵的实现
一.原理说明 就是按键矩阵代码书写的一个说明,就是讲K5到K7先输出高电平,而K1和K4则调成上拉输入,如果检测到K1到K4有一个变为0,说明有按键按下去,立刻进行转换,是的K1到K4设置为输出高电平 ...
- 【项目总结】之——JS分割字符串
背景: 在我们做那个招标项目的时候,由于是刚刚接触到这个BS东西,我基本上是什么也不会.可是当时组长浩哥给过我一个任务,就是叫我将数据里面以字符串形式存在的信息切割开,然后显示到前台上去.当时对于浩哥 ...
- T-SQL 存储过程
Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用.当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句.这样就可以提高存储过程的性能. Ø ...
- SQLserver删除某数据库中所有表 方法 二
方便删除数据库中所有的数据表,清空数据库,有些有约束,不能直接delete,需要先删除库中的约束,代码如下: --删除所有约束DECLARE c1 cursor for select 'alter t ...
- SQL.WITH AS.公用表表达式(CTE)(转)
一.WITH AS的含义 WITH AS短语,也叫做子查询部分(subquery factoring),可以让你做很多事情,定义一个SQL片断,该SQL片断会被整个SQL语句所用到.有的时候,是 ...
- CodeForces 710F 强制在线AC自动机
题目链接:http://codeforces.com/contest/710/problem/F 题意:维护一个集合,集合要求满足三种操作. 1 str:向集合插入字符串str(保证不会插入之前已经插 ...
- 解决$.getJSON在IE浏览器下出现数据缓存,第一次访问某个后台路径之后,再次访问该路径不再走后台的方法。
最近写代码的时候遇到一个小问题,我用的是火狐,项目里测试人员用的是IE,当用jquery的getjson函数从后台获取数据的时候,IE浏览器会自动设置缓存,如果此时你对数据进行修改的时候刷新页面,IE ...