본문 바로가기
안 씀/java-개념

객체 지향과 자바

by unhyepnhj 2024. 5. 11.

객체 지향 언어의 특성

- 객체 지향 언어는 실세계의 객체를 프로그램 내에 표현하기 위해 클래스와 객체 개념을 도입

 

1. 캡슐화(Encapsulation): 객체를 캡슐로 싸서 내부를 보호하고 볼 수 없게 하는 것

- 객체의 본질적인 특징

- 외부의 접근으로부터 객체를 보호

  • 클래스(class): 자바에서 객체는 클래스라는 캡슐을 사용
    • 필드(멤버 변수)와 메소드(멤버 함수)로 구성 
  • 객체
    • 클래스의 모양대로 생성된 실체(instance)
    • 객체 내 데이터를 보호, 외부 접근 제한

2. 상속(Inheritance): 상위 객체의 속성이 하위 객체에 물려짐

- 하위 객체가 상위 객체의 속성을 모두 가짐

- 자바에서는 자식 클래스(서브 클래스)가 부모 클래스(수퍼 클래스)의 속성을 물려받고 그 기능을 확장

 

3. 다형성(Polymorphism): 같은 이름의 메소드가 클래스나 객체에 따라 다르게 동작하도록 구현

- 메소드 오버로딩: 같은 이름이지만 다르게 작동하는 메소드

- 메소드 오버라이딩: 슈퍼 클래스의 메소드를 서브 클래스마다 다르게 구현


객체 지향 언어의 목적

 

1. 소프트웨어의 생산성 향상

- 컴퓨터 산업 발전에 따른 소프트웨어의 생명 주기 단축

- 새로운 소프트웨어의 필요성 증가

- 소프트웨어를 빠른 속도로 생산할 필요성 증가

- 소프트웨어의 재사용을 위한 객체 지향 언어 발전

- 소프트웨어 생산성 증가

 

2. 실세계에 대한 쉬운 모델링

- 과거에는 데이터 처리나 계산의 절차를 잘 표현하는 절차 지향 언어가 적합

- 현재는 실세계의 일을 프로그래밍 하는 경우 증가

- 실세계의 일은 절차나 처리 과정보다는 많은 객체들의 상호 작용으로 묘사하는 것이 적합


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

 

절차 지향 프로그래밍

- 실행할 절차를 정하고 이 절차대로 프로그래밍

- 목적 달성을 위한 일의 흐름에 집중

- C 프로그래밍

 

객체 지향 프로그래밍

- 프로그램을 실제 세상에 가깝게 모델링

- 객체들의 관계, 상호 작용을 설계

- 각 객체를 클래스로 작성

'안 씀 > java-개념' 카테고리의 다른 글

생성자  (0) 2024.05.14
클래스와 객체  (0) 2024.05.14
오름차순/내림차순 정수 정렬  (0) 2024.05.11
래퍼 클래스(wrapper class)  (0) 2024.05.11
예외 처리  (0) 2024.05.10