2011-02-01 18 views
6

Başka bir sınıfın iç sınıfını başka bir sınıfta kullanmak istediğim bir durum var. gibi ...Yuvalanmış sınıfı java'da başka bir sınıfta nasıl kullanabilirim?

public class ListData { 
    public static class MyData { 

     public String textSongName, textArtistName, textDuration, textDownloadPath, 
       textSongSize, textAlbumName, textUrl; 
     public boolean enable; 

     public MyData(String songName, String artistName, String duration, 
       String downloadPath, String songSize, String albumName, 
       String url, boolean e) { 
      textSongName = songName; 
      textArtistName = artistName; 
      textDuration = duration; 
      textDownloadPath = downloadPath; 
      textSongSize = songSize; 
      textAlbumName = albumName; 
      textUrl = url; 
      enable = e; 
     } 
    } 

} 

şimdi başka Mydata sınıfını kullanmak istiyorum.

Bunu nasıl yapabilirim?

Teşekkürler. Eğer kapsayan sınıfından kapsam dışında diğer sınıftan iç sınıf nesnesi oluşturabiliyorsanız

+3

ad çakışmasını önlemek için örnek yeniden biçimlendirmek misiniz .. kullanabilir ve girinti düzeltmek için? – Nicolas

+0

Yapabilirsin, ama bunu en üst seviyeye çıkarmalısın. (Btw: terminology post-1.1, bir "statik iç sınıf" için iç içe geçmiş sınıftır. Statik olmayan iç içe geçmiş sınıflar için iç sınıf.) –

cevap

21
ListData.MyData myData = new ListData.MyData(); 
+0

Yuvalanmış sınıflar, dış sınıfın kapsamı içinde varmış gibi midir? –

+0

Hayır. Burada MyData statik bir iç sınıftır. Kimlik, ana sınıfa bağlı değildir ve sınırlı sınıfın iç yapısına erişemez. Yanlış biçimlendirmeden kaynaklanan bir hatayı düzelttim. –

+0

(Önceki yorum için özür dilerim, iç sınıf bildirgesindeki durağanlığı kaçırdı.) Statik olmayan iç sınıflar, dış sınıflarının sınırları içinde, aslında içsel bir örneği dışsal olmayan bir örneğiniz olamaz. Statik iç sınıflar, kendi sınıfları içinde kapsüllenmişlerdir, fakat bunlara atıfta bulunmazlar, temelde ayrı sınıflar gibi davranırlar. – berry120

19

Statik İçiçe Sınıflar

OuterClass.StaticNestedClass nestedObject = new OuterClass.StaticNestedClass(); 

İç Sınıflar

OuterClass.InnerClass innerObject = outerObject.new InnerClass(); 

More about Nested Classes

2

tam adını kullanmanız gerekenden daha .... .... Burada, dış sınıfınız ListData'dır ve İç sınıfınız Mydata 'dur ve Mydata'yı başka bir sınıftan ararız. YourData .. biz açıklamada altında kullanabilirsiniz daha ..

dizimi: outerclass.innerclass = new outerclass.innerclass();

=>ListData.MyData objectname = new ListData.MyData();

NOT: Bu innner sınıfı statik olduğu zaman

İlgili konular