본문 바로가기

Java25

컬렉션 프레임워크 2 Comparator - 기본 정렬을 구현하는 데 사용 public interface Comparator { int compare(Object o1, Object o2) // o1 과 o2 를 비교 boolean equals(Object obj) } Comparable - 기본 정렬기준 외에 다른 기준으로 정렬하고자 할 때 사용 public interface Comparable { int compareTo(Object o) // 객체 자신(this)과 o 를 비교 } Set HashSet Set 인터페이스를 구현한 가장 대표적인 컬렉션, 중복된 요소를 저장하지 않음 중복을 제거하는 동시에 순서를 유지하고자하면 LinkedHashSet을 사용 HashSet의 add 메서드는 새로운 요소를 추가하지 전에 기존.. 2023. 5. 26.
컬렉션 프레임워크 1 컬렉션 - 다수의 데이터, 데이터 그룹 프레임워크 - 표준화된 프로그래밍 컬렉션 프레임워크는 다수의 데이터를 다루는데 필요한 다양하고 풍부한 클래스들을 제공 컬렉션데이터 그룹을 크게 3가지 타입으로 구분, List, Set, Map 인터페이스인 List 와 Set의 공통된 부분을 뽑아서 새로운 인터페이스인 Collection을 추가로 정의 List - 순서가 있는 데이터 집합, 데이터 중복 허용 ex) 명단 구현 클래스:ArrayList, LinkedList, Stack 등등 Set - 순서를 유지하지 않는 데이터 집합, 데이터 중복 허용하지 않음 ex) 집합 구현 클래스:HashSet, TreeSet 등등 Map - key와 value가 한 쌍으로 이루어진 데이터 집합, 순서는 유지되지 않음, 키는 중.. 2023. 5. 25.
Java.lang 패키지와 유용한 클래스 모음 각 메서드를 외우기보다는 각 상황에 필요할 때마다 찾아보면서 익숙해지는 것이 보다 더 도움이 될 것 같다 2023. 5. 24.
예외처리 컴파일 에러 - 컴파일 시에 발생되는 에러 런타임 에러 - 실행 시에 발생하는 에러 논리적 에러 - 실행은 되지만 의도와 다르게 동작하는 것 Exeption 클래스와 그 자식 클래스 - 사용자의 실수와 같은 외적인 요인에 의해서 발생하는 예외 RuntimeException 클래스와 그 자식 클래스 - 프로그래머의 실수로 발생하는 예외 예외처리의 정의 - 프로그램 실행 시 발생할 수 있는 예외의 발생에 대한 코드를 작성하는 것 예외처리의 목적 - 프로그램의 비정상 종료를 막고, 정상적인 실행상태를 유지하는 것 try { } catch(Exception1 e1) { Exeption1이 발생했을 경우, 이를 처리하는 문장 } catch(Exception2 e2) { Exception2가 발생했을 경우, 이를 .. 2023. 5. 23.
객체지향 2 상속 // 새로 작성하고자 하는 클래스 extends 상속받고자 하는 클래스 // 자식 클래스는 부모 클래스의 모든 멤버를 상속받음 (단, 생성자와 초기화 블록은 상속되지 않음) // 자식 클래스의 멤버 개수는 부모 클래스의 멤버 개수보다 같거나 많음 // Object 클래스는 모든 클래스의 부모 클래스 포함 // 한 클래스의 멤버변수로 다른 클래스 타입의 참조변수를 선언하는 것 // is – a 와 has – a 비교로 상속을 할지 포함을 할지 결정 메서드 오버라이딩 // 부모 클래스로부터 상속받은 메서드의 내용을 변경하는 것 // 메서드 선언부가 부모 클래스의 메서드와 일치 // 접근 제어자는 부모 클래스의 메서드보다 좁은 범위로 변경할 수 없음 // 부모 클래스의 메서드보다 많은 수의 예외를 선언할.. 2023. 5. 21.
객체지향 연습 import java.util.Enumeration; import java.util.Scanner; interface Interactable{ void sayhi(String text); void move(int x); } interface Repairable { void repair(int x); } class Human { int mineral; String color; String language; void click () { System.out.println("선택되었습니다"); } Human (int mineral, String color, String language) { this.mineral = mineral; this.color = color; this.language = language.. 2023. 5. 21.
변수 ~ 객체지향 1 변수 선언 방법 - 변수타입 변수이름; 변수 초기화 - 변수타입 변수이름 = 값; 산술>비교>논리>대입 단항>이항>삼항 단항 연산자와 대입 연산자를 제외한 모든 연산의 진행방향은 왼쪽에서 오른쪽 조건식 ? 식1 : 식2 // true 면 식 1, false 면 식 2가 연산결과 향상된 for 문 // for (타입 변수이름 : 배열 or 컬렉션) { 배열 or 컬렉션의 길이만큼 반복적으로 실행하고자 하는 문장; } Break 문은 조건이 참이 될 때, 자신이 포함된 가장 가까운 반복문을 벗어남 Continue 문은 특정 조건을 만족하는 경우, continue 문 이후의 문장을 수행하지 않고 다음 반복으로 넘어감 배열 선언 방법 - 변수타입 [ ] 변수이름 배열 선언 - 변수타입 [ ] 변수이름; 배열 생.. 2023. 5. 17.
배열 연습 import java.lang.reflect.Array; import java.util.Arrays; public class 배열_01 { public static void main(String[] args) { // int[] age = new int[]; // 배열의 선언과 생성 int[] age = new int[5]; age [3] = 15; System.out.println(age [3]); // age [1] = 5; // int tmp = 0; // tmp = age [3]; // age [3] = age [1]; // age [1] = tmp; // // System.out.println(age[3]); // System.out.println(age[1]); // 한 번 해본 배열 내 위치.. 2023. 5. 12.
조건문과 반복문 연습 public class 조건문과반복문_01 { public static void main(String[] args) { char ch = 'f'; if('a' 90) { if (score > 95) { System.out.println("A+입니다"); } else { System.out.println("A입니다"); } }else if (score > 80) { if (score > 85) { System.out.println("B+입니다"); } else { System.out.println("B입니다"); } }else { System.out.println("낙제입니다"); } // if 문은 {}를 잘 열고 닫았는지 확인하자 System.out.println(); int month = 5; Str.. 2023. 5. 12.
연산자 연습 public class 연산자_01 { public static void main(String[] args) { int x = 10; int y = 5; System.out.println(x + y); System.out.println(-x + 3); System.out.println(-x * y); System.out.println(x > y); System.out.println("-x + 3 =" + (-x + 3)); System.out.println("-x + 3 =" + (-x) + 3); System.out.print("-x + 3 ="); System.out.println(-x + 3); System.out.println(-x + 3); // ? 왜 두 개 값이 다른지 이해 완료 // Sys.. 2023. 5. 12.