내일배움캠프#9

김한준 Hanjun Kim·2023년 10월 20일
0

내일배움캠프

목록 보기
9/70

개인프로젝트의 로직은 어제 다 짰고, 오늘부터는 수정 및 디버깅을 했다.

다행히 팀원분께서 도와주셔서 치명적인 버그를 4개나 찾았고, 모두 수정 완료 하였다.

  1. 1이나 2 말고 다른걸 입력하면 오류가 났었고
  2. 메인에서도 1~6,0 말고 다른걸 입력하면 오류가 났었으며
  3. 메뉴고를때도 다 선택지가 1, 2 뿐이였다.
  4. 나머지 하나는 프린트문 에서 데이터가 이상하게 나오는 오류였다.

문제는 이 기능들을 수정하느라 코드가 또 더러워졌다.

1 ~ 3번은
String으로 입력받아서 int로 바꾼다음,
그 값이 이상하거나(String이거나) 메뉴보다 많은 수(5)를 입력하면 걸러주도록 처리했다.

4번은
String.format(".1f)을 이용했다

String과 int를 바꿔주는 코드, 그걸 판단하기 위한 if문과 다른 로직이 추가되어서 스스로 짜면서 답답해했다.

주말동안 자바의정석이랑 다른 코드들을 보며 클래스 / 함수를 좀더 잘 활용할 수 있도록 공부해야겠다고 생각하였다!

그리고 평소에도 클래스 / 추상화 / 인터페이스 부분이 헷갈렸었는데, 오후에 튜터님이 강의를 해주신 내용을 잠깐 정리 해 보 았다.


인터페이스는 예시로 <계산기> 라는 틀에서
1. 공학용 계산기
2. 다른 계산기
처럼 두가지 가지로 나뉠 때 쓴다?
추상이랑 똑같지않나

다른점
1. 우선 멤버변수를 가질 수 없다
2. 인터페이스는 다중상속이 된다
3. 추상화 : <일반화된 개념>으로 묶을 때		
    인터페이스 : <행위적 일관성>으로 묶을  때 	(able)
선풍기		/ 회전할 수 있는	/ 기계(바람을쓴다)
헬리콥터		/ 회전할 수 있는	/ 기계(바람을쓴다)
바람개비		/ 회전할 수 있는	/ 종이(바람을쓴다)
		인터페이스             추상화
이럴 때 인터페이스를 쓴다

!기억해두기{
인터페이스는 멤버변수를 가질 수 없다
인터페이스는 다중상속이 된다.
}

인터페이스에서 변수선언하면 무조건 static final이 컴파일과정에서 붙는다
static은 멤버변수가 아니니까 얘는 오브젝트가 아니라 클래스 개념의 변수기 때문에
하지만 인터페이스 안에는 지양
profile
개발이 하고싶은 개발지망생

0개의 댓글