Вот код, который я получил из книги Герберта Шильдта «Java: полный справочник» на стр. 239, 240 в формате PDF. Я исследовал "stati c", но в этом случае мне интересно, почему нужно использовать stati c.
import java.util.Random;
interface SharedConstants {
int NO = 0;
int YES = 1;
int LATER = 3;
int SOON = 4;
int NEVER = 5;
}
class Question implements SharedConstants {
Random rand = new Random();
int ask() {
int prob = (int) (100 * rand.nextDouble());
if(prob < 30) return NO;
else if(prob < 60) return YES;
else if(prob < 75) return LATER;
else if(prob < 98) return SOON;
else return NEVER;
}
}
public class AskMe implements SharedConstants {
static void answer(int result) {
switch(result) {
case NO:
System.out.println("No");
break;
case YES:
System.out.println("Yes");
break;
case LATER:
System.out.println("Later");
break;
case SOON:
System.out.println("Soon");
break;
case NEVER:
System.out.println("Never");
break;
}
}
public static void main(String[] args) {
Question q = new Question();
answer(q.ask());
answer(q.ask());
answer(q.ask());
answer(q.ask());
}
}
Мне интересно, какая строка создала метод answer
в классе AskMe
. Зачем нам нужен контроль доступа "stati c"? В противном случае компилятор выдаст ошибку типа «ошибка: на метод non-stati c не может быть получена ссылка на метод (int) из контекста stati c».
Заранее спасибо.
(Это мой первый вопрос, если возникнут ошибки, скажите мне)