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, 오버로딩 시 리턴 타입은 무시되어 에러 발생 매개 변수의 이..
2. 생성자 1. 생성자 개요 Constructor는 클래스로부터 객체를 생성할 때 호출되며, 객체의 멤버 변수를 초기화하는 메서드다. 클래스와 같은 이름을 가진 메서드다. 일반 메서드와 달리 반환형 (Return Type)이 없으며 void도 허용되지 않는다. 생성자는 이름은 같지만 매개변수를 달리하여 여러 개를 중복정의 (Overloading)할 수 있다. 생성자는 객체를 생성할 때 new 생성자() 구문으로 호출된다. 명시적으로 작성하지 않을 경우 기본 생성자가 제공된다. 기본 생성자 (Default Constructor) 클래스에 생성자가 하나도 정의되지 않은 경우, 컴파일러에 의해 자동으로 생성되는 생성자 매개변수가 없는 생성자 class Employee { // 생성자를 가지고 있지 않은 클래..