이것이 자바다 개정판 6장 연습문제

고태경·2023년 7월 2일

1. 객체와 클래스에 대한 설명으로 틀린 것

3번 하나의 클래스로 하나의 객체만 생성할 수 있다.

2. 클래스의 구성 멤버가 아닌 것

4번 로컬 변수

3. 필드, 생성자, 메소드에 대한 설명으로 틀린 것

4번 클래스는 반드시 필드와 메소드를 가져야 한다.

4. 필드에 대한 설명으로 틀린 것

3번 필드는 반드시 생성자 선언 전에 선언되어야 한다.

5. 생성자에 대한 설명으로 틀린 것

1번 객체를 생성하려면 생성자 호출이 반드시 필요한 것이 아니다.

6. 메소드에 대한 설명으로 틀린 것

4번 메소드 이름은 중복해서 선언할 수 없다.

X 예시로 메소드 오버로딩이 있음

7. 매소드 오버로딩에 대한 설명으로 틀린 것

2번 반드시 리턴 타입이 달라야 한다.

X 리턴 타입 무관

8. 인스턴스, 정적 멤버에 대한 설명으로 틀린 것

2번 인스턴스 필드는 생성자 및 정적 블록에서 초기화 될 수 있다.

정적 메소드와 정적 블록은 객체가 없어도 실행된다는 특징 때문에 내부에 인스턴스 필드나 인스턴스 메소드를 사용할 수 없다, 또한 객체 자신의 참조인 this도 사용할 수 없다. p.249

9. final 필드와 상수에 대한 설명으로 틀린 것

2번 final 필드와 상수는 생성자에서 초기화 될 수 있다.

정적(statix) 필드는 객체 생성 없이도 사용할 수 있기 때문에 생성자에서 초기화 작업을 하지 않음
생성자는 객체가 셍성된 후 실행되기 때문 -> 상수는 불가능
final 필드는 가능

10. 패키지에 대한 설명으로 틀린 것

4번 com.mycom 패키지에 소속된 클래스는 com.yourcom에 옮겨 놓아도 동작한다.

클래스 앞에는 패키지명이 생략되어있다. 즉, 옮기면 동작을 안한다.

11. 접근 제한에 대한 설명으로 틀린 것

3번 default 접근 제한은 해당 클래스 내부에서만 사용을 허가한다.

private에 대한 설명이다.

12. ()안에 적어보기

  1. 필드
  2. 생성자
  3. 메소드

13. Member 클래스를 선언해보기, 14. 생성자 선언

	public class Member {
		public String name;
        public String id;
        public String password;
        public int age;
        
        public Member(String name, String id) {
        	this.name = name;
            this.id = id;
        }
	}

15. 조건에 맞는 클래스 및 메소드 선언

public class MemberService {	
		String id = "hong";
		String password = "12345";
		p303_no14 member = new p303_no14(id, password);
		boolean login(String id, String password) {
			this.id = id;
			this.password = password;
			if(id.equals("hong") && password.equals("12345"))
				return true;
			else
				return false;
		}
		
		void logout(String id) {
			this.id = id;
			System.out.print(id + "님이 로그아웃 되었습니다.");
		}
		
		
}

16. println() 메소드 오버로딩 하기

	public class Printer {
	public void println(int a) {
		System.out.println(a);
	}
	public void println(boolean a) {
		System.out.println(a);
	}
	public void println(double a) {
		System.out.println(a);
	}
	public void println(String a) {
		System.out.println(a);
	}
}

17. 객체 생성 않고 호출하도록 Printer 클래스 수정

-> 메소드 리턴 타입 앞에 static을 붙인다.

18. ShopService 클래스 작성

	public class p305_no18 {
	private static ShopService shopservice = new ShopService();
	
	private ShopService() {
		
	}
	
	public ShopService getInstance() {
		return shopservice;
	}
}

19. Account 클래스 작성

	public class Account {
	
	public final static int MAX_BALANCE = 1000000;
	public final static int MIN_BALANCE = 0;
	int balance = 0;

	public int getBalance() {
		return balance;
	}

	public void setBalance(int balance) {
		if(MIN_BALANCE <= balance && balance <= MAX_BALANCE) 
			this.balance = balance;
	}
}

20. BankApplication 클래스 작성

추후 작성.... p306

profile
컴퓨터정보과

0개의 댓글