프로그래밍 언어/JAVA

객체 지향과 자바

· 코딩마이데이

객체 지향 언어의 특성

객체를 프로그램 내에 표현하기 위해 클래스와 객체 개념을 도입하였습니다.

 

캡슐화(Encapsulation)

객체를 캡슐로 싸서 내부를 보호하고 볼 수 없게 하는 것으로 객체의 가장 본질적인 특징입니다.

객체는 캡슐화가 기본 원칙이지만 외부와의 접속을 위해 몇 부분만 공개 노출합니다.

자바에서 객체는 클래스(class)라는 캡슐을 사용하며, 필드(멤버 변수)와 메소드(멤버 함수)로 구성됩니다.

 

자바에서 클래스로 객체 캡슐화

 

 

상속(Inheritance)

상위 개체의 속성이 하위 개체에 물려져서, 하위 개체가 상위 개체의 속성을 모두 가지는 관계입니다.

자바의 상속은 자식 클래스가 부모 클래스의 속성을 물려받고 기능을 추가하여 확장(extends)하는 개념입니다.

자바에서 부모 클래스를 슈퍼 클래스(super class)라고 부르며 자식 클래스를 서브 클래스(sub class)라고 부릅니다.

상속은 슈퍼 클래스의 필드와 메소드를 물려받아 코드를 재사용함으로써, 코드 작성에 드는 시간과 비용을 줄입니다.

Animal 클래스를 상속받은 Human 클래스와 객체 관계

 

 

다형성(Polymorphism)

같은 이름의 메소드가 클래스 혹은 객체에 따라 다르게 동작하므로 구현되는 것을 말합니다.

슈퍼 클래스(부모 클래스)에 구현된 메소드를, 서브 클래스(자식 클래스)에서 동일한 이름으로 자신의 특징에 맞게 다시 구현하는 이른바 메소드 오버라이딩(overriding)으로 불립니다.

다형성의 또 다른 사례는 클래스 내에서 이름이 같지만 서로 다르게 동작하는 메소드를 여러 개 만드는 메소드 오버로딩(overloading)이 있습니다.

 

객체 지향 언어의 목적

소프트웨어의 생산형 향상

상속을 통해 이미 작성된 코드를 재사용하기 쉬우며, 부분 수정을 통해 소프트웨어를 다시 만드는 부담을 대폭 줄일 수 있습니다.

 

실세계에 대한 쉬운 모델링

객체 사이의 상호 작용을 표현하는 방법으로 효과적인 프로그래밍을 할 수 있게 합니다.

 

절차 지향 프로그래밍과 객체 지향 프로그래밍

실행하고자 하는 절차를 정하고, 이 절차대로 프로그래밍하는 방법을 절차 지향 프로그래밍이라고 부릅니다.

절차 지향 프로그래밍은 목적을 달성하기 위해 흐름에 중점을 둡니다.

 

그러나, 객체 지향 개념은 프로그램을 보다 실제 세상에 가깝게 모델링(modeling)하여 실제 세장의 물체를 객체로 표현하고, 객체들의 관계, 상호 작용을 설계한 뒤, 각 객체를 클레스로 작성하면 프로그램이 완성됩니다.

'프로그래밍 언어 > JAVA' 카테고리의 다른 글

생성자  (1) 2025.01.30
자바 클래스 만들기  (0) 2025.01.29
자바의 예외 처리  (0) 2025.01.28
main() 메소드  (1) 2025.01.27
메소드에서 배열 리턴  (0) 2025.01.26