Arama butonu
Bu konudaki kullanıcılar: 1 misafir
8
Cevap
1578
Tıklama
0
Öne Çıkarma
Java Bilenlere Küçük Bir Soru
H
14 yıl (1383 mesaj)
Binbaşı
Konu Sahibi

Daha önce burda bi kaç defa soru sordum sağolsun yardımcı olanlar oldu. Şimdi yeni bi soruyla karşı karşıyayım

şöyle bi class var

public class Drive {
public static void main(String args[]) {
A a = new A();
System.out.printf( "%2d%s\n",a.x+1,new A());
a.y.d();

}
}

programın outputu aşağıdaki gibi olacak şekilde devam etmeliymiş.

5x4
hello


esasında çok basit gibi duruyor lakin java için başlangıç seviyesinde olmamdan ötürü yapamadım.

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



U
14 yıl (4994 mesaj)
Binbaşı

A sınıfını oluşturup içinde özellik ve metotlar oluştur, bi başlangıç olsun senin için. Sınıf oluşturmayı göstermişlerdir herhalde?


Bu mesaja 1 cevap geldi.
H
14 yıl (1383 mesaj)
Binbaşı
Konu Sahibi

quote:

Orijinalden alıntı: un.real

A sınıfını oluşturup içinde özellik ve metotlar oluştur, bi başlangıç olsun senin için. Sınıf oluşturmayı göstermişlerdir herhalde?

tamam arkadaşım oluşturdumda. A class'ının içinde string d() metodu ve string y="hello" değişkeni oluşturuyorum. fakat
şu statementda a.y.d(); The method d() is undefined for the type String hatası alıyorum. Bu arada yukarda yazdıklarımı hiç bir şekilde değiştiremem. ekleme yapabiliyorum sadece.



H
14 yıl (1383 mesaj)
Binbaşı
Konu Sahibi

U
14 yıl (4994 mesaj)
Binbaşı

string y = "hello" değişkeni yerine
A y = new A() değişkeni oluşturmalısın.


Bu mesaja 1 cevap geldi.
H
14 yıl (1383 mesaj)
Binbaşı
Konu Sahibi

quote:

Orijinalden alıntı: un.real

string y = "hello" değişkeni yerine
A y = new A() değişkeni oluşturmalısın.

öncelikle teşekkürler.

public class A {

A y=new A();
public int x=4;
public String d(){
return "hello";
}


}

şunu denedim fakat
java.lang.StackOverflowError hatasını alıyorum. :S


Bu mesaja 1 cevap geldi.
U
14 yıl (4994 mesaj)
Binbaşı

Bunun sebebi şu olsa gerek: her A nesnesi oluşturduğunda, onun içinde bir A nesnesi oluşuyor, onun da içinde bir A nesnesi oluşuyor, onun da içinde bir A nesnesi oluşuyor ..... nihayetinde sonsuz sayıda A nesnesi oluşturduğumuz için hafızada yer kalmamış oluyor.
o halde bir B sınıfı yazıp string d() metodunu da bu sınıfın içinde tanımlarsak, A sınıfındaki y değişkenini de B y = new B() şeklinde tanımlarsak sorunu aşmış oluruz.


Bu mesaja 1 cevap geldi.
H
14 yıl (1383 mesaj)
Binbaşı
Konu Sahibi

quote:

Orijinalden alıntı: un.real

Bunun sebebi şu olsa gerek: her A nesnesi oluşturduğunda, onun içinde bir A nesnesi oluşuyor, onun da içinde bir A nesnesi oluşuyor, onun da içinde bir A nesnesi oluşuyor ..... nihayetinde sonsuz sayıda A nesnesi oluşturduğumuz için hafızada yer kalmamış oluyor.
o halde bir B sınıfı yazıp string d() metodunu da bu sınıfın içinde tanımlarsak, A sınıfındaki y değişkenini de B y = new B() şeklinde tanımlarsak sorunu aşmış oluruz.

Bingo.
Söylediğinizi yapınca çalıştı helloyu yazdırdım. Teşekkür ederim.





< Bu mesaj bu kişi tarafından değiştirildi Hydralisk -- 28 Kasım 2011; 23:19:48 >
Bu mesaja 1 cevap geldi.
H
14 yıl (1383 mesaj)
Binbaşı
Konu Sahibi

tamam çok basitmiş.

System.out.printf( "%2d%s\n",a.x+1,new A());

A classının içinde yazınca 5+4 veriyor.
public int x=4;
public int k=4;

public String toString(){
return "+"+k;
}



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.