하루 일과정리 221202

William Parker·2022년 12월 2일

하루 일과 정리

박정훈

주제:남궁성 자바의정석 7-3,4(포함관계), 7-29,30 여러 객체를 배열로 다루기, 인터페이스

배운것:

1.클래스간의 포함관계

Untitled

Circle circle = new Circle(); → circle.(Point)c.x or circle.(Point)c.y

포함관계 : ‘~은~을 가지고 있다.(has-a)’

상속관계 : ‘~은~을 이다.(is-a)’ extends

Untitled

원(Circle)은 점(Point)이다. - Circle is a point.

원(Circle)은 점(Point)을 가지고있다. - Circle has a Point.

90%이상이 포함 관계이다.! 상속은 제약이 있어 꼭 필요 할 때만.

잘 모르면 포함으로 진행해라. 대부분 포함이다.

매개변수 다형성

class Product {
	int price;
	int bonusPoint;
	
	Product(int price) {
			this.price = price;
			bonusPoint = (int)(price/10.0);
	}
	Product() {}//기본생성자
}

class Tv1 extends Product
		Tv() {
	super(100)
}
	pulbic String toString() {
	return "Tv";
}
class Computer extends Product
		Compupter() {
	super(200)
}
	pulbic String toString() {
	return "Computer";
}
Class Buyer {
	int money = 1000;
		int bonusPoint = 0;int i = 0;
	Product[] cart = new Product[10];
}
		 void buy(Product p) {
				if(money< p.price) {
					System.out.println("잔액부족");
					return;
					}
					money-= p.price;
					bonusPoint += p.bonusPoint;
					cart[i++] = p;
}

			void summary() {
				int sum = 0;
				String itemList = "";
				
				for(int i=0; i<cart.length;i++) {
					if(cart[i]==null) break;
					sum += cart[i].price;
					itemList += cart[i] + ",";
					}
			System.out.println(sum + itemList)
	  }
}

public static void main(String args[]) {
	Buyer b = new Buyer();
	
	b.buy(new Tv1());
	b.buy(new Computer());
	b.summary();
	

}

인터페이스는 다중 구현이 가능 , 충돌해도 문제 없음!

내용이 없어서 인터페이스는 다중 구현이 가능하다.

다중상속의 문제 : 같은 메소드가 있을때 어떤걸 사용해야 할 지 모른다.

public abstact가 생략 , 추상메소드 집합이 인터페이스

Walkable void run(), Runnable void run()

미완성 클래스 → 구현을 통해서 추상 메서드를 완성 하는 것.

다형성 : 조상 참조변수로 자손객체를 가르키는 것

Tv t = new SmallTv();

Untitled

매개변수에 타입이 인터페이스인 경우는 해당 인터페이스를 구현한 클래스의 인스턴스만 가능하다!

Fightable로 구현한 객체만 받겠다는 뜻

반환타입이 인터페이스인 경우

Untitled

리턴타입이 인터페이스인 경우는 해당 인터페이스를 구현한 클래스의 객체를 반환하겠다는 의미이다.

메소드를 호출한 쪽 에서는 반환타입과 일치하는 변수의 결과

Figable = new Fighter의 타입이 일치해야한다.! fighter가 fighterable 로 형변환가능 업캐스팅!!!

Untitled

Fightable fight = new Fighter이 성립된다

Untitled

오버라이딩 규칙 → 조상보다 접근제어자가 좁으면 안된다.

Untitled

인터페이스로 다형성이 가능하다.!

한부모 여러 자식!! 다형성.! 추상화!

반환타입이 파이터블일때는 파이터블을 구현한 객체를 반환한다.

Untitled

-두대상 간의 연결 대화 소통을 돕는 중간 열학을 한다.

-변경에 유리

-선언(설계)와 구현을 분리시킬 수 있게한다.

기계의 껍데기가 인터페이스

사람- 윈도우 (GUI)그래픽유저인터페이스- 컴퓨터

Untitled

-껍데기와 알맹이를 분리가능한다.

Untitled

-인터페이스 덕분에 B가 변경되어도 A는 안바꿀수 있게 된다.

Untitled

고객 → 진동벨(인터페이스) → 아줌마호출 아줌마1,아줌2,아줌3

리스트의 경우 for문을 사용해서 어떤 값을 뽑아내고 그 값을 변수를 하나 설정해서 add해주고

그 값을 뽑아내서 return 해주면 된다. for문안에 return 금지!

스트림을 쓰는 이유 : 병렬처리가 가능하고 유지보수가 쉽다.

병렬처리: 여러가지 일을 한번에 수행하는 것.

System.*exit*(0); 정상종료!

System.*exit*(1); 강제종료!

profile
Developer who does not give up and keeps on going.

0개의 댓글