2015-11-29 1 views
-3

ПримерКак получить доступ к переменной из приведенного ниже примера

Это главный класс ..

public class Main { 
    public static void main(String[] args) { 
     Man one = new Man("Bob"); 
    } 
} 

Это Man класс, чтобы создать новое имя и дать ему имя ..

public class Man { 
    public String name; 

    public Man(String name) { 
    this.name = name; 
    } 
} 

Как вы можете видеть, когда я сделал новый Man в main class я назвал его one. Как получить доступ к переменной one из класса Man?

Я пытался что-то вроде:

public String getName(String name) { 
    this.name = name; 
    return name; 
} 

Хотя это не работает.

+0

Вы можете добавить геттер в класс Man, чтобы вернуться вам имя, например * public String getName() {return name; } * – Raf

+0

Что вы пытаетесь достичь? Какой метод Человека нужен человеку, которого вы создали в основном методе? Сделать что? –

+1

Вы не можете изучить * очень основы * языка программирования, задавая вопросы о stackoverflow. –

ответ

2

Вы не можете.

имя переменнойone действителен только в рамках основного метода. Класс Man не имеет понятия об именах, выбранных для переменных, указывающих на его экземпляры.

+1

Я вижу, так что вообще нет доступа к «одному» из класса «Человек»? – Tahmid

+0

Что вы имеете в виду, обратившись к «одному» из класса Man? В классе Man есть только имя. и в основном классе есть один внутри него, который является объектом класса Man. – Raf

+1

@Raf, Вы видите линию 'Man one = new Man (« Bob »);'? Я назвал человека «одним» (не говоря о его имени). – Tahmid

1

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

public class Main { 
    public static void main(String ... args) { 
     Man man = new Man("Human!"); 

     System.out.println(man.getName()); 
     //Human! 

     man.setName("Civilised human!"); 

     System.out.println(man.getName()); 
     //Civilised human! 
    } 
} 

class Man { 
    String name; 

    public Man(String name) { 
     this.name = name; 
    } 

    //getter for Man class 
    public String getName() { 
     return name; 
    } 

    //setter for Man class 
    public void setName(String name) { 
     this.name = name; 
    } 
} 

Вы также можете получить доступ к свойствам класса без добытчика, если они являются общедоступными, как показано ниже в вашем случае:

System.out.print(man.name); 
+0

Боюсь, вы не поняли вопроса. Он хочет «получить доступ к переменной из класса Man». Класс ** Человек **. (Говоря о неудачных вариантах именования ...) –

+1

@MikeNakis Я в замешательстве, но вы можете быть правы, именование может привести к катастрофе – Raf

+1

Ну, он, вероятно, не даст вам такой момент, так что вот оно для усилий! C -: = –

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

  • Нет связанных вопросов^_^