And have tried practicing encapsulation and inheritance. My code is as follows
class Student {
private String name;
public void setName(String newName);
name = newName;
}
public String getName(){
return name
}
}
public class Michael extends Student {
public static void main(String[] args){
Michael.setName("Mike");
System.out.println(Michael.getName());
}
}
It should be obvious what I’m trying to do here, I’m just trying to set the name of “Michael” in the name method, then print it to the console.
The error returned is as follows
/Michael.java:4: error: <identifier> expected
name = newName;
^
/Michael.java:6: error: class, interface, enum, or record expected
public String getName(){
^
2 errors
What’s going on here? Also, what is this online editor lacking that gets in the way whenever I try running very simple code like this example?
The code looks clear, but the compiler points out what seems like working code as having problems. The issue actually is somewhere else, and the compiler is confused and points to the following code.
The issue is actually this part:
public void setName(String newName);
name = newName;
}
the method ends with ; rather than {,thus resulting in Java thinking name = newName is not on a method so its floating, and the getName method to be out of the class entirely!
class Student {
private String name;
public void setName(String newName){
this.name = newName;
}
public String getName(){
return this.name;
}
}
public class Michael extends Student {
public static void main(String[] args){
Michael.setName("Mike");
System.out.println(Michael.getName());
}
}
Although the error is now
/Michael.java:13: error: non-static method setName(String) cannot be referenced from a static context
Michael.setName("Mike");
^
/Michael.java:14: error: non-static method getName() cannot be referenced from a static context
System.out.println(Michael.getName());
^
2 errors
Ah silly me, should’ve been obvious. Thanks for your response
class Human {
private String name;
public void setName(String newName){
this.name = newName;
}
public String getName(){
return this.name;
}
}
public class Adult extends Human{
public static void main(String[] args){
Adult Michael = new Adult();
Michael.setName("Mike");
System.out.println(Michael.getName());
}
}