2016-04-05 20 views
1

Son derece endişeli bir soru için özür dilerim, ancak Java için biraz yeni ve hala sorunlarımı nasıl söyleyeceğime emin değilim/istediğim şeyi yapmak mümkün olup olmadığından emin değilim . Başka bir ana döngüde bu yöntemi çağırdığınızda gibi, ŞimdiYöntemi çağıran nesneyi kullanın

public class ClassA { 

private int numberino; 

public ClassA(Int int) { 
    this.numberino = int; 

public boolean isPositive(){ 
    if (this.numberino > 0){ 
     return true; 
    return false; 

public int returnInt() { 
    final int addVal = 2; 
    int sum = 1 
    sum = addVal*numberino + sum; 
    return sum; 

} 

:

Ben şuna benzer önemsiz bir yöntem returnInt sahiptir ClassA adında bir sınıf var

ClassA temp = new ClassA(7); 
temp.returnInt(); 

Benim soru, temp nesnesini returnInt() yöntemine iletebildiğim, bu yüzden isPositive(int) yöntemini kullanarak yapıyı değiştirmeden (argüman olarak ileterek) kullanabilirim returnInt() yöntemi? Böyle bir şey onun nasıl olduğunu hayal ettiğim (ama yanlış olduğunu biliyorum);

public int returnInt() { 
    final int addVal = 2; 
    int sum = 1 
    if (temp.isPositive()){ 
     sum = addVal*numberino + sum; 
    } 
    return sum; 

o temp oluşturulan nesne ve yöntem returnInt() olduğunu ondan kullanılıyor yöntemdir.

Umarım bu mantıklıdır.

Teşekkürler!

cevap

2

returnInt, ClassA örnek yöntemidir, bu nedenle ClassA yöntemini çağırabilir. Hiçbir şey iletmeye gerek yok.

public int returnInt() { 
    final int addVal = 2; 
    int sum = 1 
    if (isPositive()) { // or this.isPositive() if you want to be explicit 
     sum = addVal*numberino + sum; 
    } 
    return sum; 
} 
+0

Doğru, bu o (o olan) bir statik olmayan bir bağlamda çalıştığını verdi :) ben bu statik bir bağlam nasıl görmüyorum – vikingsteve

+0

, yöntem, bir örnek-yöntemdir ve o kullanıyor Aynı örnekte başka bir örnek yöntem. – HopefullyHelpful

+0

Ah mükemmel. Her şeyin anlamını gözden geçirdim. Teşekkürler! – flexcookie

İlgili konular