내일배움캠프/TIL

JAVA가 가장 많이 사용되는 프로그래밍 언어인 이유

cork-7 2025. 1. 2. 23:20

객체지향

현실에서 어떤 물체를 만들 때 부품 하나하나를 만들어 조립하는 것처럼

소프트웨어에선 부품에 해당하는 객체를 먼저만들고 객체들을 하나씩 연결하여 프로그램을 만든다

이를 객체지향 프로그램이라 한다.

 

1) 객체

객체란?

  • 세상에 존재하는 식별 가능한 물체 [물리적 : 자동차 사람, 계산기 // 개념적 : 학문, 운동]
  • 속성(필드) + 행동(메소드)
  • 객체 모델링 : 현실의 객체를 프로그램상의 객체로 설계하는 것

객체 간 관계

  • 집합 관계 : 완성품과 부품의 관계[자동차 - 엔진, 타이어,핸들]
  • 사용 관계 : 객체의 속성(필드)을 읽고 변경하거나 행동(메소드)을 호충하는 관계[사람 - 자동차(전진, 후진)]
  • 상속 관계 : 부모와 자식의 관계(공장[부모]과 제품[제품]의 관계라 생각 할 수 있다.)

객체 지향 프로그램의 특징

- 캡슐화 : 객체의 속성, 행동을 하나로 묶어 외부에 감추는 것 [외부의 잘못된 사용으로 객체가 손상가지 않게하기 위해]

- 상속 : 부모 객체가 자식 객체에게 필드와 메소드를 물려주는것[코드이 재사용성을 높이며, 유지보수 시간을 최소화]

- 다향성 : 하나의 객체에서 필드와 메소드를 변경해 다른것을 만드는것 [자동차의 색상과 타이어

- 추상화 : 객체의 공통된 부분을 모아 상위 개념으로 새롭게 선언하는 

 

객체와 클래스

- 쉽게 설명해 클래스(설계도) 객체(제품)[인스턴스라고도 부른다]로 동일 클래스로 여러 개의 인스턴스를 만드는것

이를 인스턴스화라고 한다.

- 객체를 생성할려면 [클래스명 클래스변수 = new 클래스명]

 

 

2) 클래스

설계도를 작성하는 작업

- 클래스명은 대문자로 시작하며 카멜스타일로 작성

- 구성 : 필드/생성자/메소드

 

  • 필드 : 객체의 데이터를 저장 [고유 데이터, 상태 데이터, 객체 데이터]
  • 생성자 : new연산자로 객체를 생성할 때 초기화역활을 당담한다. [리턴 타입이 없고 클래스와 이름이 동일]
  • 메소드 : 객체가 수행할 동작

클래스 멤버 [static]

  • 메소드 영역의 클래스와 같은 위치에 고정적으로 위치하고 있는 멤버
  • 객체의 생성 필요 없이 바로 사용이 가능
  • 클래스 멤버로 선언된 메서드는 인스턴스 멤버를 사용불가. [객체 생성없이 바로 사용가능해서]
  • 반대로 인스턴스 멤버로 선언된 메서드는 클래스 멤버를 사용가능

 

적고있는데도 이해가 안가냐