9일차
위에서부터 순서대로 연산을 하는 컴퓨터 과정이 아닌, 객체 지향에 대해 배웠다.
실생활의 사물들을 구현해내자는 마인드로 설계된 구조라고 한다.
실제 사물들이 어떤 순서에 의해 기능하지 않듯, 각각의 사물은 사물로서 존재한다.
그 사물의 기능이 필요할 때 가져다 쓰는 방식이 객체지향 프로그래밍이다.
객체지향에 대해 알기 전에 먼저, 클래스와 객체에 대해 알아야겠다.
클래스
객체를 정의한 설계도, 표준 양식, 틀 등 객체를 생성하는 역할.
- 클래스는 아래 4가지 요소로 이루어져 있으며, 생성자를 제외한 3요소를 멤버라고 부른다.
- 필드: 생성할 객체의 속성을 결정한다. Ex. 자동차 모델명, 색상 등
- 메서드: 생성할 객체의 기능을 결정한다. Ex. 시동, 주행, 가속, 정지 등
- 생성자: 클래스의 객체를 생성한다.
- 이너 클래스: 클래스 내부의 클래스
Class Car {
//필드
private String model; // 자동차 모델명
private int wheels; // 바퀴의 갯수
private int doors; // 문의 갯수
private String color; // 색상
//메서드
void power() { System.out.println("부르릉"); } // 시동 걸기
void accelerate() { System.out.println("부우우웅"); } // 가속하기
void stop(){ System.out.println("끼이이익"); } // 정지하기
}
//생성자
클래스명 참조_변수명;
참조_변수명 = new 생성자();
//
클래스명 참조_변수명 = new 생성자();
class CarTest {
public static void main(String[] args){
Car bmw = new Car(); // Car클래스를 기반으로 생성된 bmw 인스턴스(객체)
Car tesla = new Car(); // Car클래스를 기반으로 생성된 tesla 인스턴스(객체)
Car audi = new Car(); // Car클래스를 기반으로 생성된 audi 인스턴스(객체)
}
객체
실재하는 모든 사물, 클래스에 의해 생성, 모든 인스턴스를 포괄하는 개념
- 인스턴스: 해당 객체가 어떤 클래스로부터 생성됐는지 강조
- 인스턴스는 힙 메모리에 주소값을 저장한다.
- new 생성자를 이용해 생성하는 모든 것은 객체이며, 해당 클래스의 인스턴스이다. (배열, Scanner 등 포함)
- 클래스의 멤버들은 객체 내부에 위치한다.
- 메서드는 객체 외부에 따로 저장된다. 반복 사용되므로 객체 안에 개별 저장할 필요가 없다.
필드
클래스에 포함된 변수. 클래스에서 객체의 속성을 정의하기 위해 사용된다.
인스턴스 변수
- 인스턴스가 가지는 각각의 고유한 속성을 저장하기 위한 변수.
- new 생성자를 통해 인스턴스가 생성될 때 만들어진다.
클래스 변수
static이 함께 선언된 변수
- 클래스 변수는 공통된 저장공간을 가지고 있다.
- 인스턴스(객체) 외부에 존재하므로, 인스턴스를 생성하지 않고도 선언이 가능하다.
- 모든 객체가 공유할 수 있는 변수이다.
지역 변수
메서드 내에 선언되는 변수. 메서드 내에서만 사용이 가능하다.
메서드
특정 작없을 수행하는 일련의 명령문들의 집합
메서드 시그니처
- 메서드 이름, 파라미터의 타입과 갯수
- 메서드 오버로딩
- 같은 이름의 메서드를 2개 이상 쓸 수 있다. 이 때 받아야되는 파라미터의 갯수나 타입이 달라야 한다.
- 반환타입은 오버로딩과 상관없다.
- 하나의 메서드로 여러가지 경우를 해결 할 수 있다.
메서드 바디
- 메서드 반환타입 void는 말 그대로 반환을 비워둔다. return문을 사용할 필요가 없다.
'코드스테이츠 > Section 1 JAVA' 카테고리의 다른 글
2023.04.25-26 11일차-12일차 상속, 캡슐화, 다형성, 추상화 (0) | 2023.07.14 |
---|---|
2023.04.24 10일차. 생성자 (0) | 2023.07.14 |
2023.04.20 8일차. 배열 (0) | 2023.07.14 |
2023.04.19 7일차. 반복문(for, while, do-while) (0) | 2023.07.14 |
2023.04.18 6일차. 조건문(if, switch) (0) | 2023.07.13 |