1. 객체지향이란?
- 객체를 지향하는 언어로, 객체 중심으로 돌아간다.
- 현실세계의 사물을 객체로 추상화 하고 이 객체간의 상호작용으로 프로그램이 돌아간다.
- 객체는 현실세계에서 독립적(목적이 있고 가치가 있는 것)으로 존재하는 모든 것을 의미한다.
-> 현실세계는 객체들간의 상호작용으로 돌아간다.
1.2 장점
- 재사용성 : 클래스와 상속을 통해 코드를 재사용할 수 있다.
- 유지보수성 : 캡슐화와 모듈화로 인해 코드 변경이 용이하다.
- 확장성 : 다형성을 활용하여 새로운 기능을 쉽게 추가할 수 있다.
- 현실 세계의 모델링 : 객체와 클래스가 현실 세계를 자연스럽게 모델링할 수 있다.
2. 클래스
- 객체지향에서 쓸 객체를 생성하기 위한 설계도라고 생각하면 된다.
- 클래스는 필드(인스턴스 변수)와 메소드(동작)을 정의하며, 객체가 어떤 데이터를 가지고 어떻게 동작해야 하는지를 정한다.
- 클래스는 객체를 만들기 위한 템플릿이며, 객체는 클래스에 정의된 구조와 동작을 따라 생성된 실체이다.
2.1 클래스의 구성요소
1. 필드
- 클래스가 가지는 데이터(변수)를 정의함.
- 객체의 속성에 해당한다.
2. 생성자(Constructor)
- 객체가 생성될 때 호출되는 특별한 메소드
- 객체의 초기 상태를 설정한다.
* 생성자에서 주로 쓰이는 this는 인스턴스 변수를 불러올 때 사용된다. 생성자를 선언할 때 괄호안에 있는 변수들을 매개변수라고 하는데, 필드에 있는 인스턴스 변수를 사용해야할 때가 많을때 this.변수명 으로 구분해서 사용한다.
-> 메소드에서 현재 객체를 반환할 때 사용하면 된다. / (생성자랑 더불어서 가장 헷갈렸던 부분이 this 였다.)
2-1. this 를 사용하는 이유
- 인스턴스 변수와 지역 변수의 이름 충돌을 해결한다.
- 메소드 또는 생성자에서 매개변수 이름과 인스턴스 변수 이름이 동일할 때, this 를 사용하여 인스턴스 변수를 구분한다.
- 코드 가독성 향상 (현재 객체를 명확히 표현 가능)
3. 메소드 (Method)
- 클래스가 가지는 동작(기능)을 정의한다.
- 클래스에서 메소드를 불러오기 때문에, main 클래스에 적기 복잡한 코드들을 메소드를 통해 해결할 수 있다.
- 객체가 수행할 행동을 나타낸다.
'JAVA' 카테고리의 다른 글
2025.01.06(월) 14일차 / 메소드 (0) | 2025.01.06 |
---|---|
2025.01.05(일) 복습 / 배열 (0) | 2025.01.05 |
2025.01.02 (목) 12일차/ JAVA FOR문, WHILE문 (0) | 2025.01.02 |
2024.12.30(월) 10일차 / Java 자료형 (0) | 2024.12.30 |
캡슐화란 무엇일까? (0) | 2024.11.19 |