java #
-
12 (2) 지네릭스Java 2023. 5. 30. 00:03
Iterator - 클래스를 작성할 때, object타입 대신 T와 같은 타입 변수를 사용 HathMap - 여러 개의 타입 변수가 필요한 경우, 콤마(,)를 구분자로 선언 HashMap map = new HashMap( ); // 생성 map.put(“자바왕”, new Student("자바왕“,1,1,100,100,100)); // 데이터 저장 제한된 지네릭 클래스 - extends로 대입할 수 있는 타입을 제한 - 인터페이스인 경우에도 extends를 사용 지네릭스의 제약 - 타입 변수에 대입은 인스턴스 별로 다르게 가능 Box appleBox = new Box( ); // ok. Apple객체만 저장가능 Box grapeBox = new Box( ); // ok. Grape객체만 저장가능 ① sta..
-
12 (1) 지네릭스Java 2023. 5. 28. 21:22
지네릭스(Generics)란? - 컴파일시 타입을 체크해 주는 기능(compile-time type check) - JDK1.5 >> Tv만 저장하고 싶을 때 Tv로 타입을 지정, Tv만 저장가능 - 객체의 타입 안정성을 높이고 형변환의 번거로움을 줄여줌 (하나의 컬렉션에는 대부분 한 종류의 객체만 저장) >> JDK1.5이후 제네릭 사용. 제네릭을 안써도 되지만 좋은 코드가 아님 타입 변수 - 클래스를 작성할 때, object타입 대신 타입 변수(T or E)를 선언해서 사용. - 객체를 생성시, 타입 변수(T or E) 대신 실제 타입(Tv)을 지정(대입) - 타입 변수 대신 실제 타입이 지정되면, 형변환 생략가능 지네릭스 용어 지네릭 타입과 다형성 - 참조 변수와 생성자의 대입된 타입은 일치해야 한..
-
11 (5) TreeSetJava 2023. 5. 21. 20:41
TreeSet - 범위 검색과 정렬에 유리 - 이진 탐색 트리(binary search tree)로 구현. 범위 탐색과 정렬에 유리. - 이진 트리는 모든 노드가 최대 2개의 하위 노드를 가지고 있다 각 요소(node)가 나무(tree)형태로 연결(LinkedList의 변형) 이진 탐색 트리(binary search tree) - 부모보다 작은 값을 왼쪽 큰 값은 오른쪽에 저장 ※이진 트리에는 부모보다 작은 값, 큰값의 왼쪽 오른쪽 구분이 없다(자식 2개만 있으면 이진 트리) - 데이터가 많아질수록 추가, 삭제에 시간이 더 걸림(비교 횟수 증가) - TreeSet - 데이터 저장과정 boolean add(Object o) ※TreeSet에 7,4,9,1,5의 수선로 데이터를 저장하면, 아래의 과정을 거친..
-
11 (3) Iterator, Enumeration, Map과 IteratorJava 2023. 5. 19. 21:01
Iterator - 컬레션에 저장된 요소들을 읽어오는 방법을 표준화한 것 (List, Set) >> List → Set 잃어 올 때, Iterator를 이용하면 잃어오는 코드를 변경하지 않아도 된다 >> 추가 한다면? 결과값은 추가하지 않을 때와 같게 나온다 이유는 첫 번째 while(true) 두 번째 while(false) 값을 반환하기 때문이다 >> 두 번째 while(true)로 만든다면? it = list.iterator( ); 추가 한다 it = list.iterator( ); // 1회용이라서 다쓰고나면 다시 얻어와야 한다 - keySet( ), entrySet( ), values( )를 호출해서 가져 올 수 있다 Arrays - 배열을 다루기 편리한 메서드(static) 제공 1. 배열의 ..
-
10 (1) Calender 클래스Java 2023. 5. 14. 21:31
날짜와 시간 *java.util.Date - 날짜와 시간을 다룰 목적으로 만들어진 클래스(JDK1.0) - Date의 메서드는 거의 deprecated 되었지만, 여전히 쓰이고 있다 *java.util.Calendar - Date클래스를 개선한 새로운 클래스(JDK1.1) 여전히 단점이 존재 *java.time 패키지 - Date와 Calendar의 단점을 개선한 새로운 클래스들을 제공(JDK1.8) >> Date와 Calendar는 항상 날짜+시간을 같이 다룬다 (단점) >> time은 LocalDate(날짜), LocalTime(시간), LocalDateTime(날짜+시간) 나눌 수 있다 Calendar 클래스 - 추상 클래스이므로 getInstance( )를 통해 구현된 객체를 얻어야 한다 - ge..
-
09 (2) object클래스와 equals( )Java 2023. 5. 12. 21:12
Object클래스의 메서드 - 모든 클래스의 최고 조상. 오직 11개의 메서드만을 가지고 있다. - notfiy( ), wait( ) 등은 쓰레드와 관련된 메서드이다. - equals( ), hashCode( ), toString( )은 적절히 오버라이딩해야 한다. equals(Object obj - 객체 자신과 주어진 객체(obj)를 비교한다. 같으면 true, 다르면 false. - Object클래스에 정의된 equals( )는 참조변수 값(객체의 주소)을 비교한다 - 인스턴스 변수(iv)의 값을 비교하도록 equals( )를 오버라이딩해야 한다. CV : 객체마다 공통 (공유) , iV : 객체마다 다름 (개별) >> CV는 객체마다 같기 때문에 구별 안됨, 때문에 iV로 객체를 비교(equas( ..
-
06 (1) 객체의 생성과 사용Java 2023. 5. 2. 21:13
하나의 소스파일에 여러 클래스 작성 - 일반적으로는 하나의 소스파일에 클래스를 1개만 작성 1:1 관계 객체의 생성과 사용 1. 객체의 생성 글래스명 변수명; // 클래스의 객체를 참조하기 위한 참조변수를 선언 변수명 = new 클래스명(); // 클래스의 객체를 생성 후, 객체의 주소를 참조변수에 저장 Tv t; // Tv클래스 타입의 참조변수 t를 선언 t = new Tv(); // Tv인스턴스를 생성한 후, 생성된 Tv인스터스의 주소를 t에 저장 → Tv t = new Tv(); 하나의 문장으로 나타낸다 2. 객체의 사용 t.channel = 7; // Tv인스터스의 멤버변수 channel의 값을 7로 한다. t.channelDown(); // Tv인스터스의 메서드 channelDown()을 호출한..