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。。。
- Java编程思想解析 第1章 对象导论 1.2 每个对象都有一个接口
- 第一章 对象导论 1.2 每个对象都有一个接口
- 对象导论之每个对象都有一个接口
- 1.2:每个对象都有一个接口
- 每个对象都有一个接口
- java编程思想第1章:对象导论
- Java编程思想第1章:对象导论
- Java编程思想读书笔记 第1章 对象导论
- 《Java编程思想》--对象导论--第1章
- Java编程思想解析 第1章 对象导论 1.0 引子
- Java编程思想解析 第1章 对象导论 1.1 抽象过程
- 1对象导论-Java编程思想
- 1.2 每一个对象都有一个接口
- JAVA编程思想学习第一篇の对象导论
- 《java编程思想》要点-第一章 对象导论
- JAVA编程思想第一章 对象导论
- Java编程思想, 第一章:对象导论
- Java编程思想读书笔记之对象导论
- Android项目针对libs(armeabi,armeabi-v7a,x86)进行平台兼容
- Spring 缓存注解@Cacheable的用法
- 对MVC的理解
- js 生成sn
- subline的使用
- Java编程思想解析 第1章 对象导论 1.2 每个对象都有一个接口
- android studio 提高编译的速度,安装apk过慢问题解决
- 关于指针的浅析---------指针的神奇之处(函数传递参数)
- Hibernate中多表联合查询遇到的问题(原生态的SQL语句解决办法)
- nios 中出现undefined reference to `__alt_invalid'alt_sys_init.c CC++ Problem的解决方法
- GO语言构建高并发分布式系统实践
- 代码中获取控件的宽高度,代码中设置控件的Margin
- ROS节点与运行
- mysql 动态生成sql语句执行方法,表格重新产生排序