추상 클래스 ( Abstract Class ) 란 ? 하나 이상의 추상메소드를 가진 미완성의 클래스 abstract 키워드를 사용합니다. 상속받을 때 extends 키워드를 사용합니다. 추상 메소드란 ? body { } 가 없고, 선언만 되어있는 미완성의 메소드 // 추상클래스 Animal public abstract class Animal { // 추상메소드 bark() public abstract void bark(); public void eat(String feed) { System.out.println(feed + " 먹는다."); } } 이 추상클래스를 상속받는 자식클래스에서 해당 추상메소드를 오버라이딩하여 무조건 구현해야 합니다. // 자식클래스 Cat public class Cat exte..
상속 ( Inheritance ) 이란 ? 부모클래스를 재사용하여 새로운 자식클래스를 작성하는 것 부모클래스의 field와 method를 내려받고, 자식클래스들의 중복되는 member들은 부모클래스에서 작성/관리함으로써 중복을 줄일 수 있습니다. 메소드 오버라이딩 ( 메소드 재정의 ) 부모클래스에서 상속받은 메소드를 자식클래스에서 확장하거나 변형하는 것 이름 동일, 리턴타입 동일, 파라미터 동일 @Override 애노테이션을 사용하여 재정의한다는 것을 표시해줍니다. 코드로 이해하기 부모클래스 Car.java public class Car { private String color; private int speed; public Car() { } public Car(String color) { this.co..
생성자 ( Constructor ) 란 ? 객체를 생성하고, field를 초기화하기 위한 메소드 클래스명과 이름이 동일하고, 리턴타입이 없습니다. class Test { public Test() {}// 생성자입니다. } new 연산자와 함께 사용됩니다. Test t = new Test(); 기본 생성자는 생략하면 자동으로 생성됩니다. 매개변수를 갖는 생성자를 정의하면 기본 생성자는 더 이상 자동으로 만들어지지 않습니다. public class AA { // new AA(); } public class BB { public BB() {}// new BB(); } public class CC { public CC(int cc) {}// new CC(); (X) // new CC(10); (O) } 생성자는..
클래스 ( Class ) 객체의 설계도, 설명서 Member field : 클래스에 소속된 변수와 상수 ( 해당 클래스의 속성 ) method : field들에 대한 기능, 명령문들의 집합 Constructor ( 생성자 ) 객체를 생성하고, field를 초기화하는 역할 객체 ( Object ) class 타입으로 선언된 것 인스턴스 ( Instance ) class를 바탕으로 메모리에 적재된 실제 구현체 // AAA 클래스 public class AAA { ... } // main 메소드가 존재하는 Test 클래스 public class Test { public static void main(String[] args) { AAA a;// 객체 a = new AAA();// 인스턴스화 : 객체를 메모리에..
객체지향 프로그래밍 : OOP ( Object Oriented Programming ) 이란 ? 기능별로 객체를 묶는 프로그래밍 방법 기술적 특징 추상화 : 여러 객체들을 하나의 큰 추상적인 개념으로 묶는다. ( 클래스를 정의하는 것 ) 상속 : 상위 개념을 하위 객체가 물려받는다. 다형성 : 같은 이름의 기능이지만, 다른 행위를 하는 것 캡슐화 : 객체의 기능만 사용한다. (코드는 은닉한다.)