一个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,不就可以了吗?
以上是个人的一些问题,请各位大虾指教了,呵呵 展开
{
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,不就可以了吗?
以上是个人的一些问题,请各位大虾指教了,呵呵 展开
3个回答
展开全部
1、因为args[0]是一个变量,它实际上是一个数组,0表示的是数组的第一个参数,args是从控制台输入的参数数组(String类型)
不用引号,是因为他是变量,这个forName()里面是接受的字符串,你的这个变量已经是字条串了,所以不需要再加引号了。
2、if语句和try没有什么必然的联系。你把try当成一般的语句就行了。不同的情况不一样,在你的这个代码里面可以看成是else关系了。
3、!=1就返回,是只要求输入一个参数。当你输入两个的时候也是返回了,其实就这个代码实现的功能来看用!=0也可以!
不用引号,是因为他是变量,这个forName()里面是接受的字符串,你的这个变量已经是字条串了,所以不需要再加引号了。
2、if语句和try没有什么必然的联系。你把try当成一般的语句就行了。不同的情况不一样,在你的这个代码里面可以看成是else关系了。
3、!=1就返回,是只要求输入一个参数。当你输入两个的时候也是返回了,其实就这个代码实现的功能来看用!=0也可以!
展开全部
1、args[0]表示的String类型的数组中的第一个字符串 point只有用引号引起的时候才能表示是一个字符串
0是下标 表示数组的起始位置(数组下标都是从0开始)
2、因为if里有return 就是一旦if成功 下面的就没机会执行了 从这个意义上来说,只有else的情况下 下面的内容才有机会执行(当然如果if语句块里没有return 那么他和下面就是承接的关系了)
3、 if(args.length!=1) 这儿应该是启动此程序的时候 把packagename.Point这个参数传进去 虽然可以传多个到args数组,但写的人当时估计是想的传一个就行了
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
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询