java如何执行方法

时间:2014-11-11 18:16:35

标签: java class methods

我创建了一个类定义如下的酒店:

import java.util.Random;


public class Hotel {

  private Osoba[] tab = new Osoba[100];

  public void zamelduj(Osoba os, int num) {
    if (tab[num - 1] == null) {
      System.out.println("Pokoj o numerze " + num + "jest zajety");
      return;
    }
    tab[num - 1] = os;
  }

  public void wymelduj(int num) {
    tab[num - 1] = null;
  }

  public void zamienOsoby(int num1, int num2) {
    Osoba o = tab[num1 - 1];
    tab[num1 - 1] = tab[num2 - 1];
    tab[num2 - 1] = o;
  }

  public void znajdzWolnePokoje() {
    for (int i = 0; i < 100; i++) {
      if (tab[i] == null) System.out.println(i + 1);
    }
  }
  public void przydzielPokoje50() {
    for (int i = 0; i < 50; i++) {
      Random r = new Random();
      Osoba o = new Osoba();
      int num = r.nextInt(100);
      tab[num] = o;
    }
  }

  public void wypisz() {
    for (int i = 0; i < 100; i++) {
      if (tab[i] == null) System.out.println("Pokoj nr. " + (i + 1) + " jest wolny");
      else System.out.println("Pokoj nr. " + i + " jest zajety przez " + tab[i].imie + " " + tab[i].nazwisko);
    }
  }

  public static void main(String[] args) {
    Hotel h = new Hotel();
    //h.przydzielPokoje50();
    //h.wypisz();
    h.zamelduj(null, 30);

  }

}

我还有一堂课Osoba:

public class Osoba {
  public String imie;
  public String nazwisko;

  Osoba() {
    imie = null;
    nazwisko = null;
  }

  Osoba(String imie, String nazwisko) {
    this.imie = imie;
    this.nazwisko = nazwisko;
  }
}

我想执行方法Zamelduj,它将一个人(Osoba)分配给表中的单元格。但是,每次我在下面插入除null之外的东西时,它表示第一个参数不是方法的有效参数。

h.zamelduj(null, 30);

我做错了什么?

2 个答案:

答案 0 :(得分:0)

您需要创建一个类酒店的对象(在您要调用方法类型的类中):

Hotel myObjectHotel = new Hotel();

然后你可以调用方法:

myHotelObject. zamelduj(give parameters here);

:)

更新: 错过了真正的问题。只关注这个话题。对不起;)

答案 1 :(得分:0)

我认为你的问题是在线上#34; h.zamelduj(null,30);&#34;你需要创建一个新的Osoba:

h.zamelduj(new Osoba("o.o", "._.!"), 30);

发生的事情是该函数期待一个Osoba,如果你给它另一个东西,它就会拒绝。我希望它有所帮助