Java 构造函数和关键字“this”
我有一个语法错误,我不知道如何修复它。代码在我看来是正确的,但Eclipse告诉我构造函数调用必须是 方法setName和setAge处的构造函数Java 构造函数和关键字“this”,java,Java,我有一个语法错误,我不知道如何修复它。代码在我看来是正确的,但Eclipse告诉我构造函数调用必须是 方法setName和setAge处的构造函数 请注意,您的setter应该如下所示 public void setAge(a) { this.a = a; } 而不是构造一个新的对象。如果您不这样做,您就是在打破无处不在的Java惯例 假设您想在setter中创建一个新实例,您可以执行以下操作 public KeywordThis setAge(a){ return new Key
请注意,您的setter应该如下所示
public void setAge(a) {
this.a = a;
}
而不是构造一个新的对象。如果您不这样做,您就是在打破无处不在的Java惯例
假设您想在setter中创建一个新实例,您可以执行以下操作
public KeywordThis setAge(a){
return new KeywordThis(a);
}
不要用这个。当您尝试使用此方法时,只应在构造函数中为同一类调用另一个构造函数。注意,您的设置程序应该如下所示
public void setAge(a) {
this.a = a;
}
而不是构造一个新的对象。如果您不这样做,您就是在打破无处不在的Java惯例
假设您想在setter中创建一个新实例,您可以执行以下操作
public KeywordThis setAge(a){
return new KeywordThis(a);
}
不要用这个。在尝试使用此方法时,只能在构造函数中为同一类调用另一个构造函数。不能从实例方法调用这样的构造函数。您希望setter更改已有对象的值,而不是创建新对象。我想你的意思是:
public void setAge(int a){
this.age = a;
}
public void setName(String s){
this.name = s;
}
还要注意的是,您的setter通常不会返回值,因此我将它们更改为返回类型void。您不能从实例方法调用这样的构造函数。您希望setter更改已有对象的值,而不是创建新对象。我想你的意思是:
public void setAge(int a){
this.age = a;
}
public void setName(String s){
this.name = s;
}
还要注意的是,您的setter通常不会返回值,因此我将它们更改为返回类型void。一旦创建了对象,就不能手动调用构造函数。构造函数只能在另一个构造函数内调用 正如其他人指出的那样,应该是:
public void setAge(int a) {
this.a = a;
}
一旦创建了对象,就不能手动调用构造函数。构造函数只能在另一个构造函数内调用 正如其他人指出的那样,应该是:
public void setAge(int a) {
this.a = a;
}
公共类关键字this{
private String name;
private int age;
public KeywordThis(){
this.name = "NULL";
this.age = 0;
}
public KeywordThis(String s, int a){
this.name = s;
this.age = a;
}
public KeywordThis(String s){
this.name = s;
}
public KeywordThis(int a){
this.age = a;
}
public int setAge(int a){
this(a);
int b=a;
return b;
}
public String setName(String s){
this(s);
String s1=s;
return s;
}
public static void main(String args[] ){
KeywordThis ob1=new Keyword();
ob1.setAge(20);
ob1.setName("sandy");
}
}
爪哇
共享|编辑公共类关键字此{
private String name;
private int age;
public KeywordThis(){
this.name = "NULL";
this.age = 0;
}
public KeywordThis(String s, int a){
this.name = s;
this.age = a;
}
public KeywordThis(String s){
this.name = s;
}
public KeywordThis(int a){
this.age = a;
}
public int setAge(int a){
this(a);
int b=a;
return b;
}
public String setName(String s){
this(s);
String s1=s;
return s;
}
public static void main(String args[] ){
KeywordThis ob1=new Keyword();
ob1.setAge(20);
ob1.setName("sandy");
}
}
爪哇
分享|编辑你做了什么改变?为什么是答案?你做了什么改变?为什么是答案?