Şimdi Ara

Java Bilenlere Küçük Bir Soru

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
9
Cevap
0
Favori
1.383
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • 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.



  • 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?
  • 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.
  • up

    fikri olan yokmu?
  • string y = "hello" değişkeni yerine
    A y = new A() değişkeni oluşturmalısın.
  • 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
  • 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.
  • 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 >
  • 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;
    }
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.