自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

I SEE STARS

我的征途是星辰大海

  • 博客(17)
  • 收藏
  • 关注

原创 面向对象编程中的继承和组合的简单比较

继承(inheritance),是类 D 的对象可以使用仅对类C的对象有效的方法或者属性的特性,它使得这些方法和属性就好像是由类 D 定义的。这时,C 是 D 的父类,D 是 C 的子类。在继承结构中,父类的内部细节对于子类是可见的。所以我们通常也可以说通过继承的代码复用是一种“白盒式代码复用”。组合(composition),是通过对现有的对象进行拼装(组合)产生新的、更复杂的功能。因为

2005-09-29 19:39:00 7386 3

原创 Java 中的四种嵌套类:嵌套静态类、成员类、本地类和匿名类

嵌套静态类是任何一个在另外一个类或者接口的代码体中声明的类,它作为外嵌类或者接口的静态成员。嵌套静态类的行为类似于顶级类,唯一的差别是嵌套静态类前除了有 Java 包的名字以外还有外嵌类的名字。嵌套静态类是静态成员,因此没有 this 指针指向外嵌类的实例,也就是说嵌套静态类不能访问外嵌类的实例数据。当一个重要的数据结构紧密的关联与外嵌类,并且该数据结构有足够的内容保证它能够拥有一个类的时候,一般

2005-09-29 13:21:00 4419

原创 God Object

最近听到一个新的名词:god object,很有意思的一个词。如果一个对象/例程在系统中做了太多的事情,或者说是有太多不怎么相关的事情放在一个对象/例程里面来完成,这个时候就变成了弱内聚的状态。弱内聚的代码通常很长很长,“旁征博引”,就几乎像上帝一样处理所有的事情;或者很长很长,人们就很难看懂这样的代码,只有上帝才能理解这些神秘的东西背后的意义。时刻记住一个规则:强内聚、弱耦合

2005-09-28 08:43:00 2066

原创 关于继承的两个原则

1         类型一致原则:如果S是T的一个子类型,那么S必须与T保持一致。如果在任何需要类型T的对象出现、且在任何存取方法执行时都需要保持正确性的场合,都能够使用类型S的对象,那么就可以说S和T是同一类型的。例如,圆是椭圆的一个子类型,那么圆类型的对象同时也是椭圆类型的对象,任何可以将椭圆类型的对象作为参数的方法,都应该可以接受圆类型的对象作为参数。在一个良好的

2005-09-28 08:27:00 2241

原创 如何测试一个没有返回值的方法

    在 JUnit 中,如果一个方法没有返回值,那么我们就没有办法用assertEquals()直接来比较我们所期望的值和方法执行后的所返回的实际值之间的差别。但是我们知道,一个方法应该要么有返回值要么又可以观察到的副作用,否则这个方法就可以被视作什么事情都没有做。所以,如果一个方法没有返回值,那么我们就应该根据它的可观察的副作用来进行测试。    举一个例子,测

2005-09-27 21:05:00 10667

原创 JUnit 中 failure 和 error 的区别

JUnit 中有两种错误类型,一个是 failure,另一个是 error。这两者之间的差别很微妙,但是我们如果能够理解这种差别的话,对我们使用 JUnit 将会非常有帮助的。通常来说,failure 表示所测试的产品代码(production code)有问题,也就是受测的产品代码没有正确的实现设计上所要求的功能。这个时候我们需要对产品代码进行检查、修改,使得它的行为能够符合设计说明

2005-09-27 16:42:00 1919

原创 Tomcat 中运行 Servlet 报告 resource is unavailable 的解决方法

使用 Tomcat 运行 servlet 时,有可能会报告 HTTP 404 错误,错误描述中写道 resource …/TestServlet isnot available。这个时候,可能需要编辑位于 TOMCAT_HOME/conf 中的 web.xml 文件。在 Eclipse 中,我们首先将该文件链接到当前项目的目录中。打开 web.xml,找到如下内容:              

2005-09-26 22:20:00 1737

转载 路加福音 11:9-13

你们祈求,就给你们;寻找,就寻见;叩门,就给你们开门。因为凡祈求的,就得着;寻找的,就寻见;叩门的,就给他们开门。你们中间作父亲的,谁有儿子求饼,反给他石头呢?求鱼,反拿蛇当鱼给他?求鸡蛋,反给他蝎子呢?你们虽然不好,尚且知道拿好东西给儿女,何况天父,岂不更将圣灵给求他的人吗?——路加福音 11:9-13

2005-09-26 01:03:00 3639 1

原创 需求的难题

