1. Collection이란? - Collection 인터페이스는 객체 그룹을 다루는 데 사용되는 가장 일반적인 인터페이스 중 하나 - 순서 O, 데이터 중복 O - 중복된 데이터를 허용하며, 각 데이터는 인덱스로 식별한다 - 데이터를 추가한 순서대로 저장하며, 인덱스를 사용하여 데이터에 접근할 수 있다 - 동일한 데이터를 중복해서 저장할 수 있다. 따라서 동일한 객체를 여러 번 저장할 수 있다 - add() : List의 끝에 데이터를 추가한다. 새로운 데이터가 리스트에 추가되며, 기존 데이터는 한 칸씩 뒤로 밀리게 된다 - remove() : List에서 지정된 인덱스 또는 데이터를 제거한다. remove(index)는 주어진 인덱스에 해당하는 데이터를 제거하고, remove(element)는 주어진..
1) 캡슐화 - 메소드(함수)와 데이터를 클래스 내에 선언하고 구현 - 외부에서는 공개된 메소드의 인터페이스만 접근 가능 - 외부에서는 비공개 데이터에 직접 접근하거나 메소드의 구현 세부를 알 수 없음 - 객체 내 데이터에 대한 보안, 보호, 외부 접근 제한 - 객체의 필드, 메소드를 하나로 묶고, 실제 구현 내용을 감추는 것 - 외부 객체는 객체 내부 구조를 알지 못하며 객체가 노출해 제공하는 필드와 메소드만 이용 가능 - 필드와 메소드를 캡슐화하여 보호하는 이유는 외부의 잘못된 사용으로 인 해 객체가 손상되지 않도록 - 자바 언어는 캡슐화된 멤버를 노출시킬 것인지 숨길 것인지 결정하기 위해 접근 제한자(Access Modifier) 사용 2) 상속 1) 라이브러리(API: Application Pro..
- 객체 배열 Upgrade 버전 - 자료들을 순차적으로 나열한 자료구조로 인덱스로 관리되며, 중복해서 객체 저장 가능 - 구현 클래스로 ArrayList와 Vector, LinkedList가 있음 - java.util.ArrayList : 배열 형태 List (가장 대표적인 List 자식 클래스) (1) List는 인덱스가 있다. (0번 부터 시작) - List에 저장된 데이터의 개수를 얻어오는 방법 : int List.size() -> 배열명.length 대신 사용 (1) List가 비어있는지 확인하는 방법 - boolean java.util.List.isEmpty() : 비어있으면 true를 반환 (2) Student List.remove(int index) - 리스트에서 index번째 요소를 제거..
- 메모리상에서 자료를 구조적으로(ex.배열) 처리하는 방법을 자료구조라 일컫는데 컬렉션은 자바에서 제공하는 자료구조 모음 (List, Set, Map) - java.util 패키지에 포함되며, 인터페이스를 통해 정형화된 방법으로 다양한 컬렉션 클래스 이용 가능 - 데이터(자료)를 메모리에서 구조적으로 처리하는 방법론이다 1) 배열의 문제점 (1) 한 번 크기를 지정하면 변경할 수 없다 - 공간 크기가 부족하면 에러가 발생 -> 할당 시 넉넉한 크기로 할당하게 됨 (메모리 낭비) - 필요에 따라 공간을 늘리거나 줄일 수 없음 (2) 배열에 기록된 데이터에 대한 중간 위치의 추가, 삭제가 불편하다 - 추가, 삭제할 데이터부터 마지막 기록된 데이터까지 하나씩 뒤로 밀어내고 추가해야 함 (복잡한 알고리즘) (..
- 프로그램 수행 시 치명적 상황이 발생하여 비정상 종료 상황이 발생한 것, 프로그램 에러라고도 함 1) 오류의 종류 (1) 컴파일 에러 - 프로그램의 실행을 막는 소스 상의 문법 에러, 소스 구문을 수정하여 해결 (2) 런타임 에러 - 입력 값이 틀렸거나, 배열의 인덱스 범위를 벗어났거나, 계산식의 오류 등 - 주로 if문 사용으로 에러를 방지 2) 예외 클래스 계층 구조 - 프로그램 수행 -> 예외사항 발생 -> JVM이 해당 예외 상황에 맞는 Exception 클래스를 찾아 객체로 만듦 -> 객체로 만들어 졌을 때 빨간 글씨가 나오면서 어디서 예외가 발생했는지 안내 -> 프로그램 종료 - 자바 실생 시 발생하는 예외는 모두 클래스로 작성되어 있다 3) 예외 처리 방법 (1) Exception이 발생..
- 클래스간의 접점 : 클래스가 공통적으로 가져야되는 필드, 메소드를 모아두고 상속 - 상수형 필드와 추상 메소드만을 작성할 수 있는 추상 클래스의 변형체 - 메소드의 통일성을 부여하기 위해 추상 메소드만 따로 모아놓은 것으로 - 상속 시 인터페이스 내에 정의된 모든 추상메소드 구현해야 함 - 자식 클래스의 공통된 부분을 추출하여 부모 클래스를 만드는 것 - 공통된 필드, 메소드를 가진 클래스를 만들고, 작성된 코드를 작성들이 물려받아 사용 - 코드 길이 감소, 코드 중복 제거, 재사용 증가, 자식에 대한 일관된 규칙 제공 2) [일반 클래스] 상속 - 부모 클래스도 객체로 만들수 있어야 되는 경우 ex) (부) 갤럭시22 (자) 갤럭시22 울트라 3) [추상 클래스] 상속 - 연관된 클래스의 공통점을 ..