목차
■ 문제1 답: 3번
와플팬 하나로 여러 와플을 찍어낼 수 있다.
■ 문제2 답: 4번
클래스의 구성멤버 3가지는 필드, 생성자, 메소드이다.
■ 문제3 답: 4번
클래스의 구성멤버가 필드, 생성자, 메소드이긴 한데 필수 요소는 아니다. 생성자블록 작성 안해두면 JAVA가 알아서 만들어주고, 메소드가 없어도 괜찮다.
■ 문제4 답: 3번
① ㅇㅇ. 필드는 메소드에서 바로 가져와서 사용할 수 있다. this 쓰면 된다.
② ㅇㅇ. 인스턴스 필드 값은 그냥 선언만 해놓고, 초기화 값은 생성자에서 선언해도 된다.
③ ㄴㄴ. 순서 상관 없다. 필드가 생성자 블록 후에 선언되어도, 생성자는 알아서 필드값 가져다 쓴다.
④ ㅇㅇ. 필드는 초기값을 주지 않더라도 기본값으로 자동 초기화 된다.
■ 문제5 답: 3번
① ㄴㄴ. 객체를 *생성*하는데 생성자 블록이 반드시 필요하지요...
② ㅇㅇ. 생성자 블록이 여러개 있을 수 있는데 (생성자 오버로딩) 다른 생성자 호출할 때, this() 쓸 수 있다.
③ ㅇㅇ. 생성자 블록 작성을 개발자가 안해두면, 컴파일러가 알아서 만들어준다.
④ ㅇㅇ. 외부에서 객체 함부로 생성 못하도록 생성자에 private 제한자 붙일 수 있다.
■ 문제6 답: 4번
메소드 이름은 중복 선언 가능하다. 메소드 오버로딩이라고 부른다.
■ 문제7 답: 2번
메소드 오버로딩은 리턴타입이 다른 것이 아니라, 인풋값(매개변수)가 달라야 한다.
■ 문제8 답: 2번
인스턴스 필드는 정적블록에서 초기화 될 수 없다. 객체 생성 없이 바로 클래스에 접근하여 쓸 수 있다는 장점 때문에, 정적 블록 안에는 인스턴스 필드가 들어가면 안된다. 인스턴스는 객체 생성이 반드시 선행되어야 하니까.
■ 문제9 답: 2번
① final이 붙으면 초기화 후 값이 변경될 수 없다.
② X. final 필드와 상수는 필드에서 선언됨과 동시에 초기값이 지정되야 하고 변하면 안된다. 생성자에서 추후 초기화 불가
③ 상수의 이름은 첫글자 뿐만 아니라 모든 글자가 대문자여야 한다. 예: double PI = 3.141592
④ 상수는 객체 생성 없이 클래스로 바로 접근 가능하다. Math가 클래스 인 경우, Math.PI 라고 바로 가능.
.
■ 문제10 답: 4번
① ㅇㅇ. 패키지는 클래스들을 묶어준다.
② ㅇㅇ. 클래스가 패키지에 소속되려면 위에 패키지 선언을 해야한다.
③ ㅇㅇ. 내가 소속된 패키지 외 클래스를 가져다가 쓰고 싶다면, 그 패키지를 import하면 된다.
④ ㄴㄴ. 패키지가 서로 다르면, 옮겨 심기가 되지 않는다
■ 문제 11 답: 3번
해당 클래스 내부에서만 사용을 허가하는 접근 제한자는 default가 아니라 private다.
■ 문제 12 답:
필드, 생성자, 메소드