Java编程思想解析 第1章 对象导论 1.2 每个对象都有一个接口

来源:互联网 发布:crm软件价格 编辑:程序博客网 时间:2024/05/16 12:46

1.类型和对象

将具有相同的特性和行为的对象进行归属化、概念化,就是类型。多个对象可属于同一类型,但所有对象都是唯一的。抽象、创建数据类型是面向对象程序设计的基本概念之一。这些新数据类型的运行方式与内置类型几乎完全一致:我们创建内置类型的变量,同样地,我们创建这些新数据类型的对象或实体。这些实体就是对象,每个对象都属于定义了特性和行为的某个特定的类。


所有的面向对象语言都使用class这个关键字来表示数据类型,当看到类型这个词时,就认为它就是类class。在Java中,有一个特殊的类class,它就是Class。这个类对类型/类的概念进行了抽象和概念化。程序员通过定义类来适配问题,而不必局限于语言现有的用来表示机器存储单元的内置数据类型。

面向对象程序设计的挑战:问题空间的元素与解空间的对象一对一映射,所以,面向对象程序设计的要点就是怎样从问题空间抽象出对象,然后设计、定义与问题切合的类并进行实例化、操作!


2.接口:使对象变得有用

我们定义了类、创建了类的实例对象,这些对象是有用的对象吗?必须有某种方式产生对对象的请求,使对象完成各种任务。每个对象都只能满足某些请求(只干与自己相关的事情),这些请求由对象的接口(interface)所定义,决定接口的便是类型。接口确定了对某一特定对象所能发出的请求,对接口的说明可以用文字或者UML之类的图示方法,但程序中必须有满足这些请求的代码,即方法,这些代码与隐藏的数据一起构成了实现。像某个对象“发送消息”(产生请求)这个对象便知道此消息的目的,然后执行相应的方法代码。例如:

package think.java.study.chapter1;public class Light {      public void off(){        System.out.println("turn off");    }        public void brighten(){        System.out.println("turn bright");    }        public void dim(){        System.out.println("turn dim");    }        public static void main(String[] args){    Light lt = new Light();    lt.on();    lt.brighten();    lt.dim();    lt.off();    }}

运行效果:

turn onturn brightturn dimturn off

上例中,类型的名称是Light,特定的Light对象名称是lt,可以向Light对象发送的请求是:打开它、关闭它、将它调亮、将它调暗。

Light lt = new Light();
这行语句表示创建一个Light对象:定义对象名(引用名)为lt,然后调用new方法“创建”一个该类型的新对象,使对象名标识此对象(使引用指向此对象)。为了向对象发送消息,需要声明对象的名称,并以圆点符号连接一个消息请求(方法名和参数)。如:

lt.on();lt.brighten();lt.dim();lt.off();


3.UML类图

todo。。。









0 0