java类的测试( main函数)

《java编程思想》上面说“我曾在本书中建议过,在每个类中都写入一个main方法,用来测试这个类,这样做有一个缺点,那就是必须带着那些已编译过的额外代码。如果这对你是一个麻烦,那就可以使用嵌套类来放置测试代码”,我想问一下,“测试类时带着那些已编译过的额外代码”是什么意思??嵌套类又是怎样克服这个缺点的??也就是说,测试类时的具体过程是怎样的?

额外代码就是代表你main函数里面的测试代码,那些代码对业务并没有任何用处,但是它却被编译进了你的class文件里面。
嵌套类就其实另外一个类,但是因为它嵌套在外层的类里,所以能拥有访问外层类所有成员的权限(包括private),但是嵌套类在虚拟机层面是一个独立的类,名称是“OuterClass$NestedClass”,因为没有其它类能依赖于这个类(因为NestedClass是OuterClass的私有成员),所以生成的这个class文件能从jar包中移除。所以说嵌套类能克服这个缺点。
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-02-25
用某些IDE(比如eclipse,netbeans等)执行编写的Java程序时,经常会跳出一个对话框,要求选择使用那个类来运行。也就是说在Java程序中有一个主类,整个程序的入口就这这个主类中的main函数。非主类中也可以有主函数,所有在某些情况下,我们可以用这些主函数来测试某些模块的功能,在python中也是这样。
书中说这会带来额外的代码,其实这很好理解,当各个模块综合到一起后,那些作为测试用的main函数正常情况下都是不被执行的(除非是在测试),那么程序写好后,他们就是额外的代码了。

所谓的嵌套类,应该是指类的组合或者是继承吧。
外层类可以调用底层类的main函数来进行测试,这样就避免了额外的代码。测试内层类时,调用内层类的main函数,测试外层类时,调用外层类的mian函数。
第2个回答  2013-02-25
现在都用JUnit了,具体方法就是,在你要测试的类的定义的前一行,写一个@Test,然后 run as junit test 就okay了 当然junit还有很多东西,大致就是这个用法

.Java类中测试中的main函数与web开发中的区别,为什么web开发中没有main...
main方法其实很容易理解,你的程序要运行,总要有一个起点,所以我们就约定,从main方法这里开始一行一行执行 其实web中也有类似main方法的方法 比如servlet就是从doget()或者dopost()方法开始执行

java的main是什么意思?
void main的意思:表示无返回值。void main()表示无返回值,就是说在程序尾不需要加return 0; void main(void)与上述是相同的,只是更严密而已。 在java\/C\/C++中,main为程序运行的主入口方法,每个程序只有一个,也就是所有程序建立在卖弄函数的基础之上。详细介绍如下:main函数的返回值应该定义...

java的测试类的中的程序和其它类有什么不同?
java测试类中的 main(String[] args)为程序的入口,执行时就是从这开始的,而其他类主要是以方法的形式来完成一个项目的功能,被测试类中有涉及到调用时候它才会执行!!

java中main()方法是哪个类里面的方法?
在Java中,main()方法是Java应用程序的入口方法,也就是说,程序在运行的时候,第一个执行的方法就是main()方法,这个方法和其他的方 法有很大的不同,比如方法的名字必须是main,方法必须是public static void 类型的,方法必须接收一个字符串数组的参数等等。在看Java中的main()方法之前,先看一个...

JVM是如何调用Java主类的main()方法的?
Java类中的main()方法如何被调用?此过程涉及调用栈和系统函数。Linux系统上,main()方法的调用始于clone()函数,它为每个进程创建独立的栈空间。每个蓝色小格表示一个方法的栈帧,栈由这些紧密排列的栈帧构成。栈帧分为native方法、Java解释和Java编译,它们共享宿主栈空间,这有利于遍历和避免空间碎片。

java中main()方法是哪个类里面的方法?
"); } } 一、先说类: HelloWorld 类中有main()方法,说明这是个java应用程式,通过JVM直接启动执行的程式。 既然是类,java允许类不加public关键字约束,当然类的定义只能限制为public或者无限制关键字(预设的)。 二、再说main()方法 这个main()方法的宣告为:public static void main...

java中main()函数的作用是什么?
()表示函数有返回值,在main函数结束的时候要有return语句,如果没有就会有warningvoid表示函数没有参数。int表示它是返回值是int型(整型),main表示它的名字是mian(函数名),()表示它是一个函数,它相当于是重载操作符,因为main是一个指针,经过操作符的操作,它才变成一个int型的引用。

Java中main函数
main函数是一个程序的入口,也是出口,main函数其实就是类里的一个方法,方法只能在类里声明了,所以maion函数必须声明在一个类里,一个程序里只有一个main函数,因为类与类之间是相与调用的。一个程序从开始运行就会先找main函数,然后再一步一步的执行,如果有多个main那么程序就会报错,因为他不知道...

java中main()方法是哪个类里面的方法?
main方法中还有一个输入参数,类型为String[],这个也是java的规范,main()方法中必须有一个入参,类细必须String[],至于字符串数组的名字,这个是可以自己设定的,根据习惯,这个字符串数组的名字一般和sun java规范范例中mian参数名保持一致,取名为args。因此,main()方法定义必须是:“public static ...

java如何调用另个程序的main函数
1、类名.main(参数);2、new创建实例,实例.main(参数);这个地方注意必须传递字符串数组的参数 或者 null !另外举一个用反射机制调用Main方法的例子。这个类是被调用的main方法类:Java代码:public class Run { public static void main(String[] args){ String str=args[0]+"Hello World";System...

相似回答