我在user.java中设定
public class User {
private String name;
private boolean male;
public boolean isMale() {
return male;
}
public void setMale(boolean male) {
this.male = male;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
在test.java中想访问,
User user=new User();
user.setName("Tom");
但是编译报错:User(java.lang.String,java.lang.String,boolean) in cn.ac.i
ct.User cannot be applied to ()
User user=new User();
^ 于是我又把“User user=new User();”改成了“User u;”,
但还是报错“variable u might not have been initialized”。
怎么写u的初始化?
public class User {
private String name;
private boolean male;
public boolean isMale() {
return male;
}
public void setMale(boolean male) {
this.male = male;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
在test.java中想访问,
User user=new User();
user.setName("Tom");
但是编译报错:User(java.lang.String,java.lang.String,boolean) in cn.ac.i
ct.User cannot be applied to ()
User user=new User();
^ 于是我又把“User user=new User();”改成了“User u;”,
但还是报错“variable u might not have been initialized”。
怎么写u的初始化?
语法上没有错误。
在main()中加一句
System.out.println(user.getName());
就能输出结果Tom
public class User {
private String name;
private boolean male;
public boolean isMale() {
return male;
}
public void setMale(boolean male) {
this.male = male;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public static void main (String[] args){
TestUser tu=new TestUser();
User u=tu.new User();
u.setName("Tom");
System.out.print(u.getName());
}
class User {
private String name;
private boolean male;
public boolean isMale() {
return male;
}
public void setMale(boolean male) {
this.male = male;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public class test{
public static void main(String[] args){
User user=new User();
user.setName("tom");
System.out.println(user.getName());
}
}
没有错误,不知道楼主哪里出了问题
---------------------
但是编译报错:User(java.lang.String,java.lang.String,boolean) in cn.ac.i
ct.User cannot be applied to ()
User user=new User();
这段话的意思很明确的告诉我们楼主调用了构造函数User(xxx,xxx),而不是默认的构造函数User();
所以我敢断定楼主的代码没有帖玩,下面就应该是楼主自己生成的构造函数:
public User(String xxx,boolean yyy){}
一旦楼主自定义了构造函数,编译器将不在为楼主自动生成构造函数:
public User(){}------------------------------
于是我又把“User user=new User();”改成了“User u;”,
但还是报错“variable u might not have been initialized”。
怎么写u的初始化?
楼主这样些,还没有“new”,编译器当然还暂时不知道楼主的构造函数有问题,所以就不报上面的那个错误了,说楼主的没有初始化,同意是应为楼主没有new嘛,new了就初始化了嘛,同时也就出错了嘛。楼上的高手不要误导人家嘛~~
class User
{
private String name;
private boolean male;
public boolean isMale()
{
return male;
}
public void setMale(boolean male)
{
this.male = male;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
}
public class Test
{
public static void main(String args[])
{
User user=new User();
user.setName("Tom");
}}