[JAVA]
-
23. 지네릭, 열거형[JAVA] 2023. 6. 2. 19:44
1. 지네릭스(Generics) - 컴파일시 타입을 체크해 주는 기능 - 객체의 타입 안정성을 높이고 형변환의 번거러옴을 줄여줌 2. 타입변수 - 클래스 작성할 때 Object타입 대신 변수를 선언해서 사용 *일반클래스 -> 지네릭클래스 - 객체 생성 시 타입 변수 대신 실제 타입을 제정하여 대입 - 타입 변수 대신 실제 타입이 지정되면, 형변환 생략 가능 3. 지네릭스 용어 - Box: 지네릭 클래스. T의 Box 또는 T Box라고 읽는다 - T: 타입변수 또는 타입 매개변수 - Box: 원시타입 (raw type) *일반클래스 4. 지네릭 타입과 다형성 - 참조변수와 생성자의 대입된 타입은 일치해야 한다. * ArrayList list = new ArrayList(); => 일치 - 지네릭 클래스 ..
-
22-2. 컬렉션 프레임웍 (2/2)[JAVA] 2023. 6. 1. 21:39
1. Arrays - 배열을 다루기 편리한 메서드(Static) 제공 1) 배열의 출력 - toString() 2) 배열의 복사 - copyOf(), copyOfRange() 3) 배열 채우기 - fill(), setAll() 4) 배열의 정렬과 검색 - sort(), binarySearch() * 정렬 먼저 필수 ** sort(arr) // 배열arr을 정렬한다. 5) 다차원 배열의 출력 - deepTostring() 6) 다차원 배열의 비교 - deepEquals() 7) 배열을 List로 변환 - asList(Object...a) * List는 읽기 전용 ** List list = new ArrayList(Arrays.asList(1,2,3,4,5)); 8) 람다와 스트림 관련 (14장에서 배울 예..
-
21. Calendar 클래스[JAVA] 2023. 5. 30. 16:15
1. Calendar 클래스 - 추상클래스이므로 getInstance()를 통해 구현된 객체를 얻어야 한다. - get()으로 날짜와 시간 필드 불러옴: int get(int field) - set()으로 날짜와 시간 지정: set(int field, int value) *날짜 지정하는 방법에서 월이 0부터 시작한다는 점에 주의 - clear()는 Calendar객체의 모든 필드를 초기화 - add()는 특정 필드의 값을 증가 또는 감소 *다른 필드에 영향O - roll()은 특정 필드의 값을 증가 또는 감소(다른 필드에 영향x) 2. 형식화 클래스 - DecimalFormat: 숫자 > 형식 문자열, 형식 문자열 > 숫자 * 원하는 형식으로 변경 3. SimpleDateFormat - 날짜와 시간을 다..
-
20. java.lang패키지와 유용한 클래스 (1/2)[JAVA] 2023. 5. 28. 16:24
1. Object 클래스 - 모든 클래스의 최고 조상, 오직 11개의 메서드만을 가지고 있다. - notify(), wait() 등은 쓰레드와 관련된 메서드이다. 2. equals(Object obj) - 객체 자신과 주어진 객체를 비교한다. - 같으면 true 다르면 fales - object클래스의 equals()는 객체의 주소를 비교 *참조변수 값을 비교 3. hashCode() - 객체의 해시코드를 반화하는 메서드 - Object클래스의 hashcode()는 객체의 주소를 int로 변환해서 반환 - equals()를 오버라이딩하면, hashCode()도 오버라이딩해야 한다. * equals()의 결과가 true면 두 객체의 해시코드는 같아야 함 4. toString()과 오버라이딩 - toStri..
-
19. 예외처리(1/2)[JAVA] 2023. 5. 26. 16:51
1. 예외처리 1) 컴파일 에러: 컴파일 할 때 발생하는 에러 (javac.exe : 자바 컴파일러) 2) 런타임 에러: 실행할 때 발생하는 에러 => 프로그램 종료 * 에러: 프로그램 코드에 의해서 수습될 수 없는 '심각'한 오류 / 는 어쩔 수 없다 ** 예외: 프로그램 코드에 의해서 수습될 수 있는 '미약'한 오류 / 는 처리하자 *** 예외처리: 예외를 대비한 코드를 작성하는 것, 비정상 종료를 막고 정상적인 상태를 유지하기 위함 3) 논리적 에러: 작성 의도와 다르게 동작 => 프로그램 종료X 2. 예외 처리하기 (try-catch문) - 블럭 내에서 예외가 발생한 경우 * 발생한 예외와 일치하는 catch블럭이 있는지 확인 ** 일치하는 catch블럭을 찾으면 문장들을 수행하고 전체 try-c..
-
18. 객체지향 프로그래밍_2 (2/2)[JAVA] 2023. 5. 25. 20:30
1. 접근제어자: 4개 중 1개만 사용할 수 있다 1) private: 같은 클래스 내에서만 접근이 가능하다 2) (default): 같은 패키지 내에서만 접근이 가능하다 3) protected: 같은 패키지 내에서, 그리고 다른 패키지의 자손클래스에서 접근이 가능하다 4) public: 접근 제한이 전혀 없다 2. 캡슐화 - 데이터를 보호하기 위해서 접근제어자를 사용한 것 - 외부에는 불필요하고 내부적으로만 사용되는 부분을 감추기 위해서 사용한 것 3. 다형성 - 여러 가지 형태를 가질 수 있는 능력 - 조상 타입 참조 변수로 자손 타입 객체를 다루는 것 * 자손 타입의 참조변수로 조상 타입의 객체를 가르킬 수 없다 4. 참조변수의 형변환 - 사용할 수 있는 멤버의 개수를 조절하는 것 5. instan..
-
17. 객체지향 프로그래밍_2 (1/2)[JAVA] 2023. 5. 22. 20:42
1. 상속 - 기존의 클래스로 새로운 클래스를 작성하는 것 (코드의 재사용) - 두 클래스를 부모와 자식으로 관계를 맺어주는 것. - 자손은 조상의 모든 멤버를 상속 받는다. (생성자. 초기화블럭 제외) - 자손의 변경은 조상에 영향을 미치지 않는다. 2. 포함 - 클래스의 멤버로 참조변수를 선언하는 것 - 작은 단위의 클래스를 만들고, 이 들을 조합해서 클래스를 만든다. * 상속관계는 is-a관계 포함관계는 has-a관계 ** 프로그래밍 = 설계(90%) + 코딩(10%) 3. 단일 상속(single Inheritance) - Java는 단일상속만을 허용한다 (C++는 다중상속 허용) - 비중이 높은 클래스 하나만 상속관계로, 나머지는 포함관계로 한다. 4. Object 클래스 - 모든 클래스의 조상 ..