개발의 시작과 끝

2020.05.03 / Day - 21 자바 8~10일차 복습 본문

풀스택/자바 공부, 복습

2020.05.03 / Day - 21 자바 8~10일차 복습

개발지혜 2020. 5. 3. 14:55

21일차

8일 - 래퍼런스 변수, 인스턴스 메서드, 매개변수, 리턴

래퍼런스 변수
자동차 a자동차
> 자동차 리모컨을 저장할 수 있는 변수 'a자동차' 
  여기서 리모컨을 전문 용어로 '래퍼런스 변수'라고 한다.
  
 인스턴스 메서드
 객체를 생성해야만 호출할 수 있는 메서드이다.
 거북이 a거북이 = new 거북이();
 a거북이.걷다();
 
 매개변수
 인자를 받는 변수
 void 계산(int a) {
 	System.out.println(a);
 }
 
 리턴
 값을 변환하여 돌려주는 함수
 int 더하기(int a, int b) {
 	return a + b;
 }
 void를 쓰지 않고 타입을 쓴다.

 

9일 - 객체에 편리한 함수 넣어두기

class Main {
	public static void main(String[] args) {
		ScheduleItem scheduleItem1 = new ScheduleItem();
		scheduleItem1.name = "soccer";
		scheduleItem1.year = 2020;
		scheduleItem1.month = 5;
		scheduleItem1.day = 11;
		
		ScheduleItem scheduleItem2 = new ScheduleItem();
		scheduleItem2.name = "soccer";
		scheduleItem2.year = 2020;
		scheduleItem2.month = 5;
		scheduleItem2.day = 11;
		
		System.out.println("== isEarlierThan(v1) ==");
		if ( scheduleItem1.isEarlierThan(scheduleItem2) ) {
			System.out.println("스케줄 아이템 1이 2 보다 빠릅니다.");
		}
		else {
			System.out.println("스케줄 아이템 1이 2 보다 빠르지 않습니다.");
		}
		
		System.out.println("== isEarlierThan(v2) ==");
		if ( scheduleItem1.isEarlierThanV2(scheduleItem2) ) {
			System.out.println("스케줄 아이템 1이 2 보다 빠릅니다.");
		}
		else {
			System.out.println("스케줄 아이템 1이 2 보다 빠르지 않습니다.");
		}
	}
}
class ScheduleItem {
	String name;
	int year;
	int month;
	int day;
	boolean isEarlierThan(ScheduleItem other) {
		if ( this.year < other.year ) {
			return true;
		}
		else if ( this.year > other.year ) {
			return false;
		}
		
		if ( this.month < other.month ) {
			return true;
		}
		else if ( this.month > other.month ) {
			return false;
		}
		
		if ( this.day < other.day ) {
			return true;
		}
		else if ( this.day > other.day ) {
			return false;
		}
		
		if ( this.name.compareTo(other.name) < 0 ) {
			return true;
		}
		else {
			return false;
		}
	}
	
	boolean isEarlierThanV2(ScheduleItem other) {
		String thisStr = "" + this.year + this.month + this.day + this.name;
		String otherStr = "" + other.year + other.month + other.day + other.name;
		return thisStr.compareTo(otherStr) < 0;
	}
}

 

10일 - 상속

오리 a오리 = new 오리();

흰오리 a흰오리 = new 흰오리();
a흰오리.날다();


class 오리 {
	void 날다() {
    	System.out.println("오리가 날개로 날아갑니다.");
    }
}

class 흰오리 extends오리 {
	
}

extends를 통해 상위클래스로부터 하위클래스가 상속을 받을 수 있으며
상속을 받으면 상위클래스에 있는 메서드를 그대로 물려받게 된다.
단, 다중상속은 불가능하다.