자바 - 별명 메커니즘

"할당 작업" = "기본 데이터 형식 은 실제 값 을 저장 합 니 다." 한 대상 을 다른 대상 에 게 할당 합 니 다 "는 인용 을 한 곳 에서 다른 곳 으로 복사 합 니 다. 대상 의 이러한 현상 은 바로" 별명 현상 "입 니 다. 예제:
//: Main.java


class FloatType {
    float f;
}

/** *        */
public class Main {
    public static void main(String[] args) {
        FloatType f1 = new FloatType();
        FloatType f2 = new FloatType();
        f1.f = 4; f2.f = 8;
        System.out.println("f1.f = " + f1.f + ", f2.f = " + f2.f);
        f1.f = 16; f2.f = 32;
        System.out.println("f1.f = " + f1.f + ", f2.f = " + f2.f);
        f1 = f2; //     
        f2.f = 64; //     , f1.f      
        System.out.println("f1.f = " + f1.f + ", f2.f = " + f2.f);
    }
}
/** * Output: * f1.f = 4.0, f2.f = 8.0 * f1.f = 16.0, f2.f = 32.0 * f1.f = 64.0, f2.f = 64.0 *///:~

방법 호출 에서 한 대상 을 매개 변수 로 방법 에 전달 하 는데 사실은 인용 을 전달 하면 별명 현상 이 발생 할 수 있다.
//: Main.java


class FloatType {
    float f;
}

/** *          */
public class Main {
    static void change(FloatType of) {
        of.f = 32;
    }

    public static void main(String[] args) {
        FloatType of = new FloatType();
        of.f = 4;
        System.out.println("of.f = " + of.f);
        change(of); //          
        System.out.println("of.f = " + of.f);
    }
}
/** * Output: * of.f = 4.0 * of.f = 32.0 *///:~

좋은 웹페이지 즐겨찾기