java怎么改變傳入?yún)?shù)的值

小億
286
2023-12-01 13:59:33

Java中的方法參數(shù)都是按值傳遞的,而不是按引用傳遞的。這意味著在方法內(nèi)部對(duì)參數(shù)的修改不會(huì)影響到方法外部的變量。

如果想要在方法內(nèi)部修改傳入?yún)?shù)的值,可以使用以下方法:

  1. 傳遞一個(gè)可修改的對(duì)象作為參數(shù):將需要修改的值封裝在一個(gè)對(duì)象中,然后傳遞該對(duì)象作為參數(shù)。在方法內(nèi)部可以通過(guò)修改對(duì)象的屬性來(lái)改變參數(shù)的值。

    public class ValueWrapper {
        private int value;
    
        public int getValue() {
            return value;
        }
    
        public void setValue(int value) {
            this.value = value;
        }
    }
    
    public void modifyValue(ValueWrapper wrapper) {
        wrapper.setValue(10);
    }
    
    public static void main(String[] args) {
        ValueWrapper wrapper = new ValueWrapper();
        wrapper.setValue(5);
    
        modifyValue(wrapper);
    
        System.out.println(wrapper.getValue());  // 輸出 10
    }
    
  2. 返回修改后的值:將方法的返回類(lèi)型設(shè)置為需要修改的值的類(lèi)型,并通過(guò)return語(yǔ)句返回修改后的值。在方法調(diào)用處可以將返回值賦給原始變量。

    public int modifyValue(int value) {
        value = 10;
        return value;
    }
    
    public static void main(String[] args) {
        int value = 5;
    
        value = modifyValue(value);
    
        System.out.println(value);  // 輸出 10
    }
    

注意,雖然無(wú)法直接修改傳入?yún)?shù)的值,但可以通過(guò)修改對(duì)象的屬性或返回修改后的值來(lái)達(dá)到相同的效果。

0