Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

Javada Class/method sorunu


SpiderS_DangeR

Öne çıkan mesajlar

Şimdi iki tane classımız var, a ve b olsun. a classında 2 method var c ve d olsun. d metodu iki tane string yollayarak c methodunu çalıştırıyor ve c'de bir boolean return ediyor.

Yapmaya çalıştığım şey b classından a classındaki c methodunu çalıştırıp d'den aldığı stringlerle bana bir boolean return etmesi, sorun şu ki c methodu private ve netbeans kullandığım için bunu değiştiremiyorum. Bu nedenle b classından d methodundaki Stringlere ulaşamadığım için c yi çalıştıramıyorum.

Acaba b classından c yi bir şekilde çalıştırıp d den aldığı bilgilerle bana birşey return etmesini sağlayabilir miyim? Yoksa ne gibi bir yol izlemem gerekir? Teşekkürler

Kusura bakmayın biraz karmaşık oldu ama en basit böyle anlatabildim.
Link to comment
Sosyal ağlarda paylaş

Iyi de zaten c ve d'nin a'nin icinde private olmasinin sebebi disaridan erisilmemesi degil midir?

Tencere isinsin ama icindeki su kaynamasin... Tencere zaten suyu kaynatmak icin var.

Yanlis anlamadiysam elindekiler asagidaki gibi...



public class a{
private String d(){
String my_str = "foo";
return my_str;
}
private boolean c(){
return (this.d()=="foo");
}
}
public class b{
b(){
a my_a = new a();
foo(my_a);
}
public void foo(a a1){
if(a1.c()) System.out.println("foo");
}
}


Haliyle sen b'yi compile etmeye calisirken hata aliyorsun.

Ya bold yazili yeri public yaparsin, boylece c'ye erisim hakkin olur. Ya da istedigin sekilde tepki vermesini hazirlayacagin kucuk fonksiyonlar olusturursun, get_c() gibi.



public class a{
private String d(){
String my_str = "foo";
return my_str;
}
private boolean c(){
return (this.d()=="foo");
}
public boolean get_c(){
return this.c();
}
}
public class b{
b(){
a my_a = new a();
foo(my_a);
}
public void foo(a a1){
if(a1.get_c()) System.out.println("foo");
}
}


GET fonksiyonlari olusturmak isine yarar, istemedigin bilgi kacmaz. Obur turlu yok su public bu private cebellesirsin. Yine cebelleseceksin elbet ama erisim hakkin olsun istiyorsan get eklemeden en azindan elinden kacirmazsin.
Link to comment
Sosyal ağlarda paylaş

Yok öyle değil tam anlatamamışım. Şöyle:

public class NewJFrame extends javax.swing.JFrame {
public static boolean userVerification(String kAdi, String sifre)
{
bla bla bla bla
return temp;
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

userVerification(jTextField1.getText(),jPasswordField1.getText());

}
}



Birde başka herhangi bir class var işte. Öbür classtan userVerification'a erişebiliyorum fakat jButton1ActionPerformed'a erişemiyorum ve netbeans editörünü kullandığım için private'ı editlememe izin vermiyor. Fakat benim diğer classın maininden jTextField1.getText(),jPasswordField1.getText() parametreleri ile userVerification methodunu çalıştırıp boolean return ettirmem gerekiyor. Ama bu parametreleri diğer classtan göremediğim için işte yapamadım.
Link to comment
Sosyal ağlarda paylaş

Netbeans kendi ürettiği kodları senin kafana göre değiştirmene izin vermiyor çünkü onları değiştirirsen GUI designer'da değişiklik yapma imkanın kalmaz.

Bence asıl problem Java'ya yeterince hakim olmadan Netbeans'in GUI designer'ına bulaşmış olman. jButton1ActionPerformed metodunu zaten senin kendin çağırmaman gerekiyor. Kullanıcı GUI kullanarak bir tuşa bastığında çağırılsın diye orda metod.

Senin yapman gereken programın mantığını içeren kodları mümkün olduğunca kendi ürettiğin class'lara ve metodlara koymak, sonra da Netbeans tarafından üretilmiş event metodlarından kendi kodunu çağırmak. Tam tersi değil.

jTextField1 gibi GUI widget'larına ulaşmak için public getter metodları tanımlarsan işini görecektir.
Link to comment
Sosyal ağlarda paylaş

bence bi session ve user die class yap.

ordaki userauthentication methodun da User dondursun, bunu al sessiona set et.

nası bi gui yapıon onu da bilmiom ama adamın user/pass'i sabit durcak mı arayüzde öle :)

user null ise, authenticate olmasını iste.
deilse isleme devam ettir falan filan.
Link to comment
Sosyal ağlarda paylaş

Ya tamam get i hallettim gerçekten kolaymış ama daha büyük bir sorun var şimdi. Bir main classımız var şu şekilde,

public static void main(String[] args) {
NewJFrame fm = new NewJFrame();
fm.setVisible(true)
if(fm.LoggedIn() == true)
{
launch(DesktopApplication2.class, args);
System.out.println("congratz");
}
else
{
System.out.println("asdsad");
}

}


Burada ki if controlünü, başka bir classtaki bir methodun çağırılmasıyla tetiklemenin bir yolu varmı? Yani o method çağırılana kadar if çalışmayacak, method çağırıldığı anda if controlünü yapacak?
Link to comment
Sosyal ağlarda paylaş

  • 2 hafta sonra ...
×
×
  • Yeni Oluştur...