Java 109

[객체지향][열거형] - 열거형(enum)

https://youtu.be/ODHC-n4mpMY?list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp 📖본 포스팅은 '자바의 정석 - 남궁성 저자' 님의 책과 유튜브 강의를 보고 작성되었습니다. [열거형 enum] 관련된 상수들을 같이 묶어 놓은 것을 의미한다. Java는 타입에 안전한 열거형을 제공한다. C언어와 다르게 값과 타입을 모두 체크해준다. if(Card.CLOVER ==Card.TWO) 값은 같지만 타입이 달라서 컴파일 에러를 내준다. 열거형 상수는 객체이기 때문에 compareTo( )와 equals를 사용해야 한다. 또 예외적으로 ==도 허용된다. [일반적으로 작성한 경우] class Card{ static final int CLOVER = 0; static fina..

Java/객체지향 2022.02.21

[객체지향][제네릭스] - 제네릭 형변환

📖본 포스팅은 '자바의 정석 - 남궁성 저자' 님의 책과 유튜브 강의를 보고 작성되었습니다. https://youtu.be/8Ti7Beaq62A?list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp [제네릭 타입의 형변환] 제네릭 타입과 원시 타입 간의 형변환은 바람직하지 않다. (경고 발생) 와일드 카드가 사용된 제네릭 타입으로는 형변환이 가능하다. [제네릭 타입의 제거] 컴파일러는 제네릭 타입을 제거하고, 필요한 곳에 형변환을 넣는다 1. 제네릭 타입의 경계(bound) 제거 2. 제네릭 타입 제거 후에 타입이 불일치하면, 형변환을 추가 3. 와일드 카드가 포함된 경우, 적잘한 타입으로 형변환 추가

Java/객체지향 2022.02.20

[객체지향][제네릭스] - 제한된 제네릭 클래스, 제네릭스의 제약

📖본 포스팅은 '자바의 정석 - 남궁성 저자' 님의 책과 유튜브 강의를 보고 작성되었습니다. https://youtu.be/3nmfoPeOgoA?list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp [제한된 제네릭 클래스] extends로 대입할 수 있는 타입을 제한 (상속을 이용한 제한) package javajungsuk; import java.util.ArrayList; class Fruit implements Eatable{ public String toString() { return "Fruit"; } } class Apple extends Fruit { public String toString() { return "Apple"; } } class Grape extends Fr..

Java/객체지향 2022.02.16

[객체지향][제네릭스] - Iterator, HashMap과 제네릭스

📖본 포스팅은 '자바의 정석 - 남궁성 저자' 님의 책과 유튜브 강의를 보고 작성되었습니다. https://youtu.be/Ys6rCjVVmGo?list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp [Iterator와 제네릭스] [형변환이 필요 없는 경우의 코드 1] package javajungsuk; import java.util.ArrayList; import java.util.Iterator; public class Java12_2 { public static void main(String[] args) { ArrayList list = new ArrayList(); list.add(new Student("자바왕",1,1)); list.add(new Student("자바짱",1,..

Java/객체지향 2022.02.16

[객체지향][제네릭스] - 25. 제네릭스와 타입변수

📖본 포스팅은 '자바의 정석 - 남궁성 저자' 님의 책과 유튜브 강의를 보고 작성되었습니다. https://youtu.be/VJheFhw_fmU?list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp [타입 변수란?] 클래스를 작성할 때, Object 타입 대신 타입 변수(E)를 선언해서 사용 T 혹은 E를 많이 사용한다. 객체를 생성시, 타입 변수(E) 대신 실제 타입(Tv)을 지정(대입) ArrayList tvList = new ArrayList( ); 타입 변수 대신 실제 타입이 지정되면, 형변환 생략 가능. [실습] package javajungsuk; import java.util.ArrayList; class Tv{} class Audio{} public class Generi..

Java/객체지향 2022.02.14

[객체지향][제네릭스] - 24. 제니릭스란?

https://youtu.be/QcXLiwZPnJQ?list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp 📖본 포스팅은 '자바의 정석 - 남궁성 저자' 님의 책과 유튜브 강의를 보고 작성되었습니다. [제네릭스란?] 컴파일시 타입을 체크해주는 기능이다.. 형변환 에러가 컴파일 에러로 나타날 수 있게 끌어온 것이 제네릭스다. 객체의 타입 안정성을 높이고 형변환의 번거로움을 줄여준다.(동일 타입만 넣어두기 때문에 형변환이 불필요한 것이다.) [형변환 에러 - 실행 시 발생에러의 경우] package javajungsuk; import java.util.ArrayList; public class GenericTest { public static void main(String[] args) { ..

Java/객체지향 2022.02.14

[객체지향][자바의 정석] - 23. Collections 클래스, 컬렉션 클래스 요약

https://youtu.be/u0pJGFyvrqc?list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp 📖본 포스팅은 '자바의 정석 - 남궁성 저자' 님의 책과 유튜브 강의를 보고 작성되었습니다. 1. Collections란? - 컬렉션을 위한 메서드(static)를 제공한다. 컬렉션 채우기, 복사, 정렬, 검색 - fill( ), copy( ), sort( ), binarySearch( ) 등 컬렉션의 동기화 - synchronizedXXX( ) List syncList = Collections.synchronizedList(new ArrayList(...)); 변경불가 컬렉션 만들기(readOnly) - unmodifiableXXX( ) 싱글톤 컬렉션 만들기 - singletonX..

Java/객체지향 2022.02.13

[객체지향][자바의 정석] - 22. HashMap

https://youtu.be/el6cTtPHVRs?list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp 📖본 포스팅은 '자바의 정석 - 남궁성 저자' 님의 책과 유튜브 강의를 보고 작성되었습니다. 1. HashMap의 주요메서드 2.실습 [HashMap을 사용하여 id와 password를 key와 value를 사용해서 찾는 코드] package javajungsuk; import java.util.HashMap; import java.util.Scanner; public class Ex11_16 { public static void main(String[] args) { HashMap map = new HashMap(); map.put("myId","1234"); map.put("as..

Java/객체지향 2022.02.13

[객체지향][자바의 정석] - 21. TreeSet

https://youtu.be/_4EF-26Ke3o?list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp https://www.youtube.com/watch?v=Kcz-z6xTbgk&list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp&index=131 📖본 포스팅은 '자바의 정석 - 남궁성 저자' 님의 책과 유튜브 강의를 보고 작성되었습니다. 1. TreeSet - 범위 탐색, 정렬 이진 탐색 트리(Binary search tree)로 구현 범위 탐색과 정렬에 유리하다. 이진 트리는 모든 노드가 최대 2개의 하위 노드를 갖는다. (0~2개까지의 하위노드) 각 요소(node)가 나무(tree) 형태로 연결(LinkedList의 변형 - 얘는 1개만 그러나 트리셋은 하..

Java/객체지향 2022.02.03