Çözüldü Java "cannot find symbol" hatası

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

Clf

Decapat
Katılım
10 Ağustos 2021
Mesajlar
41
Çözümler
1
Merhabalar,
Yarattığımız herhangi bir classa ait değişkenleri başka bir class da parametre olarak nasıl alıyoruz?
Mesela A classında B, C ve D objesi oluşturun diyor ya o objeleri kullanığımız constructorı başka bir classta( class E) çağırırken hata(cannot find symbol) alıyorum.
 
Çözüm
Bazı dillerdeki gibi parametre adını belirtip o parametreyi Java'da giremiyoruz maalesef. Sırasıyla yazmak gerekiyor:
Java:
public class Order { //ilk class
    public User u1;
    public Product p1;
    public CreditCard c1;

    public Order(User u1, Product p1, CreditCard c1)
        this.u1 = u1;
        this.p1 = p1;
        this.c1 = c1;
    } //User, Product, CreditCard ayrı classlar
}

public class User{ //2. class
    psvm {
        User user = new User();
        Product product = new Product();
        CreditCard cc = new CreditCard();
        Order o = new Order(user, product, cc); // Hatayı aldığım yer!
    }
}
Merhaba,

Ben yanlış anlamadıysam, değişkeni oluştururken public static kullanmanız yeterli olacaktır. Farklı bir sorunuz bulunuyorsa, örnek gönderebilir misiniz?
 
A classının nesnesini (instance) oluşturman gerek. A aObject = new A(); şeklinde oluşturup ardından Object bObject = aObject.B; (field ise) kullanarak objeyi çekebilirsin. Static ve instance farklarına bakmanı öneririm her erişmek istediğin şeye static yazamazsın.
 
Yanlış veya eksik anlattım olayı galiba:

public class Order { //ilk class
public static User u1;
public static Product p1;
public static CreditCard c1;

public Order(User u1, Product p1, CreditCard c1)
this.u1 = u1;
this.p1 = p1;
this.c1 = c1;
} //User, Product, CreditCard ayrı classlar

public class User{ //2. class
psvm{
Order o= new Order(asdasd,asdasd,asdasd); // Hatayı aldığım yer!
}}
@bertek41 @FDDeathWing
 
Son düzenleme:
Order classındaki fielddaki staticleri kaldırabilirsin. Eğer User classıyla Order classı ayrı packagelerdeyse import etmen gerekiyor. Eğer aynı packagedeyseler new Order(...) kısmında 3 noktaya girdiğin parametrelerin doğru obje türünden olduğundan emin ol.
 
Aynı packagelerde. Sıkıntı şu zaten obje türünü nasıl belirleyeceğim onu soruyorum aslında? Mesela String olsa [Order o= new Order("asd","asd","asd")] derdik veya int olsa sayı yazardık ama bizim yarattığımız classa ait olduğunu belirten belirteç nedir?
 
Bazı dillerdeki gibi parametre adını belirtip o parametreyi Java'da giremiyoruz maalesef. Sırasıyla yazmak gerekiyor:
Java:
public class Order { //ilk class
    public User u1;
    public Product p1;
    public CreditCard c1;

    public Order(User u1, Product p1, CreditCard c1)
        this.u1 = u1;
        this.p1 = p1;
        this.c1 = c1;
    } //User, Product, CreditCard ayrı classlar
}

public class User{ //2. class
    psvm {
        User user = new User();
        Product product = new Product();
        CreditCard cc = new CreditCard();
        Order o = new Order(user, product, cc); // Hatayı aldığım yer!
    }
}
 
İfadeler: Clf
Çözüm
Tam aynı anda ben de buldum çözümü sağol yardımın için, çözüm işaretlemiyorum henüz. Sen yetkili bir abiye benziyorsun başka sorum da olabilir çünkü
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…