1. 객체와 클래스에 대한 설명으로 틀린 것은 무엇입니까?
- 클래스는 객체를 생성하기 위한 설계도(사진)와 같은 것이다.
- new 연산자로 클래스의 생성자를 호출함으로써 객체가 생성된다.
하나의 클래스로 하나의 객체만 생성할 수 있다.- 객체는 클래스의 인스턴스이다.
2. 클래스의 구성 멤버가 아닌 것은 무엇입니까?
- 필드
- 생성자
- 메소드
로컬 변수
3. 필드, 생성자, 메소드에 대한 설명으로 틀린 것은 무엇입니까?
- 필드는 객체의 데이터를 저장한다.
- 생성자는 객체의 초기화를 담당한다.
- 메소드는 객체의 동작 부분으로, 실행 코드를 가지고 있는 블록이다.
클래스는 반드시 필드와 메소드를 가져야 한다.
ex) 인터페이스, 추상메소드
4. 필드에 대한 설명으로 틀린 것은 무엇입니까?
- 필드는 메소드에서 사용할 수 있다.
- 인스턴스 필드 초기화는 생성자에서 할 수 있다.
필드는 반드시 생성자 선언 전에 선언되어야 한다.- 필드는 초기값을 주지 않더라고 기본값으로 자동 초기화된다.
5. 생성자에 대한 설명으로 틀린 것은 무엇입니까?
객체를 생성하려면 생성자 호출이 반드시 필요한 것은 아니다.- 생성자는 다른 생성자를 호출하기 위해 this()를 사용할 수 있다.
- 생성자가 선언되지 않으면 컴파일러가 기본 생성자를 추가한다.
- 외부에서 객체를 생성할 수 없도록 생성자에 private 접근 제한자를 붙일 수 있다.
6. 메소드에 대한 설명으로 틀린 것은 무엇입니까?
- 리턴값이 없는 메소드는 리턴 타입을 void로 해야 한다.
- 리턴 타입이 있는 메소드는 리턴값을 지정하기 위해 반드시 return문이 있어야 한다.
- 매개값의 수를 모를 경우 "..."를 이용해서 매개 변수를 선언할 수 있다.
메소드의 이름은 중복해서 선언할 수 없다.
ex) 오버로딩
7. 메소드 오버로딩에 대한 설명으로 틀린 것은 무엇입니까?
- 동일한 이름의 메소드를 여러 개 선언하는 것을 말한다.
반드시 리턴 타입이 달라야 한다.- 매개 변수의 타입, 수, 순서를 다르게 선언해야 한다.
- 매개값의 타입 및 수에 따라 호출될 메소드가 선택된다.
8. 인스턴스 멤버와 정적 멤버에 대한 설명으로 틀린 것은 무엇입니까?
- 정적 멤버는 static으로 선언된 필드와 메소드를 말한다.
인스턴스 필드는 생성자 및 정적 블록에서 초기화될 수 있다.- 정적 필드와 정적 메소드는 객체 생성 없이 클래스를 통해 접근할 수 있다.
- 인스턴스 필드와 메소드는 객체를 생성하고 사용해야 한다.
9. final 필드와 상수(static final)에 대한 설명으로 틀린 것은 무엇입니까?
- final 필드와 상수는 초기값이 저장되면 값을 변경할 수 없다.
final 필드와 상수는 생성자에서 초기화될 수 있다.- 상수의 이름은 대문자로 작성하는 것이 관례이다.
- 상수는 객체 생성 없이 클래스를 통해 사용할 수 있다.
10. 패키지에 대한 설명으로 틀린 것은 무엇입니까?
- 패키지는 클래스들을 그룹화시키는 기능을 한다.
- 클래스가 패키지에 소속되려면 패키지 선언을 반드시 해야 한다.
- import문은 다른 패키지의 클래스를 사용할 때 필요하다.
mycompany 패키지에 소속된 클래스는 yourcompany에 옮겨 놓아도 동작한다.
11. 접근 제한에 대한 설명으로 틀린 것은 무엇입니까?
- 접근제한지는 클래스, 필드 생성자, 메소드의 사용을 제한한다.
- public 접근 제한은 아무런 제한 없이 해당 요소를 사용할 수 있게 한다.
default 접근 제한은 해당 클래스 내부에서만 사용을 허가한다.- 외부에서 접근하지 못하도록 하려면 private 접근 제한을 해야 한다.
12. 다음 클래스에서 해당 멤버가 필드, 생성자, 메소드 중 어떤 것인지 빈칸을 채우시오.
정답:
(필드),(생성자),(메소드)
13. 현실 세계의 회원을 Member 클래스로 모델링하려고 합니다. 회원의 데이터로는 이름, 아이디, 패스워드, 나이가 있습니다. 이 데이터들을 가지는 Member 클래스를 선언해보세요.
package member;
public class Member {
String name;
String id;
private String password;
int age;
}
14. 위에서 작성한 Member 클래스에 생성자를 추가하려고 합니다. 다음과 같이 Member 객체를 생성할 때 name 필드와 id 필드를 외부에서 받은 값으로 초기화하려면 생성자를 어떻게 선언해야 합니까?
package member;
public class Member {
String name;
String id;
private String password;
int age;
public Member(String name, String id) {
this.name = name;
this.id = id;
}
Member user1 = new Member("홍길동", "hong");
Member user2 = new Member("강자바", "java");
}
15. MemberService 클래스에 login() 메소드와 logout()메소드를 선언하려고 합니다. login()메소드를 호출할 때에는 매개값으로 id와 password를 제공하고, logout()메소드는 id만 매개값으로 제공합니다. MemberService 클래스와 login(), logout() 메소드를 선언해보세요.
package member;
public class MemberService {
public boolean login(String id, String password){
if(id .equals("hong") && password.equals("12345")){
return true;
}
return false;
}
public void logout(String id){
System.out.println("로그아웃 되었습니다.");
}
}
package member;
public class MemberServiceExample {
public static void main(String[] args) {
MemberService memberService = new MemberService();
boolean result = memberService.login("hong", "12345");
if(result){
System.out.println("로그인 되었습니다.");
memberService.logout("hong");
}else{
System.out.println("id 또는 password가 올바르지 않습니다.");
}
}
}
'개념' 카테고리의 다른 글
[이것이 자바다] chapter.7 - 확인문제 (0) | 2023.01.30 |
---|---|
[이것이 자바다] chapter.6 확인 문제 - 2 (0) | 2023.01.30 |
[이것이 자바다] chapter.5 확인 문제 (0) | 2023.01.20 |
[이것이 자바다] chapter.4 확인 문제 (0) | 2023.01.19 |
[이것이 자바다] chapter.3 확인 문제 (0) | 2023.01.03 |