1. 객체 지향 프로그래밍이란?

컴퓨터가 모니터, 본체, 키보드로 이루어져 있는 것처럼 프로그램도 부품에 해당하는 객체들을 먼저 만들고, 이 객체들을 조합해서 완성하는 방식

→ 프로그래밍 할 때 무작정 생각나는 대로 만드는 게 아니라, 컴퓨터의 부품같이 하위 객체부터 명확하게 차근차근 만들어가는 것

2. 객체 생성

먼저 만들고자 하는 객체에 대한 클래스를 선언해야 함

이 클래스 안에는

  1. 필드(어떤 데이터를 갖는지)
  2. 메소드(객체가 어떻게 동작하는지)
  3. 생성자(객체를 어떻게 생성하는지)

에 대한 정의를 갖는다.

// 하나의 소스파일 안에 여러 개의 클래스를 선언할 수 있음.

public class Car{
  //필드 선언
	String model;    //데이터타입 + 변수이름
  //메소드 선언
  int start(){}    //리턴타입 + 메소드명 + 매개변수 + 실행블록
  //생성자 선언
  Car(){}          //클래스명 + 매개변수 + 초기화 코드

// 생성자 선언을 생략하면 기본 생성자가 생성됨

// 메소드 선언시 리턴 타입이 있을 때, return 값을 지정해야 함

//// 메소드 오버로딩 : 매개 변수의 유형이 다르지만 같은 메소드를 사용하고 싶을 때, 같은 이름의 메소드를 여러개 선언

//// 생성자 오버로딩 : 메소드 오버로딩과 마찬가지