안녕하세요 코이킹입니다.
이번 포스트에서는 OOP(Object Oriented Programming == 객체지향 프로그래밍)에 대한 설명중,
객체・클래스・인스턴스에 대해서 설명하려 합니다.
1. 객체란?
먼저 일반적인 객체의 개념에 대해서 알아보면 현실세계에 존재하는 '물체','대상'이 되겠습니다.
※ 참고사이트 https://ja.wikipedia.org/wiki/%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88
구체적인 예를 들어 본다면 사람, 강아지와 같은 동물도 스마트폰, 컴퓨터, 상자와 같은 물체도,
포켓몬, 디지몬과 같은 게임의 캐릭터도 객체라 볼 수 있습니다.
그렇다면 OOP에서의 객체는 무엇일까요?
현실세계의 객체에서 중요하고 핵심적인 부분을 추상화시켜 추려내어 클래스화 하고,
클래스를 바탕으로 메모리상에 로드된 데이터라고 생각합니다.
객체지향 프로그래밍에서는 위와 같이 메모리상에 로드된 객체들의 상호작용을 통해서 프로그램을 구현합니다.
2. 클래스란?
클래스란 OOP에서의 객체를 만들기위한 일종의 설계도입니다.
클래스를 만들기 위해서는 현실세계의 객체에서 중요하고 핵심적인 것 ・ 공통되는 것 ・ 특징 등을 추려내어,
1) 속성과 2) 행위로 정의합니다.
여기서 속성은 클래스의 멤버 변수, 행위는 클래스의 메서드라고 합니다.
※ 클래스 선언 문법
[접근제어자] class 클래스명 {
...
...
}
public class Person {
// 멤버변수
String eye;
String nose;
String mouth;
String hand;
String foot;
// 메서드
public void eat() {
System.out.println("eat");
}
public void sleep() {
System.out.println("sleep");
}
public void defecate() {
System.out.println("defecate");
}
}
위의 예제는 사람을 클래스화 한 것입니다. 사람이 가지는 눈, 코, 입, 손발 등의 속성을 멤버 변수로
먹고, 자고, 싸는 행위를 메서드화 했습니다.
3. 인스턴스란?
인스턴스는 클래스를 바탕으로 메모리에 로드된 데이터를 의미합니다.
OOP에서 말하는 객체라고 할 수 있습니다.
코드를 해석할때 '객체'라는 단어와 와 '인스턴스'라는 단어를 같은 의미로 자주 혼용해서 사용하곤 합니다.
※ 인스턴스를 생성하는 방법은 다음과 같습니다.
[클래스명] [인스턴스 변수명] = new [생성자()];
※ 인스턴스의 메서드 또는 멤버 변수에 접근하기 위한 방법은 다음과 같습니다.
[인스턴스 변수명].[메서드() 또는 멤버 변수];
public static void main(String[] args) {
Person person = new Person();
person.eat();
String eye = person.eye;
System.out.println(eye);
}
※ 예제 코드
※ qiita에 투고한 URL
'프로그래밍 > Java-문법정리' 카테고리의 다른 글
【OOP】03_캡슐화 (0) | 2022.01.16 |
---|---|
【OOP】02_멤버변수·메서드·생성자 (0) | 2022.01.15 |
【Java문법】예외처리 (0) | 2022.01.10 |
【Java문법】셋(Set) (0) | 2022.01.10 |
【Java문법】맵(Map) (0) | 2022.01.10 |
댓글