JAVA/Do it! 자바 프로그래밍 입문

[Do it 자바 프로그래밍 입문] 05 클래스와 객체 1 연습문제

yun.data 2023. 3. 24. 16:52

 

 

Q1. 클래스를 생성할 때 호출하는 생성자는 멤버 변수를 초기화하는데 사용합니다.

 

Q2. 클래스를 생성하여 메모리에 있는 상태를 인스턴스라고 하고 멤버 변수를 다른 말로 인스턴스 변수라고 합니다.

 

Q3. 메소드는 일반 함수에 객체 지향 개념을 추가하여, 클래스 내부에 선언하고 클래스 멤버 변수를 사용하여 클래스 기능을 구현합니다.

 

 

 

Q4. 05-7에서 예제로 나온 myDate와 MyDateTest 클래스를 완성해봅시다.

<My Date 클래스 완성하기>
- day, month, year 변수는 private로 선언
- 각 변수의 get, set 메서드를 public으로 선언
- MyDate(int day, int month, int year) 생성자
- public boolean isVaild() 메서드를 만들어 날짜가 유효한지 확인
- MyDateTest 클래스에서 생성한 MyDate 날짜가 유효한지 확인
class MyDateTest {
    MyDate dete1 = new MyDate(30, 2, 2000);
    System.out.println(date1.isVaild());
    MyDate date2  = new MyDate(2, 10, 2006);
    System.out.prinln(date2.isValid());
[출력 결과]
유효하지 않은 날짜입니다.
유효한 날짜입니다.

 

 

[C5_MyDate.java]

public class C5_MyDate {

	private int day;
	private int month;
	private int year;
	
	public C5_MyDate(int day, int month, int year) {
		this.day = day;
		this.month = month;
		this.year = year;
	}
	
	public String isValid() {
		
		switch(month) {
		case 2:
			if(day < 1 || day > 28) {return "유효하지 않은 날짜입니다.";}
			else {return "유효한 날짜입니다.";}
					
		case 1: case 3: case 5: case 7: case 8: case 10: case 12:
			if (day < 1 || day > 31) {return "유효하지 않은 날짜입니다.";}
			else {return "유효한 날짜입니다.";}
			
		case 4: case 6: case 9: case 11:
			if (day < 1 || day > 30) {return "유효하지 않은 날짜입니다.";}
			else {return "유효한 날짜입니다.";}
			
		default: return "유효하지 않은 날짜입니다.";
		}
	}
}

 

[MyDateTest.java]

public class C5_MyDateTest {
	public static void main(String[] args) {
		C5_MyDate date1 = new C5_MyDate(30, 2, 2000);
		System.out.println(date1.isValid());
		C5_MyDate date2 = new C5_MyDate(2, 10, 2006);
		System.out.println(date2.isValid());
	}
}