2017-01-17 3 views
0

int変数の基本プログラムに整数のカンマ($ 40,000対$ 40000)を追加しようとしています。数値形式のオプションを追加する

私は現在system.out.println()で使用しています。

これを早くまたはよりスムーズに実装する方法はありますか?

import java.text.NumberFormat; 
import java.util.Locale; 

public class Employee { 

private String name; 
private int salary; 
private int bonus; 

public Employee(String theirName, int theirSalary, int plusBonus) { 
    name = theirName; 
    salary = theirSalary; 
    bonus = plusBonus; 
} 

public String gettheirname() { 
    return name;} 

public int gettheirSalary() { 
    return salary;} 

public int getplusBonus() { 
    return bonus;} 


public static void main(String[] args) { 
    Employee e1 = new Employee("Liberty Zapata", 40000, 500); 
    System.out.println("ZIG Payroll"); 
    System.out.println("\t-----------\t Employee \t-----------\t"); 
    System.out.println("Employee name:" + e1.gettheirname()); 
    System.out.println("Salary before bonus: $" + NumberFormat.getNumberInstance(Locale.US).format((e1.gettheirSalary()))); 
    System.out.println("Bonus: $" +e1.getplusBonus()); 
    System.out.println("Salary plus bonus: $" + NumberFormat.getNumberInstance(Locale.US).format((e1.getplusBonus()+ e1.gettheirSalary()))) ; 
} 


} 

答えて

0

確かに、例えば、クラスEmployeetoString表現に追加し、それを使用することができます。

@Override 
public String toString() { 
    return 
      "Employee name:" + name + "\n" + 
      "Salary before bonus: $" + NumberFormat.getNumberInstance(Locale.US).format(salary) + "\n" + 
      "Bonus: $" + bonus + "\n" + 
      "Salary plus bonus: $" + NumberFormat.getNumberInstance(Locale.US).format(bonus + salary); 
} 

使用法:

public static void main(String[] args) { 
    Employee e1 = new Employee("Liberty Zapata", 40000, 500); 
    System.out.println("ZIG Payroll"); 
    System.out.println("\t-----------\t Employee \t-----------\t"); 
    System.out.println(e1) ; // <--- here, now it's simple! 
} 

OUTPUT

ZIG Payroll 
    ----------- Employee ----------- 
Employee name:Liberty Zapata 
Salary before bonus: $40,000 
Bonus: $500 
Salary plus bonus: $40,500 
+0

助けてくれてありがとう! @Overrideはここでどのように機能しますか? –

+0

@HMartinez '@ Override'アノテーションは、このメソッドが親クラス(この場合はObject)内のメソッドをオーバーライドしていることをコンストラクタに指示するだけです。これはあなたの足を撃たれないようにするためのものです。たとえば、親のメソッドのシグネチャが違うなど、このアノテーションを不当に使用している場合、コンパイラは失敗し、明確なエラーメッセージが表示されます。 – alfasin

関連する問題