需求的定义:(1)用户解决问题或者达到目标所需要的条件或者权能(capability);(2)系统或者系统部件要满足合同、标准、规范或者其他正式规定文档所需具有的条件或者权能;(3)一种反映(1)或者(2)所描述的条件或权能的文档说明。——1997版 IEEE 软件工程标准词汇表    在软件开发中,我们通常会遇到许多问题,这其中有很大一部分问题就涉及到对非正式信息的收集、不明确或者未明确的功

2005-09-25 23:54:00 1198

原创 如何更改 WSAD 的界面语种

最近公司开发新项目,使用 WSAD 作为开发工具。日文的界面让我看着头晕,因为已经习惯了英文的 Eclipse。不过操作系统又必须使用日文的,记得以前考证的时候在 CSDN 社区上回答过这个问题,不过现在自己早就忘了答案了。上网找了找,发现关心这个问题的人还不少,正好为我所用,呵呵。更改 WSAD 安装目录下 wsappdev.ini 在行 VMArgs=-Xj9 后加入,为空则与操作系统默认语言

2005-09-25 12:34:00 988

原创 WebSphere Studio Application Developer 5版本中如何更改默认的工作区

在默认情况下,WebSphereApplication Developer 5在启动的时候会弹出一个提示窗口让用户选择 workspace。如果,用户选中了窗口下方的“将此工作空间用作缺省值并且不再显示此对话框”,那么下一次客户再运行WSAD的时候将不会弹出提示窗口让用户选择工作区。如果,用户再想更换工作区将无法进行。在Eclipse 3.1 中,File菜单下有 SwitchWo

2005-09-25 11:16:00 1311 1

原创 抽象类和接口的区别

在 Java 中,接口用于定义一种必须具有的形式,但实际上又不提供任何方法的实现。在这个方面,有点和抽象类类似——抽象类要求程序员按照抽象方法所规定的相同的方式对之进行扩展(extend)。两者的不同之处在于:1. 抽象类是一个不完整的类,需要进一步细化;而接口只是一个行为的规范。2. 接口基本不具备继承的任何基本特点,它只是承诺了能够调用的方法。3. 一个类一次可以实现多个接口,但是只能继承一

2005-09-24 22:55:00 1106

转载 主祷文

主 祷 文我们在天上的父, 愿人都尊你的名为圣。 愿你的国降临。 愿你的旨意行在地上, 如同行在天上。 我们日用的饮食, 今日赐给我们。 免我们的债, 如同我们免了人的债。 不叫我们遇见试探, 救我们脱离凶恶。 因为国度、权柄、荣耀, 全是你的, 直到永远,阿们。http://www.godoor.net/text/zhenli/ckzl05.htm

2005-09-24 22:51:00 1606 1

原创 《通过实验看 Java 中私有成员是否能被继承》续

我在蔽文《通过实验看 Java 中私有成员是否能被继承》中所举的例子有一个错误,使用了属性而不是方法来验证私有成员是否能够被子类所继承。在 Java Programming Language 中,有这么一段:“字段(field)只能被隐藏,而不能被覆盖。如果在子类中声明了一个和父类中相同名字的字段,那么父类中的字段仍然存在,但是不能再简单的使用其名字来访问父类中这个被隐藏的字段。”所以,在上文所涉

2005-09-24 19:22:00 5138 5

原创 通过实验看 Java 中私有成员是否能被继承

关于 Java 中,子类能不能继承父类中的私有成员的问题,似乎颇有争议。在 SUN 授权 Java Language Specification 一书中,作者认为子类可以继承父类的私有成员,只是不能访问罢了。我们知道,子类可以通过声明具有相同名字的属性来覆盖掉从父类中继承而来的相应属性,也可以声明具有相同名字相同签名的方法来覆盖掉从父类中继承而来的相应方法。也就是说,如果子类可以从父类中继承私有成

2005-09-23 12:48:00 4949 13

原创 Java 中子类是否只继承父类的非私有变量和方法?

今天在 CSDN 论坛中见到有人问在 Java中子类是否只继承父类的非私有变量和方法(原贴在此)。大部分跟贴都认为这句话是正确的,但是对于这个问题背后的本质理解却是错误的。首先我们明确一下“继承”一词的概念,在 Java 中,继承一词的意义是有限制的。一个子类只能继承其父类的可访问的成员,并且该子类没有覆盖或者说隐藏父类中的那些可访问成员。所以,一个类的成员就是指在这个类中所声明的属性和方法,

2005-09-22 00:25:00 10739 7

原创 在 Java 的泛型类型中使用通配符

在 Java 的泛型类型中使用通配符Java 从版本5起开始引入泛型(generics)机制。我们知道,Java 的泛型类型如同 java.lang.String,java.io.File 一样,属于普通的 Java 类型。比方说,下面两个变量的类型就是互不相同的:ListlistObj = new ArrayList();List listStr = ne

2005-09-17 10:55:00 3863 3

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除