JAVA/기초공부

[JAVA기초] 객체와 클래스의 개념

SoU330 2024. 9. 25. 01:42

 

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

소프트웨어 개발 패러다임 중 하나로 프로그램을 여러 개의 객체들로 나누어 설계하고 개발하는 방법론이다.

객체란 데이터와 이를 처리하는 함수를 하나로 묶은 개념으로, 현실 세계의 사물이나 개념을 컴퓨터 프로그램에서 표현하는 데 사용된다.

 

 

 

속성 (Attributes)

: 객체가 가지는 데이터 또는 상태

ex) 자동차 객체라면 속성은 색상, 브랜드, 속도 가 될 수 있다.

 

 

 

메서드 (Methods)

: 객체가 할 수 있는 행동 또는 동작

ex) 자동차 객체라면 메서드는 출발하기, 멈추기, 속도 변경하기 등이 될 수 있다.

 

 

 

속성과 메서드를 하나로 묶는다는 것은?

예를 들면 자동차 객체의 속성은 빨간색, 도요타 브랜드, 현재 속도 50km 라고 가정할 수 있고,

그 자동차의 가속 메서드를 호출해서 속도를 더 높이거나 브레이크 메서드를 호출해서 속도를 0으로 만들 수 있다.

 

 

 

 

객체가 가지는 특성

- 상속성 (Inheritance)

: 하위 클래스가 상위 클래스의 속성과 메서드를 물려받는 것.

물려받은 것에 새로운 멤버변수나 메소드를 추가하여 사용할 수 있다.

-> 코드를 재사용할 수 있어 중복을 줄이고 유지보수를 용이하게 할 수 있다.

 

- 캡슐화 또는 정보 은닉 (Encapsulation)

: 객체의 내부 구현을 숨기고 외부에서는 필요한 부분만 노출하는 것

주로 private 키워드를 사용해 속성을 보호하고 속성에 대한 접근은 public 메서드를 통해서만 할 수 있도록 설계한다.

= 직접 속성에 접근하는게 아니라 메서드를 통해서만 접근할 수 있다는 뜻

-> 객체의 무결성(데이터가 의도치 않게 변경되거나 손상되지 않도록 보장하는 것)을 유지하고 외부의 잘못된 접근으로부터 객체의 데이터를 보호할 수 있다.

 

- 다형성 (Polymorphism)

같은 이름의 메서드가 상황에 따라 다르게 동작하는 것

메서드 오버로딩과 메서드 오버라이딩의 형태가 있다.

메서드 오버로딩 (Method Overloading)

: 같은 이름의 메서드를 매개변수의 종류나 개수에 따라 여러 개 정의하는 것

메서드 오버라이딩 (Method Overriding)

: 상위 클래스에서 정의된 메서드를 하위 클래스에서 재정의하여 하위 클래스에 맞게 동작을 변경하는 것.