Jacobvu84 / selenium-vietnam-training-course

Questions Tracking
7 stars 5 forks source link

#02: Tính bất biến (immutability) và biến đổi (mutability) của tham số #38

Open Jacobvu84 opened 6 years ago

Jacobvu84 commented 6 years ago

Ví dụ 1

package com.ask.collections;

public class CheckPriori {

    public static void main(String[] args) {
        Parent a = new Parent(6);
        Parent b = new Parent(7);

        // Trước khi đổi giá trị. Ngoài hàm swap
        System.out.println(a);
        System.out.println(b);

        swap(a, b);

        // In ra kết quả sau khi đổi giá trị. Ngoài hàm swap
        System.out.println(a);
        System.out.println(b);

    }

    private static void swap(Parent i, Parent j) {

        Parent tmp;

        tmp = i;
        i = j;
        j = tmp;
        // In ra kết quả sau khi đổi giá trị. Trong hàm swap
        System.out.println(i);
        System.out.println(j);
    }

}

class Parent {

    private int value;

    public int getValue() {
        return value;
    }

    public Parent(int value) {
        this.value = value;
    }

    @Override
    public String toString() {
        return "" + getValue();
    }

}

Ví dụ 2

package com.ask.collections;

public class CheckPriori {

    public static void main(String[] args) {
        int a = 6;
        int b = 7;

        // Trước khi đổi giá trị. Ngoài hàm swap
        System.out.println(a);
        System.out.println(b);

        swap(a, b);

        // In ra kết quả sau khi đổi giá trị. Ngoài hàm swap
        System.out.println(a);
        System.out.println(b);

    }

    private static void swap(int i, int j) {

        int tmp;

        tmp = i;
        i = j;
        j = tmp;
        // In ra kết quả sau khi đổi giá trị. Trong hàm swap
        System.out.println(i);
        System.out.println(j);
    }

}

Ví dụ 3

package com.ask.collections;

public class CheckPriori {

    public static void main(String[] args) {

        Parent a = new Parent(6);
        Parent b = new Parent(7);

        // Trước khi đổi giá trị. Ngoài hàm swap
        System.out.println(a);
        System.out.println(b);

        swap(a, b);

        // In ra kết quả sau khi đổi giá trị. Ngoài hàm swap
        System.out.println(a);
        System.out.println(b);

    }

    private static void swap(Parent i, Parent j) {

        int tmp;

        tmp = i.getValue();
        i.setValue(j.getValue()); 
        j.setValue(tmp);

        // In ra kết quả sau khi đổi giá trị. Trong hàm swap
        System.out.println(i);
        System.out.println(j);

    }

}

class Parent {

    private int value;

    public int getValue() {
        return value;
    }

    public void setValue(int value) {
        this.value = value;
    }

    public Parent(int value) {
        this.value = value;
    }

    @Override
    public String toString() {
        return "" + getValue();
    }

}

Kết quả in ra trong mỗi ví dụ là gì ? Giải thích ?

Jacobvu84 commented 6 years ago

Đáp Án