如何在Java中调用另一个类中的方法?

15

目前我有两个类:一个是Classroom类,另一个是School类。我希望在School类中编写一个方法,调用Classroom类中的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个回答

23

你应该大写你的类名。在这样做后,将其用于你的学校课程中。

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

我建议您使用一些集成开发环境(IDE),例如eclipse,该IDE可以帮助您编写代码,例如为您生成getter和setter。例如:右键单击Source->生成getter和setter。


3
这并没有真正回答问题。也许它应该作为原始问题的评论而不是答案?不过,这不仅是有效的建议,而且也是明智的建议。 - user483040
2
@jaydel:这里有很多好建议,没错,但代码部分完美地捕捉到了(我想象中)大多数人正在寻找的东西。 - HoldOffHunger

7
试试这个:
public void addTeacherToClassRoom(classroom myClassRoom, String TeacherName)
{
    myClassRoom.setTeacherName(TeacherName);
}

5
class A{
  public void methodA(){
    new B().methodB();
    //or
    B.methodB1();
  }
}

class B{
  //instance method
  public void methodB(){
  }
  //static method
  public static  void methodB1(){
  }
}

5

在学校中,

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

顺便提一句,在类名中使用帕斯卡命名法。此外,我建议使用Map<String, classroom>来将教室名称映射到教室。

如果您采用我的建议,那么这将起作用。

public void addTeacherName(String className, String teacherName) {
    classrooms.get(className).setTeacherName(teacherName);
}

4

不要在当前类中使用 setClassRoomName("aClassName");,而是使用 classroom.setClassRoomName("aClassName");

你需要添加类,并在一个点上使用它,例如:

yourClassNameWhereTheMethodIs.theMethodsName();

我知道这是一个很晚的回答,但如果有人开始学习Java并随机看到了这篇文章,他应该知道该怎么做。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接