Reputation: 183
I have three classes in a package called util, all public classes. However, when I try to compile a code that uses those classes, I get an error that says the classes are not public. I don't know what's wrong. The three classes are below:
package util;
class Address {
private String address;
public Address(){
address = "Default";
}
public Address(String newAddress){
address = newAddress;
}
public void setAddress(String newAddress){
address = newAddress;
}
public String getAddress(){
return address;
}
}
The date class
package util;
class Date {
private String Date;
public Date(){
Date = "Default";
}
public Date(String newDate){
Date = newDate;
}
public void setDate(String newDate){
Date = newDate;
}
public String getDate(){
return Date;
}
}
The name class
package util;
class Name {
private String name;
public Name(){
name = "Default";
}
public Name(String newName){
name = newName;
}
public void setName(String newName){
name = newName;
}
public String getName(){
return name;
}
}
Upvotes: 0
Views: 480
Reputation: 91299
Those classes are not public
, they are package-private, since you didn't specify any access level modifier. To make them public
add the public
access modifier to them:
public class Address {
Upvotes: 2
Reputation: 308763
Add "public" in front of all the class declarations. You made them all package private.
I don't know if this is a simplified example, but your design leaves a lot to be desired. All three of your classes, Date (not necessary), Name, and Address are the thinnest wrappers around the String class. I'd enrich the last two and eliminate the first. Anyone using your code will have to decide if you mean your Date or java.util.Date. Bad idea. Use the JDK java.util.Date instead.
Upvotes: 6