修饰符的非法组合:public 和 private
Illegal combination of modifiers: public and private
我遇到以下代码问题...
/**
* This class holds all of the information pertaining to
* a person's name.
*/
public class Name {
private String first, middle, last, maiden, initials, prefix, suffix;
private char middleInitial, firstInitial, lastInitial;
private
/**
* Constructor for a Name given first, middle, and last names.
*/
public Name(String first, String middle, String last) {
this.first = first;
this.middle = middle;
this.last = last;
this.middleInitial = middle.charAt(0);
this.firstInitial = first.charAt(0);
this.lastInitial = last.charAt(0);
this.initials = String.valueOf(firstInitial + middleInitial
+ lastInitial);
this.maiden = null;
this.prefix = null;
this.suffix = null;
}
还有更多,但我的错误出现在我的主构造函数中。它给了我在标题中输入的错误。如您所见,我的 class 和构造函数都是 public。这不应该引起任何问题,但似乎正在这样做。
在class里面的第三行有一个杂散的private
。由于语句持续到遇到花括号或分号,编译器认为这是与构造函数声明相同的语句的一部分 - 它看到 private public Name(String first, String middle, String last)
.
您在构造函数的注释之前有一个 "orphan" private
修饰符:
private // Here!
/**
* Constructor for a Name given first, middle, and last names.
*/
public Name(String first, String middle, String last) {
只要删除它,你应该没问题。
声明完所有变量后,您就写好了关键字private
。
private String first, middle, last, maiden, initials, prefix, suffix;
private char middleInitial, firstInitial, lastInitial;
private // Here.
Java 是一种自由输入的语言。一行以 ;
(分号)而不是换行符结尾。所以
private
public Name(String first, String middle, String last) {
// ...
}
被认为是一行:
private public Name(String first, String middle, String last) {
// ...
}
如您所见,您的构造函数有两个修饰符,public
和 private
。这在 Java 中是非法的。
解决方案
- 如果要保留构造函数
private
并且 不要 想让其他 类 实例化它,请删除关键字 public
。
或
- 如果要允许其他 类 实例化它,请删除关键字
private
。
我遇到以下代码问题...
/**
* This class holds all of the information pertaining to
* a person's name.
*/
public class Name {
private String first, middle, last, maiden, initials, prefix, suffix;
private char middleInitial, firstInitial, lastInitial;
private
/**
* Constructor for a Name given first, middle, and last names.
*/
public Name(String first, String middle, String last) {
this.first = first;
this.middle = middle;
this.last = last;
this.middleInitial = middle.charAt(0);
this.firstInitial = first.charAt(0);
this.lastInitial = last.charAt(0);
this.initials = String.valueOf(firstInitial + middleInitial
+ lastInitial);
this.maiden = null;
this.prefix = null;
this.suffix = null;
}
还有更多,但我的错误出现在我的主构造函数中。它给了我在标题中输入的错误。如您所见,我的 class 和构造函数都是 public。这不应该引起任何问题,但似乎正在这样做。
在class里面的第三行有一个杂散的private
。由于语句持续到遇到花括号或分号,编译器认为这是与构造函数声明相同的语句的一部分 - 它看到 private public Name(String first, String middle, String last)
.
您在构造函数的注释之前有一个 "orphan" private
修饰符:
private // Here!
/**
* Constructor for a Name given first, middle, and last names.
*/
public Name(String first, String middle, String last) {
只要删除它,你应该没问题。
声明完所有变量后,您就写好了关键字private
。
private String first, middle, last, maiden, initials, prefix, suffix;
private char middleInitial, firstInitial, lastInitial;
private // Here.
Java 是一种自由输入的语言。一行以 ;
(分号)而不是换行符结尾。所以
private
public Name(String first, String middle, String last) {
// ...
}
被认为是一行:
private public Name(String first, String middle, String last) {
// ...
}
如您所见,您的构造函数有两个修饰符,public
和 private
。这在 Java 中是非法的。
解决方案
- 如果要保留构造函数
private
并且 不要 想让其他 类 实例化它,请删除关键字public
。
或
- 如果要允许其他 类 实例化它,请删除关键字
private
。