求教java类中的问题

[复制链接]
查看11 | 回复10 | 2021-1-27 06:49:20 | 显示全部楼层 |阅读模式
请问我这地方为什么void中的system.out.println不显示,void没有返回值,但里面的操作应该还是可以运行的吧,求教大神
publicclassleione2{
/**
*@paramargs
*/
publicstaticvoidmain(String[]args){
//TODOAurto-generatedmethodstub

}
}
classaa{
intx=10;
inty;
voiddisp(intm,intn){
intx,y;
x=6;
y=7;
this.x=55;
System.out.println(x+";"+y);
}
}
分 -->
回复

使用道具 举报

千问 | 2021-1-27 06:49:20 | 显示全部楼层
首先main方法里是空的,系统不运行任何代码
其次类aa里有个成员变量x,你又在方法disp里面定义一个局部变量x这要报错无法编译的
最后一个小问题,disp里面的形参m,n要来没用不如删了多好
回复

使用道具 举报

千问 | 2021-1-27 06:49:20 | 显示全部楼层
因为你没有去调用你的disp(m,n)的方法啊,如果你想显示的话可以在你的public的那个类的main方法里添加如下:
newaa().disp(0,0);
就有显示了
回复

使用道具 举报

千问 | 2021-1-27 06:49:20 | 显示全部楼层
请问zero大神,要怎么改,disp中的x为什么会报错,我可不可以不走public中来调用disp,直接用void中的system来显示
回复

使用道具 举报

千问 | 2021-1-27 06:49:20 | 显示全部楼层
引用2楼wangjie916的回复:因为你没有去调用你的disp(m,n)的方法啊,如果你想显示的话可以在你的public的那个类的main方法里添加如下:
newaa().disp(0,0);
就有显示了
可不可以不调用,就用void中的system输出
回复

使用道具 举报

千问 | 2021-1-27 06:49:20 | 显示全部楼层
引用3楼qq_37944267的回复:请问zero大神,要怎么改,disp中的x为什么会报错,我可不可以不走public中来调用disp,直接用void中的system来显示
兄弟客气了,我才转行Java一个多月,只能是交流体会,言归正传
disp里面的x报错,是因为x已经在publicstaticvoidmain()这个主函数里面定义了那么,在这个主函数里面就不能再重复定义它了。就是“x”这个变量名字已经被别人用了,你就不能再用了,你非要用就要报错。
然后,你不想走publicstaticvoidmain()里面调用disp()方法这是不行的。因为publicstaticvoidmain()是这段程序的主函数,是程序的入口,程序从这里也只会从这里开始执行的。
你如果嫌麻烦可以吧disp方法里面的代码复制到main函数(publicstaticvoidmain())里面来执行。
publicclassleione2{
publicstaticvoidmain(String[]args){
intx=6;
inty=7;
System.out.println(x+";"+y);
}
}

如果你是在学习面向对象的时候做练习你可以这样
publicclassleione2{
publicstaticvoidmain(String[]args){
aaa=newaa();//首先创建一个aa的对象,因为你要调用它里面的disp方法所以必须拿到它的对象
a.disp(15,22);//调用a的disp方法并且传参数15和22过去
}
}
classaa{
intx;//这里无需赋值
inty;//这里无需赋值
voiddisp(intm,intn){
//intx,y;//这里不能定义x、y因为本类里已经定义过这两个名字了;
x=m;//这里是把传来的参数给x赋值
y=n;//这里是把传来的参数给y赋值
System.out.println(x+";"+y);
}
}

简化成这样最好
publicclassleione2{
publicstaticvoidmain(String[]args){
aaa=newaa();
a.disp(15,22);
}
}
classaa{
voiddisp(intm,intn){
System.out.println(m+";"+n);
}
}

回复

使用道具 举报

千问 | 2021-1-27 06:49:20 | 显示全部楼层
disp里面的x报错,是因为x已经在publicstaticvoidmain()这个主函数里面定义了那么,在这个主函数里面就不能再重复定义它了。就是“x”这个变量名字已经被别人用了,你就不能再用了,你非要用就要报错。
上面这句话要改一改
你的xy在aa类里定义了,就不能再在它里面定义同一个名字,换个名字是可以的
回复

使用道具 举报

千问 | 2021-1-27 06:49:20 | 显示全部楼层
main方法是用来执行程序的,想要执行应该在main方法中创建对象,然后通过对象.方法名来调用
回复

使用道具 举报

千问 | 2021-1-27 06:49:20 | 显示全部楼层
main方法里什么都没有不会运行方法的
回复

使用道具 举报

千问 | 2021-1-27 06:49:20 | 显示全部楼层
引用4楼qq_37944267的回复:Quote: 引用2楼wangjie916的回复:因为你没有去调用你的disp(m,n)的方法啊,如果你想显示的话可以在你的public的那个类的main方法里添加如下:
newaa().disp(0,0);
就有显示了
可不可以不调用,就用void中的system输出

你可以考虑用单元测试,就是在你的那个void的代码上面加一个:
@Test
不过要导包
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行