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
原创粉丝点击