코딩을 하다 보면, 여러 언어들에 공통적으로 나오는 용어들이 존재한다.
객체 지향 프로그래밍, 객체(Object), 클래스(Class), 메서드(Method), 인스턴스(Instance) 등등 공통적으로 자주 나오는 용어들에 대해 한 번 정리하고 넘어가려 한다.
클래스란?
Class (classification)
필요한 기능을 조합해서 객체의 상태와 행위를 정의하여 이름을 붙여, 언제든 다시 불러와 편하게 사용할 수 있도록 만드는 기능
작게 구분하는 단위인 클래스를 사용하여 코딩하는 것이 바로 객체지향형 프로그래밍이다.
* iPhone이란 객체를 만들기 위해 틀을 구상, 설계하여 속성(Attribute)과 메서드(Method)를 정의하여, iPhone 클래스를 생성
객체란?
Object
객체(object)는 사전적인 정의로 '실제 존재하는 것'을 말한다.
클래스에 정의된 대로 구체화된 속성(Attribute)과 메서드(Method)를 가지고 있는 실체.
'클래스의 인스턴스'라고 불리기도 하며, 모든 인스턴스를 대표하는 포괄적인 의미를 갖는다.
* iPhone이란 객체는 색상(블랙), 용량(64GB)이라는 속성과, makeCall() 메서드를 통해 전화 기능을 수행한다
인스턴스란?
Instance
인스턴스는 객체에 포함된다 볼 수 있다.
객체 지향 언어적 관점에서 객체와 인스턴스의 차이점으로는 객체는 선언, 인스턴스는 실체화를 의미한다.
클래스의 타입으로 선언이 되었을 때 객체라고 부르며, 그 객체가 메모리에 할당되어 실제 사용될 때는 인스턴스라고 부른다.
즉, 객체는 실체에 초점을 두고 인스턴스는 관계에 초점을 맞춘다
* 어떤 원본으로부터 생성된 복제본을 의미
iPhone 객체에서 속성, 메서드를 조금씩 변경하여 만든 복제본. ( 블랙 ->블루), (64GB ->128GB)
생성자란?
constructor
클래스로부터 객체를 생성할 때 호출되어, 객체의 초기화를 담당한다.
클래스 이름과 동일한 이름을 가지며 반환 타입이 없습니다.
* 다음은 이때까지의 개념들로, 위 사진을 JAVA언어로 코딩 한 것이다.
// iPhone 클래스 정의
class iPhone {
String color;
int storage;
// 생성자 메서드
public iPhone(String color, int storage) {
this.color = color;
this.storage = storage;
}
// 다른 메서드들...
}
// 인스턴스 생성
iPhone blackPhone = new iPhone("블랙", 64); // 생성자 호출
iPhone bluePhone = new iPhone("블루", 128);
iPhone whitePhone = new iPhone("화이트", 256);
이렇게 코딩을 하는 과정에서 여러 '변수' 유형에 대한 개념 또한, 내가 완벽하게 가지고 있지 않다고 판단하였다.
다음 기록은 각각의 변수 개념에 대해 한 번 정리해보도록 해야겠다.
'Language > ☕ Java' 카테고리의 다른 글
[Java] 상속 (0) | 2024.08.12 |
---|---|
[Java] 반복문(for) (2) | 2024.08.08 |
[Java] 메모리 구조 & static (2) | 2024.08.07 |
[Java] 접근 제어자 (0) | 2024.08.07 |
변수란? (전역 변수,매개변수, 인스턴스 변수, 클래스 변수) (0) | 2024.05.23 |