文档章节

从头认识java-1.2 对象-服务提供者

raylee2015
 raylee2015
发布于 2015/10/21 08:10
字数 761
阅读 1
收藏 0

#程序员薪资揭榜#你做程序员几年了?月薪多少?发量还在么?>>>

这一章节我们来讨论一下怎么理解对象?

1.服务提供者

对象:来源于“Object”,中文说的比较抽象,个人更倾向于台湾香港的译法“物件”,个人实实在在的感觉,不用那么虚,当然,如果叫实例也是比较好理解。

对象,我们可以想象成服务的提供者。它包含了一组数据以及一些可执行的方法。

例如:

package com.ray.ch01;

public class Bird {

	private String name;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	private void say() {
	}

	public static void main(String[] args) {
		Bird bird1 = new Bird();
		bird1.say();
		Bird bird2 = new Bird();
		bird2.say();
		System.out.println(bird1.equals(bird2));
	}
}

在上面的代码里面得出:

Bird,我们称为类,其实它就是我们自己定义的数据类型,映射实际世界里面的“鸟”。

在main方法里面的bird1和bird2,我们称之为对象,或者实例,或者物件等等,这两个实例属于了Bird这个数据类型,里面含有name这个属性,还有say这个方法。


这里,我们可以把bird1看作服务提供商,这个对象给我们提供say这个执行的方法。


2.分解对象

上面提到服务提供商,那么我们可以引入下面例子。

例如:黑白双方在设计五子棋时,可分为行为是相同的黑白双方,负责绘制画面的棋盘系统,负责判定犯规、输赢等的规则 系统。第一类对象(玩家对象)负责接受用户输入,并告知第二类对象(棋盘对象)棋子布局的变化,棋盘对象接收到了棋子的变化就要负责在屏幕上面显示出这种 变化,同时利用第三类对象(规则系统)来对棋局进行判定问题的步骤中的行为。

又例如:在分析学生管理系统,第一类对象是用户,负责输入数据,第二类对象是显示对象,赋值显示返回,第三类对象是逻辑处理对象,主要负责处理数据。


3.高内聚

既然上面提到了分解对象,那么必须提到高内聚。

高内聚:从功能角度来度量模块内的联系,一个好的内聚模块应当恰好做一件事

我们下面给出反面例子:

package com.ray.testobject;

public class Bird {
	private String name;
	
	private void sing() {		
	}
	
	private void fly() {		
	}
}


上面的例子很明显,sing这个方法应该属于歌唱家的,而fly是属于鸟的,因此这个类的内聚不高。由于内聚不高,因此当调用sing的方法的时候,就可能耦合bird这个类,造成以后维护的麻烦。

 

总结,这一章节介绍了对象作为服务提供者使用,并且延伸到分解对象和内聚。


这一章节就到这里,谢谢。

-----------------------------------

目录



版权声明:本文为博主原创文章,未经博主允许不得转载。

本文转载自:http://blog.csdn.net/raylee2007/article/details/49126729

raylee2015
粉丝 6
博文 265
码字总数 44224
作品 0
江门
私信 提问
加载中

评论(0)

命名和目录接口 JNDI-The Java Naming and Directory Interface

命名和目录接口 JNDI-The Java Naming and Directory Interface JNDI (The Java Naming and Directory Interface)为应用程序提供命名和目录功能。 JNDI体系结构由API和SPI组成。Java应用程序...

osc_r8q2esik
2019/02/27
9
0
一、(EffectiveJava3rd条目一).静态工厂的第5个优点是,在编写包含该方法的类时,返回的对象的类不需要存在。

静态工厂的第5个优点是,在编写包含该方法的类时,返回的对象的类不需要存在。这种灵活的静态工厂方法构成了服务提供者框架的基础,比如Java数据库连接API(JDBC)。服务提供者框架是提供者实现...

osc_rzibnjco
2018/08/04
2
0
使用 RMI + ZooKeeper 实现远程调用框架

在 Java 世界里,有一种技术可以实现“跨虚拟机”的调用,它就是 (Remote Method Invocation,远程方法调用)。例如,服务A 在 JVM1 中运行,服务B 在 JVM2 中运行,服务A 与 服务B 可相互进...

黄勇
2014/11/15
1.2W
49
netty 实现简单的rpc调用

yls 2020/5/23 netty 实现简单rpc准备 使用netty传输java bean对象,可以使用protobuf,也可以通过json转化 客户端要将调用的接口名称,方法名称,参数列表的类型和值传输到服务端, 可以用动...

她的开呀
05/23
0
0
谈谈Java常用类库中的设计模式 - Part Ⅰ

背景 最近一口气看完了Joshua Bloch大神的Effective Java(下文简称EJ)。书中以tips的形式罗列了Java开发中的最佳实践,每个tip都将其意图和要点压缩在了标题里,这种做法我很喜欢:一来比较...

d1zzyboy
05/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

IP地址正则表达式

提取一段内容中的所有IP地址 ((2(5[0-5]|[0-4]d))|[0-1]?\d{1,2})(.((2(5[0-5]|[0-4]d))|[0-1]?\d{1,2})){3} 判断字符串是否是IP地址 ^((2(5[0-5]|[0-4]d))|[0-1]?\d{1,2})(.((2(5[0-5]|[0-4......

哆啦D梦幻
14分钟前
19
0
CDH在yarn上运行程序乱码

参考文章:CDH在yarn上运行程序乱码 安装完成CDH后,在yarn上不管是使用hive运行mapreduce还是spark,中文全都会乱码。 1. linux的环境变量设置字符集 vi /etc/profile export LANG=zh_CN.UT...

osc_40usjisk
14分钟前
9
0
公积金无租房备案提取如何办理?(以成都为例)

  无租房备案是什么?   首先你要知道租房备案是什么?简单来说就是房东想要对外租房,需要到房管局办理相关手续,   如果你要以租房的名义提取公积金需要提供与房东签订的合同等材料后...

osc_3aqbiyys
15分钟前
0
0
公积金状态封存怎么解封?

  前言   公积金的缴存状态一般有2种,正常和封存,如下截图         公积金状态为封存是什么意思?   指职工因为各种原因导致住房公积金缴存中断,其住房公积金账户无法转移且又...

osc_51airx3z
16分钟前
3
0
你应该知道的公积金基础知识科普

  公积金是什么?   简单来说公积金全称为住房公积金,是一种国家法律规定的住房保障制度,也是普通工薪族的一种福利   公积金的用途?   可用于贷款买房,租房,还房贷,房屋大修等...

osc_u9wft6hh
17分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部