4장 클래스와 객체(객체 배열, 생성자, 오버로딩)
실습
사각형(Rectangle) 클래스 완성하기 - 교재 p.235 실습문제 2번 변형아래 소스에서 TODO로 되어 있는 부분의 내용을 채워서, main()이 적절히 동작하도록 만드시오. equals(), in(), overlap()은 모두 true를 리턴하게 됨
https://github.com/jyheo/JavaExercise/blob/master/src/classes/Rectangle.java
- setPoints() - 인자로 받은 x, y 좌표들이 모두 0보다 커야 함
- getWidth() - 가로 길이(x좌표 이용)
- getHeight() - 세로 길이(y좌표 이용)
- getArea() - 면적
- equals() - 인자로 받은 사각형과 위치와 크기가 동일하면 true리턴
- in() - 인자로 받은 사각형 내부에 위치한다면 true리턴
- overlap() -인자로 받은 사각형과 겹치는 부분이 존재한다면 true리턴
이론
https://github.com/jyheo/JavaExercise/blob/master/src/classes/Set.java- 객체 배열 -> 정확히는 객체 레퍼런스의 배열
- Set[] sets = new Set[5];
- this 레퍼런스
- 객체 자신을 가리키기 위한 레퍼런스
- this.array
- this.size
- 생성자(Constructor)
- Set()
- Set(int[] a)
- Set(Set s)
- 생성자에서만 사용 가능한 this()
- 메소드 오버로딩
- addElement(int )
- addElement(int[] )
- 생성자 3개도 오버로딩임
- Garbage collection
- 더이상 참조하는 레퍼런스 변수가 존재하지 않는다면, 즉 어떤 객체를 참조할 방법이 존재하지 않는다면, 쓰레기가 되어 자동으로 처리됨.
- 자바에서는 new로 만든 객체의 소멸에 대해 신경쓸 필요 없음.
실습2
- 앞의 예에서 System.arraycopy() 대신에 사용할 적당한 private 메소드를 만들어서 쓰시오.
- public static Set intersection(Set A, Set B)를 구현하시오.
- Set(int[]) 생성자의 내용에서 인자로 받은 배열을 그대로 복사하지 말고, 집합 원소 중복되지 않게 검사하면서 추가하도록 고치시오. addElement(int[])를 활용하면 됨