Arama butonu
Bu konudaki kullanıcılar: 1 misafir, 1 mobil kullanıcı
4
Cevap
681
Tıklama
0
Öne Çıkarma
Arraye object atama
O
7 yıl
Yüzbaşı
Konu Sahibi

public class Block {

Flat[] flats;

// inner class
class Flat {

Room[] rooms;

// inner class
class Room {
private int width;
private int height;
private int numWindow;

// constructor
// Fill in the marked area
// Do not change anything else
// For each creating room object, array "rooms" must be extended
// Clearly, add new Room to end of array, update the array
public Room(int width, int height, int numWindow) {
super();
this.width = width;
this.height = height;
this.numWindow = numWindow;

//**********************************************
//**********************************************
}

// Please do not change anything in this method.
@Override
public String toString() {
return width + "/" + height + "/" + numWindow;
}
}

// constructor
// Fill in the marked area
// Do not change anything else
// For each creating flat object, array "flats" must be extended
// Clearly, add new Flat to end of array, update the array
public Flat() {
super();
rooms = new Room[0];

//**********************************************
//**********************************************
}
}

Okuldan verilen ödevde "For each creating flat object, array "flats" must be extended" kısmını anlayamadım.Ayrıca oluşturulan test class ının içinde objectler oluşturulmuş bir şekilde verilmiş ama ben bu objectleri array e atayamadım.
Bu sorunun üstesinden nasıl gelebilirim?





< Bu mesaj bu kişi tarafından değiştirildi onbindolar -- 20 Mayıs 2018; 5:4:30 >

S
7 yıl
Yüzbaşı

Valla berbat bir ödev. Şunu hazırlayan kişinin derhal görevden alınması lazım.

Oradaki array'leri dinamik olarak grow etmeni istiyor. Fakat Java'da array'ler fixed size'dır, dinamik olarak resize edemezsin, öyle bir şey lazım olursa ArrayList<Room> gibi bir container kullanırsın. Böyle olmaz.

Niye super() çağırıyor? extend ettiği bir class yok (Object hariç, o da default zaten).

Bir de, nested class değil inner class kullandığının farkında mı acaba bu adam? neyi öğretmeye çalışıyor? böyle bir pattern yok... composition yapmaya çalışıyorsa bu değil.

ingilizcesi de berbat, array extend edilmez ya, gerizekalı bidon.. nasıl küfrettim, yazmıyorum buraya. Allah sabır versin size valla, ne diyim



< Bu ileti mini sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.
O
7 yıl
Yüzbaşı
Konu Sahibi

Peki hocam array liste dönüştürüp nasıl bir atama yapabilirim.



< Bu ileti mobil sürüm kullanılarak atıldı >


Bu mesajda bahsedilenler: @seyfi84
T
7 yıl
Yarbay

Olabilir yanlız Flat altındaki

Room[ ] rooms yerine ArrayList<Block.Flat.Room> rooms;

Rooms sınıfı altında doldurulacak kısma rooms.add(this);

Ve en alttaki Flats konstrüktörüne de rooms = new ArrayList<Block.Flat.Room>(); yazmalısın.



Fakat öyle bir durumda hocanın istediği Array tipi yerine ArrayList kullandığın için hoca böyle bir çözümü kabul etmeyebilir, belki.



< Bu ileti mini sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.
O
7 yıl
Yüzbaşı
Konu Sahibi

çok sağol hocam.




Bu mesajda bahsedilenler: @revivo72
DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.