2016-04-16 3 views
-1

Я в тупике. Я создал метод под названием «makeBed» в классе (BedRoom), который вызывает другой метод в классе (Bed) под названием «make». Но когда я пытаюсь вызвать метод через bedroom.makeBed(); это не работает. Я помещаю // в часть, которую пытаюсь найти.Вызов другого метода из объекта-Java

Главная

public class Main { 
Wall wall1 = new Wall("West"); 
Wall wall2 = new Wall("East"); 
Wall wall3 = new Wall("South"); 
Wall wall4 = new Wall("North"); 

Ceiling ceiling = new Ceiling(12, 55); 

Bed bed = new Bed("Modern", 4, 3, 2, 1); 

Lamp lamp = new Lamp("classic", false, 75); 

BedRoom bedroom = new BedRoom("test",wall1,wall2,wall3,wall4,ceiling,bed,lamp); 

bedroom.makeBed(); //bedroom.makeBed(); does not work 
//It does not show the public method "makeBed" in the BedRoom class 
} 

СПАЛЬНЯ Класс

public class BedRoom { 
private String name; 
private Wall wall1; 
private Wall wall2; 
private Wall wall3; 
private Wall wall4; 
private Ceiling ceiling; 
private Bed bed; 
private Lamp lamp; 

public BedRoom(String name, Wall wall1, Wall wall2, Wall wall3, Wall wall4, Ceiling ceiling, Bed bed, Lamp lamp) { 
    this.name = name; 
    this.wall1 = wall1; 
    this.wall2 = wall2; 
    this.wall3 = wall3; 
    this.wall4 = wall4; 
    this.ceiling = ceiling; 
    this.bed = bed; 
    this.lamp = lamp; 
} 

public Lamp getLamp(){ 
    return this.lamp; 
} 

public void makeBed(){    //This is the method I'm trying to access 
    System.out.println("Bedroom -> Making bed"); 
    bed.make(); 
} 

} 

Кровать класса

public class Bed { 
private String style; 
private int pillows; 
private int height; 
private int sheets; 
private int quilt; 

public Bed(String style, int pillows, int height, int sheets, int quilt) { 
    this.style = style; 
    this.pillows = pillows; 
    this.height = height; 
    this.sheets = sheets; 
    this.quilt = quilt; 
} 

public void make(){ 
    System.out.println("Bed -< Making"); //Method I'm trying to call 
} 

public String getStyle() { 
    return style; 
} 

public int getPillows() { 
    return pillows; 
} 

public int getHeight() { 
    return height; 
} 

public int getSheets() { 
    return sheets; 
} 

public int getQuilt() { 
    return quilt; 
} 
} 
+0

Что вы имеете в виду вы не можете видеть это? Ваш код выглядит нормально и должен компилироваться и запускаться. –

+0

@RobertMoskal Когда я печатаю в спальне. методы не показывают – PrQ

+0

Это проблема с редакцией, связанная с завершением кода. Вы должны сказать нам, какой редактор вы используете и как он настроен. –

ответ

2

Я хочу сказать, что это он ... Вы не имеете код, завернутый в метод, поэтому он не компилируется правильно.

public class Main { 
public static void main(String[] args) { 
Wall wall1 = new Wall("West"); 
Wall wall2 = new Wall("East"); 
Wall wall3 = new Wall("South"); 
Wall wall4 = new Wall("North"); 

Ceiling ceiling = new Ceiling(12, 55); 

Bed bed = new Bed("Modern", 4, 3, 2, 1); 

Lamp lamp = new Lamp("classic", false, 75); 

BedRoom bedroom = new BedRoom("test",wall1,wall2,wall3,wall4,ceiling,bed,lamp); 

bedroom.makeBed(); //bedroom.makeBed(); does not work 
//It does not show the public method "makeBed" in the BedRoom class 
} 
} 

Возможно, это сработает.

Это при условии, что это ваш класс, который вы хотите initilize весь сценарий из, если не изменить public static void main(String[] args){} в public Main() {}

+0

Wow ... Я забыл поставить публичный статический void main ... Я все время искал, что я сделал не так ... Иногда ответ прямо перед вами. Спасибо, Matt – PrQ

+0

Ха-ха, все в порядке. Мы все делаем ошибки нашего новичка. Получите немного java и продолжайте! ;) Не забудьте сделать это правильным ответом! – Matthew

+0

Получил это спасибо:) – PrQ

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