在遇到这种情况的时候

就是在构造方法的时候调用同类中另一个同名构造方法时没用this关键字,而使用了同名的方法名。

解决方法就是 用this关键字代替构造的方法名。

示例:

public class Person {
	//成员属性
	public String name;
	public char sex;
	public int age;
	//重载函数
	public Person(String s) {/*设置姓名*/
		name = "s";
	}
	public Person(String s,char c) {  	 	
/*调用本类的构造函数Person(String s),设置性别*/
		Person("s");
		sex = 'c';
	}
	public Person(String s,char c,int i){ 	
/*调用本类的构造函数PersonPerson(String s,char),设置年龄*/
		Person("s",'c');
		age = i;
	}
}

public Person(String s,char c) {  	 	
/*调用本类的构造函数Person(String s),设置性别*/
		Person("s");
		sex = 'c';
}

public Person(String s,char c,int i){ 	
/*调用本类的构造函数PersonPerson(String s,char),设置年龄*/
		Person("s",'c');
		age = i;
}

修改为

public Person(String s,char c) {  	 	
/*调用本类的构造函数Person(String s),设置性别*/
		this("s");
		sex = 'c';
}
public Person(String s,char c,int i){ 	
/*调用本类的构造函数PersonPerson(String s,char),设置年龄*/
		this("s",'c');
		age = i;
}

即可

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