JAVA

25.01.07 (화) / 객체지향과 클래스

동준1234 2025. 1. 7. 16:25

1. 객체지향이란?

- 객체를 지향하는 언어로, 객체 중심으로 돌아간다.

- 현실세계의 사물을 객체로 추상화 하고 이 객체간의 상호작용으로 프로그램이 돌아간다.

- 객체는 현실세계에서 독립적(목적이 있고 가치가 있는 것)으로 존재하는 모든 것을 의미한다.

-> 현실세계는 객체들간의 상호작용으로 돌아간다.

 

1.2 장점

- 재사용성 : 클래스와 상속을 통해 코드를 재사용할 수 있다.

- 유지보수성 : 캡슐화와 모듈화로 인해 코드 변경이 용이하다.

- 확장성 : 다형성을 활용하여 새로운 기능을 쉽게 추가할 수 있다.

- 현실 세계의 모델링 : 객체와 클래스가 현실 세계를 자연스럽게 모델링할 수 있다.


2. 클래스

- 객체지향에서 쓸 객체를 생성하기 위한 설계도라고 생각하면 된다.

- 클래스는 필드(인스턴스 변수)와 메소드(동작)을 정의하며, 객체가 어떤 데이터를 가지고 어떻게 동작해야 하는지를 정한다.

- 클래스는 객체를 만들기 위한 템플릿이며, 객체는 클래스에 정의된 구조와 동작을 따라 생성된 실체이다.

 

2.1 클래스의 구성요소

1. 필드

- 클래스가 가지는 데이터(변수)를 정의함.

- 객체의 속성에 해당한다.

대학교 클래스의 학생 이름, 국어,영어 최저 점수 변수를 정의한 <필드>

2. 생성자(Constructor)

- 객체가 생성될 때 호출되는 특별한 메소드

- 객체의 초기 상태를 설정한다.

대학교 클래스의 <생성자>

* 생성자에서 주로 쓰이는 this는 인스턴스 변수를 불러올 때 사용된다. 생성자를 선언할 때 괄호안에 있는 변수들을 매개변수라고 하는데, 필드에 있는 인스턴스 변수를 사용해야할 때가 많을때 this.변수명 으로 구분해서 사용한다.

-> 메소드에서 현재 객체를 반환할 때 사용하면 된다. / (생성자랑 더불어서 가장 헷갈렸던 부분이 this 였다.)

 

2-1. this 를 사용하는 이유

- 인스턴스 변수와 지역 변수의 이름 충돌을 해결한다.

- 메소드 또는 생성자에서 매개변수 이름과 인스턴스 변수 이름이 동일할 때, this 를 사용하여 인스턴스 변수를 구분한다.

- 코드 가독성 향상 (현재 객체를 명확히 표현 가능)


3. 메소드 (Method)

- 클래스가 가지는 동작(기능)을 정의한다.

- 클래스에서 메소드를 불러오기 때문에, main 클래스에 적기 복잡한 코드들을 메소드를 통해 해결할 수 있다.

- 객체가 수행할 행동을 나타낸다.

University 클래스의 <메소드>


전체 코드