一个java的程序--我是菜鸟初学者

classnewInstance{publicstaticvoidmain(String[]args){if(args.length!=1){return;}try{Cl... class newInstance
{
public static void main(String[]args)
{
if (args.length!=1)
{
return;
}
try
{
Class c=Class.forName(args[0]);
Point pt=(Point)c.newInstance();
pt.output();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
class Point
{
int x,y;
void output()
{
System.out.println("x="+x+","+"y="+y);
}
}
问题如下
1 class.forName("point")这个是一般的用法,但是在该程序中,(args【0】)并没有使用引号,为什么?另外,[0]是怎么来的,为什么选用【0】做为参数呢
2开头的if语句段和try语句段,是if else的关系还是承接的关系。老师讲的时候说是if else,我个人认为他讲错了,应该是承接
3 if(args.length!=1),这个括号内的是怎么考虑的。为什么是!=1,如果要从命令行往里面传参数,!=0,不就可以了吗?
以上是个人的一些问题,请各位大虾指教了,呵呵
展开
 我来答
hu437
2008-10-05 · TA获得超过3472个赞
知道大有可为答主
回答量:2690
采纳率:0%
帮助的人:2314万
展开全部
1、因为args[0]是一个变量,它实际上是一个数组,0表示的是数组的第一个参数,args是从控制台输入的参数数组(String类型)

不用引号,是因为他是变量,这个forName()里面是接受的字符串,你的这个变量已经是字条串了,所以不需要再加引号了。

2、if语句和try没有什么必然的联系。你把try当成一般的语句就行了。不同的情况不一样,在你的这个代码里面可以看成是else关系了。

3、!=1就返回,是只要求输入一个参数。当你输入两个的时候也是返回了,其实就这个代码实现的功能来看用!=0也可以!
百度网友0b175ed
2008-10-05 · TA获得超过468个赞
知道小有建树答主
回答量:453
采纳率:0%
帮助的人:323万
展开全部
1、args[0]表示的String类型的数组中的第一个字符串 point只有用引号引起的时候才能表示是一个字符串
0是下标 表示数组的起始位置(数组下标都是从0开始)
2、因为if里有return 就是一旦if成功 下面的就没机会执行了 从这个意义上来说,只有else的情况下 下面的内容才有机会执行(当然如果if语句块里没有return 那么他和下面就是承接的关系了)
3、 if(args.length!=1) 这儿应该是启动此程序的时候 把packagename.Point这个参数传进去 虽然可以传多个到args数组,但写的人当时估计是想的传一个就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2008-10-05
展开全部
第一个问题:
args[0]是你在命令行输入的参数 比如你是这样执行的
java newInstance Point 参数2 参数3
其中arg[0]的值就是字符串"Point",arg[1]="参数2" arg[2]="参数3"

问题2:我不知道你说的承接这些是啥子意思,不过如果执行了if里面的语句那么程序就结束了,不会执行try

第3个问题
这条语句的意思是判断运行的时候是否加了参数,并且不多不少刚好是1个
比如这样就是对的:java newInstance Point
下面的是错的:
java newInstance Point abc abc
java newInstance Point
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式