오늘 한 일
배운 것
- 메소드의 매개 변수의 수를 모를 경우 매개 변수 타입을 배열로 선언하거나 "..."로 선언한다.
int sum1(int[] values) { ... }
int sum2(int ... values) { ... }
int[] values1 = {1,2,3};
sum1(values1);
sum1(new int[] {1,2,3,4});
sum2(1,2,3);
sum2(values1);
- static 메소드나 블록에서는 인스턴스 필드나 메소드를 사용할 수 없다. 사용하고 싶다면 객체를 생성하여 참조 변수로 접근해야 한다.
- default와 protected 차이: 둘 다 일반적으로 다른 패키지의 클래스에서 접근 불가하나 protected는 다른 패키지에 정의된 클래스가 해당 클래스의 자식 클래스인 경우에 한해 접근 허용
- 생성자를 정의하지 않은 경우 기본 생성자의 접근지정자는 클래스의 접근지정자를 따라간다.
- 어노테이션: 컴파일, 실행 과정에서 어떻게 코드를 컴파일하고 처리할지 알려주는 메타데이터(ex. @Override)
- 리플렉션: 런타임 시에 클래스의 메타데이터를 얻는 기능(ex. 클래스.Class.getDeclaredMethods())
내일 할 일