4.1 面向对象程序设计概述
来源:互联网 发布:传奇盛世宝石升级数据 编辑:程序博客网 时间:2024/06/05 11:33
面向对象程序设计(简称OPP)
面向对象的程序是由对象组成的。每个对象包含对用户公开的特定功能部分和隐藏的实现部分。
OOP中不关心对象的具体的实现,只要能满足用户的需求即可。
程序= 算法+数据结构
传统的结构化程序: 算法第一位
面向对象程序:数据第一位
4.1.1 类
类(class)是构造对象的模板或蓝图。
由类构造(construct)对象的过程成为创建类的实例
封装(encapsulation)将数据和行为组合在一个包中,并对对象的使用者隐藏了数据的实现方式。封装的关键在于决不能让类中的方法直接的访问其他类的实例域。
对象中的数据称为实例域(instance filed),操纵数据的过程称为方法(method)。
每个特定的类实例都有一组特定的实例域值,称为这个对象的当前状态(state)。
OPP的另外一个原则就是可以通过扩展一个类来建立另外一个新的类。Java所有的类都源自同一个Object类。
扩展一个已有的类,新类具有原来的类的所有属性和方法。这个过程称为继承(inherittance)。
4.1.2 对象
对象的三个主要特性:
行为(behavior)
状态(state)
标识(identity)
4.1.3 识别类
面向对象程序的设计流程:首先从设计类开始,然后再往每个类中添加方法
识别类的简单规则:在分析问题的过程中寻找名词,而方法对应着动词
4.1.4 类之间的关系
常见关系由:
依赖(use-a)
聚合(has-a)
继承(is-a)
可以采用UML(Unified Modeling Language,统一建模语言)绘制类图
4.2 使用预定义类
4.2.1 对象和对象变量
要想使用对象,首先必须构造对象,并指定其初始状态,然后对对对象应用方法。
使用构造器(constructor)来构造新实例。
构造器的名字要与类名相同,要想构造一个新对象,要在构造器前面加上new操作符
import java.util.*;
public class Test {
public static void main(String[] args) {
System.out.println(new Date());
//此处new Date() 相当于调用 Date().toString() 方法将返回日期的字符串描述
}
}
等价于
import java.util.*;
public class Test {
public static void main(String[] args) {
String s = new Date().toString();
System.out.println(s);
}
}
为了使构造的对象能多次使用,可以引入一个对象变量:
Date date = new Date();
定义了一个对象变量date,可以引用Date类型的对象,对象变量并不是一个对象!!
s = date.toString();
将会产生编译错误
任何对象变量的值都是对储存在另外一个地方的一个对象的引用。new操作符返回值也是一个引用。
4.2.2Java类库的GregorianCalendar类
GregorianCalendar类月份从0开始,11表示十二月!
4.2.3 更改器方法和访问器方法
更改器方法:对实例域做出修改的方法 比如
deadline.set(Calendar.YEAR, 2001);
deadline.set(Calendar.MONTH, Calendar.APRIL);
访问器方法:仅访问实例域而不进行修改的方法,比如
int month = now.get(Calendar.MONTH);
通常的习惯是在访问器方法名前面加上前缀get,更改器方法前面加上set
Date time = calendar.getTime();
calendar.setTime(time);
0 0
- 4.1 面向对象程序设计概述
- 面向对象程序设计概述
- 面向对象程序设计技术概述
- PHP面向对象程序设计--概述
- 第一章 面向对象程序设计概述
- 面向对象程序设计简单基础概述
- 第1节 面向对象程序设计概述
- PHP面向对象的程序设计(概述)
- 面向对象程序设计(1)-OOP概述
- C++面向对象程序设计方法概述
- Java核心技术--面向对象程序设计概述
- Java对象与类——面向对象程序设计概述
- 【读书笔记】java语言与面向对象程序设计1:java概述
- JAVA面向对象程序设计中多态特性的概述
- 程序设计方法概述:从面相对象到面向功能到面向对象
- C++面向对象程序设计
- 面向对象程序设计
- 面向对象程序设计总结
- RTSP实例解析
- 遗传算法学习心得
- 第一遍 第三章线性表
- 开始启程,你的第一行
- (15.1.15) 工具型产品如何建立自己的商业化模式?
- 4.1 面向对象程序设计概述
- 修复K2_user的重定向URL不起作用
- Objective-C内存管理
- 火狐浏览器伪造任意IP地址
- 4.3 用户自定义类
- 贪心算法 Problem F 1005 花最少(数量)的纸币
- 5.1 类、超类和子类
- D16
- 3.1如何编写程序界面&3.2常见控件使用方法