哪儿错了?
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);
}
} 展开
{
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);
}
} 展开
2个回答
展开全部
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);
}
}
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条建议是否有用了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询