객체
소프트웨어를 통해 문제를 해결할 때 구현할 대상
소프트웨어 관점에서의 Concept
클래스
객체 생성을 위한 설계도
인스턴스
클래스에 따라 실제로 구현된 실체
클래스와 관계 위주로 설명할 때 사용됨
// car 객체는 Car 클래스의 인스턴스
Car car = new Car();
Bike bike = new Bike();
데이터의 집합, 그룹을 효율적으로 다루기 위한 자료구조 인터페이스 및 구현체를 제공
Collection 인터페이스는 크게 List, Set, Queue로 나뉘며 Map은 Collection 인터페이스를 구현하지 않지만 Collection으로 분류된다.
List : 인덱스 순서로 저장되며 중복된 데이터 저장이 가능하다.
* ArrayList : 초기 capacity는 10이고, 이보다 많은 데이터가 들어오면 용량을 늘린다. 중간에 데이터를 추가하거나 삭제할 경우 한 이후 모든 인덱스가 한 칸씩 밀리거나 당겨지므로 처리 속도가 느리다.
public class LottoNumber {
private static final int LOTTO_NUMBER_LOWER_BOUND = 1;
private static final int LOTTO_NUMBER_UPPER_BOUND = 45;
private final int lottoNumber;
public LottoNumber(final int lottonumber) {
checkIsInBounds(lottoNumber);
this.lottoNumber = lottoNumber;
}
private void checkIsInBounds(int lottoNumber) {
if (lottoNumber < LOTTO_NUMBER_LOWER_BOUND || lottoNumber > LOTTO_NUMBER_UPPER_BOUND) {
throw new LottoNumberOutOfBoundsException();
}
}
}
장점
public class LottoTicket {
private final List<LottoNumber> lottoTicket;
public LottoTicket(final List<LottoNumber> lottoTicket) {
checkLottoTicket(lottoTicket);
this.lottoTicket = lottoTicket;
}
public LottoPrize matchPrize(LottoDrawingResult lottoDrawingResult) {
//matching logic
}
}
error : 컴퓨터 하드웨어의 오동작 또는 고장, 개발자의 잘못된 코드로 응용 프로그램에 이상이 발생해 실행하지 못하거나 실행 중 중단되는 것
exception : 응용 프로그램 실행 중 사용자의 잘못된 조작 혹은 개발자의 잘못된 코드로 인해 발생
예외가 발생하면 프로그램이 종료되는 것은 에러와 같지만 예외는 예외처리를 통해 프로그램을 종료시키지 않고 동작을 유지하도록 할 수 있음
자바는 CheckedException과 UncheckedException이 있음
``` java
public class Truck extends Car {...} ```
``` java
public interface Calculator {```
좋은 글 잘 읽었습니다 :)