개발/KH국비지원과정

[KH국비지원 웹개발자 과정] Day_20 키워드 OOP실습, sort메소드, 제네릭 관련 등

mabb 2022. 7. 8. 17:02
반응형

 안녕하세요. 삶의 질을 높이고자 노력하는 영차영차입니다.
드디어 국비지원 학원을 다니며 공부에 전념을 할 수 있게 되었습니다.
해당 포스팅은 강의 복기용으로 키워드를 기록하는 용도의 포스팅입니다.
--------------------------------------------------------------------------------------------------

OOP실습 마무리)

controller, view, model, run 으로 클래스를 나누어 기능을 구현하는 Music예제

ArrayList 객체 추가, 정렬, 수정, 삭제, 조회

Collections.sort() 메소드의 매개변수 List<T> 해당 매개변수 타입 클래스는 Comparable인터페이스를 구현하여야함.

sort메소드는 필드가 한 개인 경우 기본적으로 오름차순으로 정렬을 한다. compareTo() 메소드를 오버라이드하여 원하는 필드값끼리 비교하여 정렬하도록 수정할 수 있다.

sort()의 매개변수에 List<Music> 타입을 넣으면 컴파일에러가 나오면서 형변환을 추천함. 수업 시에는 제네릭으로 타입으로 정의한 것을 모두 Object타입으로 변경하여 컴파일 에러를 피했음.
-> 정렬을 하려고 제네릭을 사용하지 않는 점이 이상하였으나 수업 마지막에 다시 제네릭을 추가함. Object로 사용하는 경우를 보여주려 한 것으로 보이나 수업 중 혼란스러웠음.

Comparable 인터페이스의 compareTO 메소드 오버라이드

Comparator 인터페이스의 compare 메소드 오버라이드

내림차순 시 sort메소드에 Comparator 객체를 매개변수로 추가한다.

-> 수업에서는  여기서 구현 클래스를 생성하여 진행하였으나 익명구현객체를 만들어 사용하는 것도 편리해보임.

첫글자를 char로 잘라서 비교한 경우 앞글자가 같은 경우끼리는 정렬이 되지 않는 문제가 발생.

실무에서는 레거시 코드? 회사에서 만들어 놓은 코드를 사용함.  간단하면서 쉽고 성능이 좋은 것을 위주로 실 사용한다고 함.

AWS RDS 알아보기

백준 풀어보기

----------------------------------------------------------------------------------------------------
제네릭을 알아보던 중 잘 정리된 포스팅 발견.

제네릭 타입을 선언할 때 클래스 선언시 <> 안에 어떤 단어가 들어가도 상관 없습니다. 그렇지만 자바에서 정한 규칙은 아래와 같습니다.

E : 요소(Element, 자바 컬렉션(Collection)에서 주로 사용됨
K : 키
N : 숫자
T : 타입
V: 값
S, U, V : 두 번째, 세 번째, 네 번째에 선언된 타입

<Object>와 <?>의 차이.
<Object>는 말 그대로 Object타입으로만 가능. Object의 하위객체가 허용되지 않음.
제네릭은 지정한 타입으로만 허용하고 그 상위클래스나 하위클래스타입으로 사용하기 위해서는 와일드카드 <?extends T>, <?super T> 등으로 선언하여야 한다.

출처:https://devlog-wjdrbs96.tistory.com/338

 

[Java] 자바에서 Generic 이란 무엇일까?

제네릭(Generic)이란? 자바의 제네릭(Generic) 은 형 변환시에 발생할 수 있는 문제들을 사전에 없애기 위해서 만든 것입니다. 아직은 어떤 말인지 와닿지 않을 수 있습니다. 바로 예제 코드를 보면서

devlog-wjdrbs96.tistory.com

 

연습할 것.
model , view, controller 로 클래스를 구분하여 
모의 게시판을 구현해보기.
CRUD 를 구현하고 DB가 없으니 txt파일로 save 및 load.

 

 

반응형