객체 : 주체가 아닌 것, 주체가 활용하는 것
객체 지향 프로그래밍(Object-Oriented Programming) : 프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법입니다.
OOP is A P.I.E (캡상추다) : Abstaction - Polymorphism - Inheritance - Encapsulation (캡슐화 - 상속 - 추상화 - 다형성)의 앞글자를 딴 것으로 객체지향 언어가 갖는 4가지 특징입니다.
Class vs Instance/Object
클래스 정의 (추상화)
class <클래스명>
EX)
class Person {
----------
맴버 변수 설정
<데이터 타입> <멤버 변수명>;
EX) String name;
----------
----------
멤버 메서드 설정
<반환 타입> <멤버 메서드명>([인자]) {
~~~~~~~
메서드 작성
~~~~~~~
}
EX)
void work() {
System.out.println("작업 중");
}
}
객체 생성 (구체화)
<클래스명> <객체명> = new <클래스명>();
EX) Person p1 = new Person();
객체 멤버 변수 설정
<객체명>.<멤버변수> = <값>;
EX) p1.name = "루키";
System.out.println(p1.name); // "루키"
객체 멤버 메서드 사용
<객체명>.<멤버메서드>();
EX) p1.work(); // "작업 중"
타입에 따른 분류
선언 위치에 따른 분류
| 종류 | 선언 위치 | 변수 종류 |
|---|---|---|
| 맴버 변수 | 클래스 영역(static) | 클래스 맴버 변수 |
| 클래스 영역 | 인스턴스 멤버 변수 | |
| 지역 변수 | 함수 내부 | 지역 변수 |
| 함수 선언부 | 파라미터 변수 |