본문 바로가기

Back-End/Java20

컬렉션 프레임웍 이 글은 남궁성 님의 Java의 정석 책을 바탕으로 정리한 글입니다. 인터페이스 인터페이스 특징 Collection List 순서 유지 O, 중복 O 구현 클래스: ArrayList, LinkedList, Stack, Vector Set 순서 유지 X, 중복 X HashSet, TreeSet Map 키와 값의 쌍으로 이루어진 데이터 집합 순서 유지 X, 키: 중복 X, 값: 중복 O HashMap, TreeMap, Hagtabel, Poperties ※ Collection: 인터페이스, Collections: 클래스 ArrayList Object 배열을 이용해서 데이터를 순차적 저장 공간이 없으면 새로운 배열을 생성해서 복사한 후 저장 객체를 인덱스로 관리 반복문을 통해 요소 삭제 시, 빈 공간을 채우기.. 2021. 12. 30.
예외 처리(exception handling) Exception클래스: 최고 조상 Exception클래스들: 사용자의 실수와 같은 외적인 요인에 의해 발생 - 컴파일러가 예외 처리 확인 'checked예외' RuntimeException클래스들: 프로그래머의 실수 - 컴파일러가 예외 처리 확인하지 않는 'unchecked예외' 1. 예외 처리하기 - try-catch문 try { // 예외 발생 가능성 있는 문장 // 예외 발생 위치 이후에 있는 try블럭의 문장은 수행되지 않는다 } catch (Exception e) { // Exception 발생할 경우, 이를 처리하기 위한 문장 } ArithmeticException: 산술연산과정에서 오류가 있을 경우 발생 - 정수는 0으로 나누는 것 금지, 실수는 허용 1.1 발생 원인 찾기 printSta.. 2021. 12. 26.
객체지향 프로그래밍 Ⅱ 이 글은 남궁성 님의 Java의 정석 책을 바탕으로 정리한 글입니다. 상속 상속: 코드를 재사용하여 적은 양의 코드로 새로운 클래스를 작성하여 코드의 중복을 제거한다 포함: 클래스 멤버로 다른 클래스 타입의 참조변수를 선언한다 1. 생성자와 초기화 블럭은 상속되지 않는다. (멤버만 상속) 2. 단일 상속만 허용한다 (다중 상속 효과: 인터페이스) 3. Object 클래스: 모든 클래스의 조상 상속 관계 '~은 ~이다.(is-a)' : SportsCar는 Car이다 포함 관계 '~은 ~을 가지고 있다.(has-a)' : Empoyee는 Address를 가지고 있다 class TVCR extends TV { // 상속 VCR vcr = new VCR(); // VCR클래스를 포함 } 오버라이딩 조상 클래스로.. 2021. 12. 16.
객체지향 프로그래밍 Ⅰ 이 글은 남궁성 님의 Java의 정석 책을 바탕으로 정리한 글입니다. 클래스와 객체 인스턴스 · 클래스를 통해 생성된 객체 · 참조 변수를 통해서만 다룰 수 있다 둘 이상의 참조 변수가 인스턴스를 가리키는 것은 가능하지만 하나의 참조 변수가 여러 개의 인스턴스를 가리키는 것은 가능하지 않다 클래스 · 필드(field), 메서드(method), 생성자(constructor), 이너 클래스(inner class) → 멤버 public class ExampleClass { int x = 10; //필드: 속성 void printX() {...} //메서드: 기능 ExampleClass {...} //생성자: 클래스의 객체 생성 class ExampleClass2 {...} //이너 클래스 } · new 키워드.. 2021. 12. 2.
배열(array) 이 글은 남궁성 님의 Java의 정석 책을 바탕으로 정리한 글입니다. int[] score = new int[5]; // int형의 기본값인 0으로 초기화 int[] score = new int[] {50, 60, 70, 80, 90}; int[] score = {50, 60, 70, 80, 90}; int[] score; score = new int[] {50, 60, 70, 80, 90}; // score = {50, 60, 70, 80, 90}; 에러 int add(int[] arr) {/* 내용 생략 */} int result = add(new int[] {100, 90, 80, 70, 60}); // int result = add({100, 90, 80, 70, 60}); 에러 // 참조변수의 .. 2021. 11. 25.
연산자(Operator) 이 글은 남궁성 님의 Java의 정석 책을 바탕으로 정리한 글입니다. 우선 순위: 산술(사칙 연산, 나머지, 쉬프트) > 비교 > 논리 > 대입 > 기타(형변환, 삼항, instanceof) 정수형은 0을 나눌 수 없다. ArithmeticException 문자 '2(2가 아니어도 된다)'를 숫자로 변환하려면 문자 '0'을 빼 주면 된다 → 50 - 48 = 2 char c1 = 'a'; // char c2 = c1 + 1; 컴파일 에러, 문자형과 정수형 연산은 결과가 정수형이므로 char에 담을 수 없다 char c2 = 'a' + 1; // 'a' + 1이 리터럴 간의 연산이기 때문에 에러 발생하지 않음 System.out.println(c2); // b 상수 또는 리터럴 간의 연산은 실행 과정 동안.. 2021. 11. 16.