Back-end Skill/JAVA

Java #2 자바와 객체지향 . 객체! 객체!,, 객체지향이 중요하다고? 근데 그게 뭔데?

Sophie소피 2021. 11. 18. 22:00

자바와 객체 지향

 

자바와 객체 지향은 뗄레야 뗄 수 없는 개념이다. 

자바는 처음부터 객체 지향 언어로 만들어졌다.

객체 지향 프로그래밍 (Object Oriented Programming, OOP)

간단히 프로그램을 작성하는 기법이다. 

부품에 해당하는 객체 (Object)를 먼저 만들고, 이것들을 하나씩 조립 및 연결해서

전체 프로그램을 완성하는 기법이다.

객체 지향이 잘 적용된 언어는 코드의 구조가 명확하기 때문에

코드를 이해하기 쉽고, 관리와 유지 보수가 효율적인 특징을 가지고 있다. 

다양한 언어와 함께 보도록하자. 

 

객체 지향이 코드에 어떻게 드러날까?

다른 언어와 비교해 보자!

다음은 Hello라는 문구를 출력하기 위한 코드이다. 

 

Java ver.

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello");
    }
}

 

C ver.

#include <stdio.h>

int main()
{
    printf("Hello\n");
    return 0;
}

 

Python ver. 

print("Hello")

코드 생김새가 다 다르다는 것을 볼 수 있다. 

먼저 C언어와 비교해보면  C언어는 객체 지향이 적용되지 않은 대표적인 언어이다.

Java보다는 사용되는 단어 수가 적고, 비교적 간단한 형태로 작성되어있다. 

 

이번엔 Python과 비교해 봅시다. Python은 코드가 더 짧은걸 볼 수있다. 

Python은 객체 지향이 적용된 언어가 맞지만, 객체 지향이 강하게 드러나는 언어는 아니다.

오히려 많은 내용을 생략하고, 쉽게 코드를 작성하는 것에 초점이 맞추어져 있다.

 

반면, 자바는 객체 지향의 개념이 언어에 강하게 드러나는 특징이 있습니다.

그래서 자바는 한 줄을 출력하는 데도 public, class, static, void, System, out 등 많은 용어가 등장한다.

그리고 그만큼 많은 의미를 코드에서 전달하고 있다는 걸 볼 수가 있다. 

객체 지향적 구조와 설계를 정확히 표현하는 것에 특화된 언어라고 할 수 있다.

따라서 객체 지향을 배우지 않고는 자바를 완벽히 이해할 수 없다.

자바의 언어 자체에 객체 지향적인 개념이 녹아들어 있기 때문에,

 자연스레 상속, 인터페이스 등 기본적인 객체 지향 개념을 함께 알아야한다. 

물론 위에서 살펴본 'Hello' 출력 코드에도 이런 개념이 포함되어 있는걸 확인할 수있다.

다른 언어보다는 코드가 길어서 이해하기 어렵다. 하지만 'Hello' 출력 코드를 이해한다면,

객체 지향 개념을 알 수가 있다. 그리고 자바 프로그래밍의 기본적인 구조를 알 수 있다.