Java OOP, 객체, 클래스, 인스턴스

BK·2024년 4월 4일
0

Java

목록 보기
2/9

Java는 널리 사용되는 객체 지향 프로그래밍 언어 및 소프트웨어 플랫폼으로, 노트북 컴퓨터, 모바일 디바이스, 게임 콘솔, 의료 장비 등을 포함하여 수십억 개의 디바이스에서 실행됩니다. Java의 규칙과 구문은 C 및 C++ 언어를 기반으로 합니다.
-출처 https://www.ibm.com/kr-ko/topics/java

Java는 객체 지향 프로그래밍 언어이다.

객체 지향 프로그래밍(OOP)

객체 지향 프로그래밍(Object Oriented Programming)이 뭔가. 단어 하나씩 나눠보자.

프로그래밍이란 프로그램을 만드는 행위를 의미한다. 주위 사람들이 코딩하냐고 물어보는 경우가 많은데, 코딩은 코드를 작성하는 행위를 의미한다. 프로그래밍코딩은 엄연히 다른 용어라고 생각한다. (그냥 그렇다고.)

객체 지향 ... 객체가 뭔지 부터 정의해야 할 것 같다.

객체(Object)란 실제로 존재하는 것을 의미한다. 실존하는 것이다.
객체 지향(Object Oriented)이란 어떠한 것을 볼 때 그것을 객체로서 바라보는 것을 의미한다고 생각하며, 마지막으로 객체 지향 프로그래밍(OOP)이란 프로그래밍에 있어서, 객체를 중심으로 프로그램을 설계하고 프로그램을 작성하는 것이라고 느껴진다.

절차 지향 프로그래밍

프로그래밍에 있어서 객체 지향 프로그래밍 방법만 있는것은 아니다. 절차 지향 프로그래밍도 존재한다. 프로그래밍이 처음 사용되던 시기에는 기계를 동작 시키기 위해 프로그램을 개발하는 상황이 많았기에 절차 지향 프로그래밍이 적합했으나, 웹/ICT 기술 발전으로 인해 인간과 많은 객체가 서로 상호작용하는 현재 시기에는 절차 지향 프로그래밍보다 객체 지향 프로그래밍이 더 적합 하지 않은가 싶다.

클래스

Java를 활용해 프로그램을 개발하다 보면 클래스를 작성하게 된다. Java는 모든게 다 클래스다(interface). 처음 java를 접했을 때 보통 붕어빵과 붕어빵에 비유하여 클래스와 객체를 설명한다. 모호한 비유라고 생각한다. C언어만 배우다가 Java를 접한 본인은 C의 구조체와 뭐가 다른가 싶었지만, 구조체와 달리 함수아니다 메소드가 있다. 그떈 그렇게 느꼈었다

객체, 인스턴스

Java에서 class를 작성하고 new ClassName()(생성자)으로 인스턴스를 생성할 수 있다. 붕어빵 틀, 또는 설계도의 개념인 class를 통해 instance를 생성하게 되는 것이다.
그럼 객체는 뭔가. 개인적으로 인스턴스는 생성되어 메모리에 존재하는 객체 하나하나를 의미하고, 객체는 한 클래스로 부터 생성된 인스턴스들의 집합, 또는 프로그램 설계 단계에 있어 하나의 객체로 보고 모델링한 것, 구현하고자 하는 것이 객체를 의미한다고 생각한다.

요약...?

프로그램 설계 단계에서 객체를 정의하고, 우리는 이를 class(라는 설계도)로 작성한다.
작성한 class를 통해 instance를 생성한다. class를 통해 구현된(memory에 적재된) 것을 instance라 한다.
객체란 설계 단계에서 정의한 것, 그리고 class를 통해 생성된 instance들의 집합을 의미한다.
맞는지는 모르겠다

0개의 댓글