Как вызвать метод в другом классе в Java? - PullRequest
11 голосов
/ 04 января 2011

В настоящее время у меня есть два класса. классный класс и школьный класс. Я хотел бы написать метод в классе School для вызова public void setTeacherName (String newTeacherName) из класса класса.

classroom.java

public class classroom {
    private String classRoomName;
    private String teacherName;

    public void setClassRoomName(String newClassRoomName) {
        classRoomName = newClassRoomName;

    }

    public String returnClassRoomName() {
        return classRoomName;
    }

    public void setTeacherName(String newTeacherName) {
        teacherName = newTeacherName;

    }

    public String returnTeacherName() {
        return teacherName;
    }
}

School.java

import java.util.ArrayList;

public class School {
    private ArrayList<classroom> classrooms;
    private String classRoomName;
    private String teacherName;

    public School() {
        classrooms = new ArrayList<classroom>();
    }

    public void addClassRoom(classroom newClassRoom, String theClassRoomName) {
        classrooms.add(newClassRoom);
        classRoomName = theClassRoomName;
    }

    // how to write a method to add a teacher to the classroom by using the
    // classroom parameter
    // and the teachers name
}  

Ответы [ 5 ]

17 голосов
/ 04 января 2011

Вы должны использовать названия ваших классов.После этого сделайте это в своем школьном классе,

Classroom cls = new Classroom();
cls.setTeacherName(newTeacherName);

Также я бы порекомендовал вам использовать какую-то среду IDE, такую ​​как eclipse, которая может помочь вам с вашим кодом, например, генерировать для вас методы получения и установки.Пример: щелкните правой кнопкой мыши Источник -> Создать геттеры и сеттеры

7 голосов
/ 04 января 2011

Попробуйте это:

public void addTeacherToClassRoom(classroom myClassRoom, String TeacherName)
{
    myClassRoom.setTeacherName(TeacherName);
}
4 голосов
/ 04 января 2011

в школе,

public void addTeacherName(classroom classroom, String teacherName) {
    classroom.setTeacherName(teacherName);
}

КСТАТИ , используйте Pascal Case для имен классов.Кроме того, я бы предложил Map<String, classroom> для сопоставления названия класса с классом.

Тогда, если вы воспользуетесь моим предложением, это будет работать

public void addTeacherName(String className, String teacherName) {
    classrooms.get(className).setTeacherName(teacherName);
}
4 голосов
/ 04 января 2011
class A{
  public void methodA(){
    new B().methodB();
    //or
    B.methodB1();
  }
}

class B{
  //instance method
  public void methodB(){
  }
  //static method
  public static  void methodB1(){
  }
}
1 голос
/ 30 января 2017

Вместо использования этого в вашем текущем классе setClassRoomName("aClassName"); вы должны использовать classroom.setClassRoomName("aClassName");

Вы должны добавить класс 'и в такой точке, как

yourClassNameWhereTheMethodIs.theMethodsName();

Я знаю, что это действительно поздний ответ, но если кто-то начинает изучать Java и случайно видит этот пост, он знает, что делать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...