Вы пытаетесь определить метод (CreateNew
) в метод (main
), который вы не можете сделать в Java. Переместите его из main
; и, как model
и status
, как представляется, переменные экземпляра (а не метод переменных), перемещать их, а также:
public class Robot {
// Member variables
String model;
/*int year;*/
String status;
// main method
public static void main(String args[]){
// Presumably more stuff here
}
// Further method
public String CreateNew() {
Robot optimus;
optimus = new Robot();
optimus.model="Autobot";
/*optimus.year="2008";*/
optimus.status="active";
return (optimus.model);
}
}
на основе его содержания, вы можете CreateNew
быть static
(так что он может быть вызван через Robot.CreateNew
, а не через экземпляр Robot
). Как это:
public class Robot {
// Member variables
String model;
/*int year;*/
String status;
// main method
public static void main(String args[]){
// Presumably more stuff here
}
// Further method
public static String CreateNew() {
// ^----------------------------- here's the change
Robot optimus;
optimus = new Robot();
optimus.model="Autobot";
/*optimus.year="2008";*/
optimus.status="active";
return (optimus.model);
}
}
Используется как
String theModel = Robot.CreateNew();
... хотя непонятно мне, почему вы хотите создать Robot
экземпляр, а затем выбросить его и просто вернуть значение этого члена model
экземпляра.
Немного не по теме, но подавляющие конвенции в Java является то, что имена методов (статической или экземпляр) начинаются с строчной буквой, например, createNew
, а не CreateNew
.
как примечание стороны, как правило, рекомендуется начинать методы в нижнем регистре, в то время как классы имеют имена с заглавной буквы. Таково соглашение Java – Hawken