: 객체는 자신만의 고유한 특성(state)과 행동(behavior)을 가지며 다른 객체에게 행동을 요청하거나 정보를 주고받는 등 상호작용하며 존재
: 모든 데이터를 객체(Object)로 취급한다
캡슐화(Encapsulation)
: 객체를 캡슐로 싸서 내부를 보호하고 볼 수 없게 하는 것
자바에서 객체는 클래스(class)라는 캡슐을 사용하고 필드(멤버 변수)와 메소드(멤버 함수)로 구성
상속(Inheritance)
: 자식 클래스가 부모 클래스의 속성을 물려받고 기능을 추가하여 확장하는 개념부모클래스 : 슈퍼클래스(Super class)
자식클래스 : 서브클래스(Sub class)
상속은 슈퍼 클래스의 메소드를 물려받아 코드를 재사용함으로써, 시간과 비용을 줄임
다형성(Polymorphism)
: 같은 이름의 메소드가 클래스 혹은 객체에 따라 다르게 동작하도록 구현하는 것
: 객체를 정의하는 틀 또는 설계도와 같은 의미로 사용
자바에서는 설계도인 클래스를 가지고, 여러 객체를 생성하여 사용함
클래스 : 객체를 만들어 내기 위한 설계도 혹은 틀
객체 : 클래스 모양 그대로 생성된 실체
: class 키워드를 사용하여 선언
멤버는 클래스의 구성요소로 필드(멤버변수), 메소드(멤버함수)가 존재
ex01)
public class Human{ // class라는 키워드를 사용하여 선언
public int year; //사람의 출생년도 필드
public String name; //사람의 나이 필드
public Human(){ //사람의 생성자 메소드
}
public int now_age(){ //현재 나이 계산 메소드
return 2022-year+1;
}
}
: 자바에서 클래스를 사용하기 위해서는 해당 클래스 타입의 객체를 선언해야함
: 클래스로부트 객체를 선언하는 과정 = 클래스의 인스턴스화
Human h = new Human();
즉, 인스턴스란 메모리에 할당된 객체를 의미