2012-01-13 5 views
24
class Point { 

    BigDecimal x; 
    BigDecimal y; 

    Point(double px, double py) { 

    x = new BigDecimal(px); 
    y = new BigDecimal(py); 
    } 

    void addFiveToCoordinate(String what) { 

    if (what.equals("x")) { 
     BigDecimal z = new BigDecimal(5); 
     x.add(z); 
    } 
    } 

    void show() { 

    System.out.print("\nx: " + getX() + "\ny: " + getY()); 
    } 

    public BigDecimal getX() { 

    return x; 
    } 

    public BigDecimal getY() { 

    return y; 
    } 

    public static void main(String[] args) { 

    Point p = new Point(1.0, 1.0); 
    p.addFiveToCoordinate("x"); 
    p.show(); 
    } 
} 

ठीक है, मैं 2 बिगडिमेमल मान जोड़ना चाहता हूं। मैं युगल के साथ कन्स्ट्रक्टर का उपयोग कर रहा हूं (कारण मुझे लगता है कि यह संभव है - दस्तावेज़ीकरण में एक विकल्प है)। अगर मैं मुख्य वर्ग में इसका इस्तेमाल करते हैं, मैं इस मिल:2 बिगडिमेमल मान

z: 5 

उत्तर

56

BigDecimal अपरिवर्तनीय है:

x: 1 
y: 1 

मैं जब मैं System.out.print का उपयोग अपने z चर दिखाने के लिए इस मिलता है। हर आपरेशन आपरेशन के परिणाम से युक्त एक नया उदाहरण प्रस्तुत करती है:

BigDecimal sum = x.add(y); 

आप एक्स बदलना चाहते हैं, तो आप इस प्रकार को समझने में मदद करता है

x = x.add(y); 

वास्तव में the javadoc पढ़ना क्या करना है कि कैसे एक वर्ग और उसके तरीकों काम।

BigDecimal z = new BigDecimal(5).add(x); 

BigDecimal का हर आपरेशन एक नया BigDecimal रिटर्न लेकिन मौजूदा उदाहरण में परिवर्तन नहीं:

5

शायद यह है कि तुम क्या पसंद करते हैं है।

संबंधित मुद्दे