뇌를 자극하는 자바 프로그래밍 p655에서요


import java.io.*;

class ObjectOutputExample5{

public static void main(String args[])

  objectOutputStream out = null;

  try{

out = neew ObjectOutputStream{

new FileOutputStream("Output5.dat");

DistrChart obj = new DistrChart();

obj.arr[0][1] = 2;

obj.arr[4][5] = 5;

obj.arr[6][1] = 2;

obj.arr[7][7] = 7;

obj.arr[8][4] = 21;

out.writeObject(obj);

}

catch(IOException ioe)[

     System.out.println("파일로 출력할 수 없습니다."):

}


.....하략


객체를 직렬화할 때 out의 WriteObject 메쏘드를 사용하고 있는데요.


여기서 obj는 Serializable 인터페이스를 구현하는 클래스인 DistrChart의 객체잖아요.


근데 여기서보면 out의 WriteObject 메쏘드를 호출했을 때 DistrChart의 WriteObject가 호출되는 것 같은데 어떻게 이게 가능한가요?


더군다나 DistrChart의 WriteObject는 private이라 외부에서 호출도 불가능할텐데요.