
1. 예외 처리 1. 예외의 개념 오류 Error : 프로그램적으로 처리할 수 없기 때문에 에러 발생 시 프로그램이 중단됨 네트워크 작업 처리 시 랜선이 끊어짐 전원 공급 중단 Exeption : 프로그래머가 예측하고 프로그램적으로 처리할 수 있는 오류 정수를 0으로 나누는 경우 배열의 인덱스가 음수 값을 가지는 경우 배열의 인덱스가 배열의 길이를 넘어서는 경우 부적절한 형변환이 발생하는 경우 입출력 시 Interrupt 발생 입출력 파일이 존재하지 않을 경우 예외 Exeption 자바는 예외도 객체로 처리한다. 발생 가능성 있는 모든 예외 상황을 미리 예측하여 예외 클래스로 제공한다. 프로그램이 예외 처리 로직을 구현하지 않은 경우에는 기본 예외 처리 핸들러가, 에러 메시지를 화면에 출력하고 실행을 중..

2. 객체지향 언어의 주요 개념 1. 패키지 개요 자바 API 패키지 import 예약어 다른 패키지의 클래스 사용하기 여러 패키지에 동일한 이름의 클래스를 import 하는 경우 2. 사용자 정의 패키지 package의 개념 package 예약어 사용자 정의 패키지와 import 2. 커스텀 라이브러리 사용 커스텀 라이브러리 사용하기 자바는 프로그램 구현에 필요한 중요 클래스들을 API 형태로 JVM에 포함 3. 커스텀 라이브러리 사용 출처 - swexpertacademy.com/

1. 인터페이스와 다형성 1. 인터페이스 추상 클래스와 인터페이스 인터페이스는 상수와 추상 메서드 외에 다른 멤버를 갖지 못하게 한다. 인터페이스를 사용하는 이유 public interface 인터페이스명 [extends 부모인터페이스며, ...] { // 상수 // - final 예약어로 멤버 변수를 선언해야 함 // - 인터페이스는 객체를 생성할 수 없으므로, 상수는 static 예약어로 선언해야 함 // 추상 메서드 // 그러나 static final, abstract 생략 가능 } 2. 인터페이스의 활용 interface Drawable { public int PLAIN_PEN = 1; public int BOLD_PEN = 2; public int ITALIC_PEN = 3; public voi..
1. 추상 클래스와 내부 클래스 1. abstract 예약어 추상 메서드 : 메서드의 시그니쳐 (리턴타입, 메서드명, 매개변수만 정의) 메서드의 기본적인 기능 유추 가능 추상 클래스 : 일반적으로 하나 이상의 추상 메서드 포함, (추상 메서드 없는 추상 클래스 가능) 추상 메서드를 포함하면 반드시 추상 클래스로 선언되어야 함 추상 클래스는 객체 생성을 할 수 없다. 추상 클래스 추상 클래스로 객체를 생성하려면, 자식 클래스를 작성하고, 추상 메서드들을 Overriding 해야 함 유지보수 편의성 // TV 클래스를 추상 클래스로 정의한다. abstract class TV { public abstract void powerOn(); public abstract void powerOff(); public a..

1. 상속 1. 상속의 개요 상속 (Inheritance) is a ~ 관계 부모 - 자식 클래스의 관계가 일반화 - 특별화의 관계, is a 관계에 있어야 한다. 단일 상속 (Single inheritance) 자바는 문법적으로 단일 상속만 허용한다. 하나의 클래스는 오직 하나의 부모 클래스만 상속할수 있다. 다중 상속을 허용하면 중복되는 변수와 메서드가 상속되는 문제가 발생한다. 2. 상속과 생성자 자식 클래스의 초기화가 이루어질 때, 부모 클래스의 생성자가 자동 호출되어 초기화를 수행한다. 이때, 자동 호출되는 부모 클래스의 생성자의 경우 별도로 호출되지 않는 경우 매개변수가 없는 기본 생성자를 호출한다. class SuperClass { int num1; // 부모 클래스에 기본 생성자가 없다면 ..

2. 매개변수 1. 매개변수 개념 매개변수의 의미 메서드를 호출해서 객체 간 메시지가 전달될 때 필요한 부가 정보를 매개변수 형태로 전달한다. 메서드 매개변수로 전달되는 데이터가 기본형이냐 참조형이냐에 따라 동작 방식이 달라지게 된다. 매개변수 타입에 따른 특징 값 복사 // 기본형 매개변수의 값 복사 int score = 80; // score 변수에 80 저장 int copyScore = score; // score 변수에 저장된 값을 copyScore 변수에 할당함 // - 메모리 상에는 두 변수가 같은 값을 가지게 된다. // - 특정 변수의 값을 수정해도 다른 변수에는 영향을 미치지 않음 주소 복사 // 참조형 변수 int[] list = { 100, 85, 90 }; // list 변수에 일차..

1. 메서드 Overloading 메서드 Overloading 변수의 중복 선언 변수와 달리 하나의 클래스에 동일한 이름의 메서드는 여러 개 정의할 수 있음 데이터 타입이 달라도 변수 이름이 동일한 경우를 허용하지 않음 메서드의 중복 정의 (Overloading) 매개변수의 개수와 타입을 통해 실행될 메서드를 구분할 수 있기 때문에, 하나의 클래스에 동일한 이름의 메서드를 여러 개 정의할 수 있다. 메서드 오버로딩은 객체 지향 같은 객체지향 언어에서만 제공되는 문법이다. PrintStream 클래스의 메서드 Overloading 메서드 Overloading 유형 매개변수의 개수와 타입이 모두 다른 경우 => O 리턴 타입이 다른 경우 => X, 오버로딩 시 리턴 타입은 무시되어 에러 발생 매개 변수의 이..