[JAVA] 객체 지향(OOP) 클래스 문법 총정리개발 언어/Java2023. 3. 29. 04:18
Table of Contents
클래스(class) 구성
자바에서 클래스(class)란 객체를 정의하는 틀 또는 설계도와 같은 의미로 사용된다.
자바에서는 이러한 설계도를 가지고, 여러 객체를 생성하여 사용하는 식으로 프로그래밍을 이어나간다.
클래스는 객체의 속성 변수를 나타내는 필드(field)와 객체의 함수를 나타내는 메소드(method)로 구성되어있다.
클래스, 객체, 인스턴스, 메서드, 필드 등 자바 객체 지향 프로그래밍을 배우다 보면 정말 많은 용어들이 나온다.
특히 클래스나, 객체, 인스턴스 부분은 비슷하면서도 구분이 되어 있어 많이 혼동하는 편이다.
누군가에게 설명하기 위해서는 용어를 정확히 구분해서 사용해야하기 때문에 확실히 정리하고 넘어가자.
- 클래스 : 객체 데이터를 만드는 템플릿(설계도)
- 객체 : 클래스(템플릿)과 new 연산자를 통해 만든 실 데이터가 들어있는 변수
- 인스턴스 : 어떤 객체가 어떤 클래스의 객체인지 관계를 설명할때 (객체 선언 == 클래스 인스턴스화)
- 클래스 필드 / 멤버 / 속성 : 클래스 안에 있는 변수를 지칭
- 메서드 : 클래스 안에 있는 함수(function)를 지칭
- 생성자 : 클래스로 객체를 만들때 각 객체의 멤버 데이터(변수)들의 값을 초기 생성 해줄수 있는 특수 메서드
객체(object) / 인스턴스(instance)
클래스가 어떤 데이터의 구조 설계도라면, 객체는 설계도를 이용해 찍어낸 실 데이터라고 보면 된다.
그리고 클래스에 의해서 만들어진 객체를 인스턴스 라고도 한다.
객체와 인스턴스는 뜻하는바가 비슷해서 혼동이 올 수 있는데, 이렇게 생각 해 보도록 하자.
Animal cat = new Animal()
이렇게 만들어진 cat은 객체이다. 그리고 cat이라는 객체는 Animal의 인스턴스(instance) 이다. 즉, 인스턴스라는 말은 특정 객체(cat)가 어떤 클래스(Animal)의 객체인지를 관계위주로 설명할 때 사용된다라고 보면 된다.
// 클래스
class Animal { ... }
public class Sample {
public static void main(String[] args) {
// 변수 cat은 객체
// 변수 catd은 Animal 클래스의 인스턴스
Animal cat = new Animal(); // 클래스라는 설계도를 통해 객체 데이터를 new 생성
}
}
@뿌링꿀 :: 뿌링뿌링 Dev
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!