哪儿错了?

classText{inta;voidText(inta,intb){this.a=10;}System.out.println(a);}publicclassApp{p... class Text
{
int a;
void Text(int a,int b)
{
this.a=10;
}
System.out.println(a);
}

public class App
{
public static void main(String[] args)
{
Text text=new Text();
text.Text(10,20);
}
}
展开
 我来答
斩天及
2017-02-27 · TA获得超过8832个赞
知道大有可为答主
回答量:8460
采纳率:0%
帮助的人:4053万
展开全部
1、Java中所有语句必须写在方法中或静态代码块中,你那个“System.out.println(a);”语句应该放到Text方法里。
2、普通方法命名请不要跟构造方法重名!!!如果你加void就是表示Text方法是普通方法,而不是构造方法,下边的建议不需要看了,但本条建议很重要,请把Text方法改名(不是语法错误,是编程习惯不好,容易跟构造方法混淆)!!!
3、如果你写的Text方法是构造方法,不需要写返回值,应该去掉void,构造方法的访问权限无所谓。
4、一个构造函数是对象被创建时用于初始化一个对象的成员变量,所以“text.Text(10,20);”语句根本不会执行,因为text对象已经创建了,不会二次初始化。可以改上一句为"Text text=new Text(10,20);",这样可以在创建对象时把变量a初始化为10。
把Text方法改成构造函数,修改如下:
class Text
{
int a;
Text(int a,int b)
{
this.a=10;
System.out.println(a);
}
}
public class App
{
public static void main(String[] args)
{
Text text=new Text(10,20);
}
}
把Text方法作为普通方法,修改如下(不重命名不报错,但编程习惯不好):
class Text
{
int a;
void Text2(int a,int b)
{
this.a=10;
System.out.println(a);
}
}
public class App
{
public static void main(String[] args)
{
Text text=new Text();
text.Text2(10,20);
}
}
追问
你就这一句有用"Java中所有语句必须写在方法中“

不过也说得挺有道理的
追答
如果你认为我的2、3、4条是没用的,你可以问问你们班其他同学,你的Text()方法哪里错了?我相信很多人会告诉你去掉void,只要是这个答案,就是概念混淆了,告诉你没语法错误的估计很多人也说不出为什么是对的。你去问问看看,如果是我猜的这种情况,就说明你的代码产生歧义了,可读性差,然后你就知道我的2、3、4条建议是否有用了
百度网友9283fba
2017-02-27 · TA获得超过162个赞
知道小有建树答主
回答量:196
采纳率:0%
帮助的人:157万
展开全部
第八行代码System.out.println(a);必须放在方法内,否则编译无法通过,这是代码错误
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式