2014-09-08 3 views
-2

Я новичок в программировании Java и Stackoverflow, и у меня возник вопрос. Я пытаюсь отобразить текст, назначенный переменным, и когда я пытаюсь запустить программу, сказано, что нестатические переменные нельзя ссылаться на статический контент. Вот мой код:Новое в программировании на Java. Попытка ссылаться на нестатические переменные из статического содержимого

public class VariableTesting { 

    String firstName = "Tom"; //String first, last, 
    char middleInitial = 'B'; 
    String lastName = firstName; 

    public static void main(String[] args) { 
     variable(); 
    } 

    public static void variable(){ 
     System.out.println(lastName + "," + firstName + "," + middleInitial); 
    } 
} 

Я ценю любую помощь. Спасибо

+0

Поиск сообщений об ошибках: http://stackoverflow.com/questions/290884/what-is-the-reason-behind-non-static-method-cannot-be-referenced-from-a-static?lq= 1 – user2864740

+3

Это потому, что нестатические переменные нельзя ссылаться из статического контекста. –

+0

Переменная «instance» связана с «экземпляром» класса. То есть, если вы делаете 'VariableTesting me = new VariableTesting();', то 'me' является ссылкой на экземпляр класса. Тогда вы можете сделать, например, 'System.out.println (me.lastName);'. –

ответ

0

Поскольку вы не можете иметь два объекта, которые по-разному ориентированы (статические и нестатические), вы должны либо сделать переменную static, либо сделать метод нестационарным.

2

firstName, middleInitial и lastName являются переменными экземпляра. Поэтому вы не можете получить к ним доступ из статического метода, если только это не делается путем ссылки на экземпляр класса VariableTesting.

+2

Ну, технически вы МОЖЕТЕ ссылаться на них из статического метода, но вам нужно иметь переменную экземпляра, чтобы квалифицировать их. –

+0

@HotLicks Это правда – Eran

Смежные вопросы