정의- interface 키워드로 선언된 추상 클래스로써, 추상 메소드와 상수만으로 이루어져 있다.- 단일 상속의 단점을 보완하여 다중 상속처럼 사용할 수 있는 기능을 제공한다.특징- 추상 클래스가 발전된 개념이므로, 인스턴스 생성이 불가능하다.- 멤버로는 상수와 추상 메소드만 허용된다.- 업캐스트 참조 변수로 사용할 수 있다.- 하위 클래스에선 implements(구현) 관계이다.- 하위 클래스에서는 여러 개의 인터페이스를 구현할 수 있다.- 자바의 단일 상속 기능을 보완할 수 있다.형식public interface 인터페이스이름 { // 상수 public static final 타입 상수이름 = 값; // 추상메소드 public abstract 리턴타입 메소드이름(매개변수);}c..
추상화(abstract)란?- "기능은 구현되어 있지 않고, 선언만 있다"라는 의미를 나타내는 지정자이다.추상 메소드 (Abstract Method)- 자식 클래스에서 반드시 오버라이딩 해야하는 메소드를 말한다.- 실행문 블록({})이 없는 메서드이며, 추상 클래스 내에서 사용할 수 있다.public abstract class Calculator { public int add(int num1, int num2) { return num1 + num2; } // 덧셈 public int sub(int num1, int num2) { return num1 - num2; } // 뺄셈 public int mul(int num1, int num2) { return ..
정의- 한 객체가 여러 가지 타입을 가질 수 잇는 것을 말한다.- 부모 클래스 타입 참조 변수가 자식 클래스의 인스턴스를 가리킬 수 있는 기능을 의미한다.특징- 클래스들 사이에는 반드시 상속 관계가 전제되어야 한다. 부모 클래스 타입으로 선언된 변수를 큰 타입이고, 자식 클래스 타입으로 선언된 변수나 인스턴스가 작은 작은 타입이 된다.- 재사용성이 높아진다.- instanceof 연산자가 함께 사용된다. instanceof 연산자는 객체가 어떤 클래스인지, 어떤 클래스를 상속받았는지 확인하는데 사용된다.종류업캐스팅 (upcasting)부모 클래스 타입 변수 = 자식 클래스 타입 변수(또는 자식 클래스 인스턴스)- 부모 타입 참조 변수가 자식 클래스 타입 변수 또는 자식 클래스 인스턴스를 가리킬 수 있..
정의- 기존 클래스에 기능 추가 및 재정의하여 새로운 클래스를 정의한다. - 부모클래스(상위 클래스, 기초 클래스)는 상속 대상이 되는 기존 클래스를 의미. - 자식클래스(하위 클래스, 파생 클래스)는 기존 클래스를 상속하는 클래스를 의미.- 특정 클래스가 가지는 속성과 기능을 다른 클래스가 사용할 수 있게 한다.- 부모 클래스의 필드와 메소드가 상속되며, 생성자와 초기화 블록은 상속되지 않는다.특징- 단일 상속만 지원하므로, 다중 상속은 불가능하다.- 부모 클래스의 속성과 기능을 자식 클래스에서 자유롭게 사용할 수 있다.- 생성자와 초기화 블록의 경우 상속되지 않는다.- 부모 클래스의 private, default 멤버는 자식 클래스에서 접근이 불가능하다. 단, 동일한 패키지의 자식 클래스..
객체 (Object)- 클래스의 정의된 내용에 맞춰 메모리에 생성된 형태를 의미한다.- 정의한 클래스에 내용에 따라 속성과 기능이 다른 용도를 갖는다.인스턴스 (Instance)- 클래스와 객체의 관계를 나타낸다.- 클래스로부터 객체를 선언한다를 인스턴스 화 한다라고도 표현한다.- 어떤 객체는 어떤 클래스의 인스턴스이다.클래스 (Class)- 객체의 설계도이다.- 데이터와 기능의 결합한 모듈이다.- 사용자가 직접 설계하는 사용자 정의 타입이다.- 객체를 생성하는 용도로 사용된다.클래스 사용- 클래스는 객체를 만들기 위한 설계도이며, 객체 변수, 메소드들로 이뤄져있다.public class Days { // 객체 변수 int day; // 메소드 // 리턴타입 메소드명(파라미터..
배열- 자료형의 종류가 아니라 자료형의 집합을 말한다.1차원 배열1차원 배열 선언데이터타입[] 배열명;- 배열을 사용하기 위해서는 먼저 배열명으로 배열을 선언해야 한다.- 대괄호([ ])는 타입 뒤에 올 수도 있고, 배열명 뒤에 올 수도 있으나 보통은 데이터 타입 앞에 쓴다.1차원 배열 생성int[] days; // 배열 선언days = new int[3]; // 배열 생성int[] days = new int[3]; // 배열 선언과 생성- 실제 메모리에 배열 요소가 연속하여 생성되게 하기 위해서는 new 연산자를 이용하여 생성해줘야 한다.- 배열은 생성 시 지정한 개수만큼 배열 요소를 연속하여 메모리에 생성한다.1차원 배열 초기화배열명[인덱스] = 값;- 배열명에 해당되는 배열에 접근한 후, 인덱스 ..