[JAVA 기초]
개요
자바는 초기 설계부터 객체 지향 프로그래밍(Object Oriented Programming)으로 설계되었습니다. 그러므로 객체 지향을 이해하지 못한다면 JAVA가 어렵게 느껴질 수밖에 없습니다. 객체지향의 핵심은 바로 '클래스'와 '객체'입니다.
이번 글을 통해 클래스와 객체에 대해 알아보도록 합니다.
학습 목표
- 객체와 클래스를 이해한다.
- 원하는 객체를 만들기 위한 클래스를 정의할 수 있다.
- 클래스를 인스턴스화(객체화) 할 수 있다.
객체와 클래스
객체(Object)란?
'An object is a class instance or an array'
제임스 고슬링이 저술한 'The java Language Specification(자바 언어 사양서)'에는 객체(Object)란 클래스의 인스턴스나 배열을 말한다고 정의되어 있습니다.
위에서 말하듯 객체는 변수, 함수, 자료 구조의 조합이 될 수 있는데, 특히 객체지향 프로그래밍에서는 클래스를 기반으로 한 변수를 클래스의 인스턴스라 지칭합니다.
더욱 넓은 의미로써의 객체는 '실재하는 모든 것'을 말합니다.
그리고 자바에서의 객체는 속성과 기능을 가지는 프로그램의 단위를 뜻합니다.
예를 들어 휴대폰의 정보를 객체로 표현한다면
- 속성: 색상, 용량 ..
- 기능: 전화, 문자..
등이라 할 수 있습니다. 여기서 속성은 멤버 변수, 파라미터를 말하고 기능은 메서드를 의미합니다.
클래스란?
클래스(Class)는 '멤버 변수와 메서드를 가지는 객체를 만들기 위한 확장이 가능한 코드 양식입니다.'
즉, 클래스란 이러한 객체를 정의한 '설계도(Blueprint)' 혹은 '틀(Frame)'이라 정의할 수 있습니다.
클래스는 객체를 생성하는 데 사용되며, 반대로 클래스에 정의되고 설계된 내용 그대로 생성됩니다.
여기서 꼭 알아두어야 할 것은 클래스는 객체 그 자체가 아니라 단지 객체를 생성하는 데 사용되는 틀이라는 것입니다.
위의 그림을 통해 앞서 설명하였던 클래스와 객체의 관계를 볼 수 있습니다.
설계도(클래스)가 정의되어 있고, 이 설계도를 통해 각각의 집들이 만들어졌습니다.
이렇게 클래스를 통해 생성된 객체를 우리는 해당 클래스의 인스턴스(instance)라 부릅니다. 또한 클래스로부터 객체를 만드는 과정을 우리는 인스턴스화(instantiate)라 지칭합니다.
객체의 생성
먼저 클래스는 어떻게 정의할 수 있을까요?
클래스는 class 키워드를 사용하여 정의할 수 있습니다. class 명은 대문자로 시작하는 것이 관례입니다.
Java에서 사람이라는 클래스를 만든다고 한다면
public class Person {
//TODO
}
위와 같이 만들 수 있습니다.
위 클래스를 통해 객체(인스턴스)를 생성한다면
Person human = new Person();
위와 같이 객체를 생성할 수 있습니다. 이렇게 생성을 한다면 Person 클래스의 인스턴스인 human, Person 객체가 생성됩니다.
위에서 보듯이 객체는 new 키워드로 생성할 수 있습니다.
우리는 이번 글을 통해 클래스와 객체에 대해 알아보았습니다.
다음 글을 통해 클래스와 객체에 대해 더욱 상세히 알아보도록 합시다.
'JAVA > JAVA 이론' 카테고리의 다른 글
[JAVA 이론] 캡슐화(encapsulation) (0) | 2023.02.28 |
---|---|
[JAVA 이론] 상속(inheritance) (0) | 2023.02.27 |
[JAVA 이론] 내부 클래스(Inner Class) (0) | 2023.02.26 |
[JAVA 이론] 생성자(Constructor) (0) | 2023.02.25 |
[JAVA 이론] 필드(Field)와 메서드(method) (0) | 2023.02.24 |