[ pecos @ 10.01.2007. 19:54 ] @
Pocetnik sam u javi, ali sa velikim znanjem C++. Ovaj primer je iz Deitelove knjige (prepravljen) da radi pod Eclipse 3.2 i jdk 6. U knjizi koriste printf isto kao u C++, ali to ne radi...

Na ovo resenje sam "nekako" nabasao, ali sam ubedjen da postoji elegantnije...

Svaka pomoc i savet su dobrodosli...

Code:


import java.util.*;

public class AccountTest {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        
        Account account1 = new Account(50.00);
        Account account2 = new Account (-7.53);
        
        System.out.printf("account1 balance: $%10.2f%n", 
                new Object[] {new Double (account1.getBalance())});
        System.out.printf("account2 balance: $%10.2f%n",
                new Object[] {new Double (account2.getBalance())});
        
        Scanner input = new Scanner(System.in);
        double depositAmount;
        
        System.out.print("Enter deposit amount for account1: ");
        depositAmount = input.nextDouble();
        System.out.printf("%nAdding $%.2f to account1 balance%n%n",
                new Object[] {new Double (depositAmount)});
        account1.credit(depositAmount);
        
        System.out.printf("account1 balance: $%10.2f%n", 
                new Object[] {new Double (account1.getBalance())});
        System.out.printf("account2 balance: $%10.2f%n",
                new Object[] {new Double (account2.getBalance())});
        
        System.out.print("Enter deposit amount for account2: ");
        depositAmount = input.nextDouble();
        System.out.printf("%nAdding $%.2f to account1 balance%n%n",
                new Object[] {new Double (depositAmount)});
        account2.credit(depositAmount);
        
        System.out.printf("account1 balance: $%10.2f%n", 
                new Object[] {new Double (account1.getBalance())});
        System.out.printf("account2 balance: $%10.2f%n",
                new Object[] {new Double (account2.getBalance())});
        
    }

}

[ pecos @ 10.01.2007. 19:59 ] @
Dodatak

Sledeci kod

Code:


System.out.printf("account2 balance: $%10.2f%n", account2.getBalance());



prijavljuje gresku

Code:


The method printf(String, Object[]) in the type PrintStream is not applicable for the arguments (String, double)



Hvala
[ djalfirevic @ 10.01.2007. 20:14 ] @
Postuj klasu Account...
[ SluX @ 10.01.2007. 20:15 ] @
Sta ti vraca getAccountBalance()?Imam neki feeling da vraca float(primitivan tip u svakom slucaju), a ti ga koristis na mestu gde se ocekuje niz objekata. I sam si vec ispisao resenje:
Code:
 System.out.printf("account2 balance: $%10.2f%n",
                new Object[] {new Double (account2.getBalance())});


;)
[ pecos @ 10.01.2007. 20:35 ] @
Hvala!

Samo sam hteo da potvrdim da je primer iz knjige lose napisan.

U klasi Account su sve primitivne varijable.
[ pecos @ 12.01.2007. 07:49 ] @
Dodatak - resen problem pa ako nekoga interesuje resenje...

Pod Javom 5 mogu da se koriste i primitivne varijable za formatiranje teksta.

Problem je bio kod Workspace Settings u Eclipse-u, tamo je postavljena "kompatibilnost" sa prijasnjim verzijama (1.4).

Ko god ima problema sa Java 5 i 6 "novitetima" u Eclipse-u samo treba da "postavi" kompatibilnost.
[ SluX @ 12.01.2007. 07:57 ] @
Da...vrlo me je zacudilo sto ima samo takva debilna metoda...prosto mi nije licilo na javu....nisam se mnogo bavio formatiranim ulazom u javi doduse...korisno, ali ne preterano ;)