c3
의 값이 ClassOne
이고 ClassTwo
인 경우 해당 개체의 동일한 인스턴스로 간주되는지 알고 싶습니다. 나는 별도의 스레드에서 두 클래스의 ClassThree
의 check()
메서드를 호출하고 서로 간섭 하는지를 알고 싶습니다.다른 클래스에 객체의 인스턴스를 전달하면 해당 객체의 동일한 인스턴스로 간주됩니까?
public class ClassOne{
private ClassThree c3 = new ClassThree();
public ClassOne(){}
public void passThreeToTwo{
ClassTwo.setC3(c3);
}
}
//------------------------------------------------------*
public class ClassTwo{
private static ClassThree c3 = null;
public ClassTwo(){}
public static void setC3(ClassThree c3){
this.c3 = c3;
}
}
//------------------------------------------------------*
public class ClassThree{
public ClassThree(){}
public synchronized check(){}
}
public static void main(String[] args){
ClassOne c1 = new ClassOne();
C1.passThreeToTwo();
}
희망적인 예와 질문이 있습니까?
분명히 당신은 자바를 배우고 있습니다. 앞으로 객체의 특정 인스턴스가 동일한 객체 참조 (동일한 위치를 가리키고 있는지)를 알고 싶다면 '=='연산자를 사용하여 동등성을 검사하기 만하면됩니다. 따라서'obj1 == obj2'가'true'를 반환하면, 그들은 같은 객체 참조입니다. 이 검사가 실패하면 (false를 반환) 동일한 위치를 가리키고 있지 않지만 동일한 값을 유지할 수 있습니다. 이를 확인하려면 객체를 "들여다보고"값의 동일성을 위해 데이터 멤버를 검사해야합니다. – hfontanez
@hfontanez 오 죄송합니다, 오늘이 사실을 알게되었습니다. 감사합니다 – Devavrata
@Devavrata, 나는 당신의 유감스럽게 생각하지만 나는 기울이지 않습니다. – Hozei