본문 바로가기

개발 이야기/CC-Java

[1주차] 자동차 경주 게임 - Step3. 피드백(1)_객체 선언

* 하기 내용은 프로그래머스 자바 입문 강의 및 소스코드 + 구글링 + 제 개인적 견해로 작성된 내용입니다.

1. 객체 선언하기

  • 자바는 객체지향 언어이다.
  • 프로그램을 구성하는 요소가 객체이다.
  • 객체가 상호작용 하도록 만드는 것이 프로그래밍이다.
  • 따라서, 자바는 프로그램을 구성하는 요소를 상호작용하도록 만드는 프로그래밍 언어이다.

1) 클래스( =객체를 만들기 위한 틀 )

  • 자바는 객체를 만들기 위해서, 반드시 클래스를 먼저 만들어야 한다. 
  • 클래스는 객체를 만들기 위한 틀이다.
  • 예) 붕어빵 = 객체/붕어빵 틀 = 클래스

▼ 클래스 선언 예시

클래스 생성

i) Car.java 파일을 만들어 자동차 클래스를 만든다.

ii) 저장을 하면 이클립스는 컴파일하여 디스크에 Car라는 클래스를 생성한다.

iii) 자동차 클래스가 생성되었다고 자동차가 만들어 진 것은 아니다.

▼ 객체 선언의 예시

Car의 객체 생성하기

i) 클래스를 이용해서 객체를 만들 때에는 클래스가 참조형 타입이 될 수 있다.

...더보기
  • 자바는 변수를 선언하려면 반드시, 변수의 타입을 정의해 주어야 한다.
  • 자바의 변수타입 
  • ① 기본형 타입: 논리형(boolean), 문자형(char), 정수형(byte, short, int, long), 실수형(float, double)
  • 참조형 타입: 기본형 타입을 제외한 모든 타입

▼ 변수 타입의 예시

기본형/ 참조형 타입의 변수를 선언
  • i라는 4바이트 크기의 정수 타입 변수에, 숫자 4를 저장한다는 것을 의미
  • String이라는 클래스를 이용해서 참조형 타입변수 str을 선언
  • new 라는 키워드는 객체를 메모리에 올려준다. 이렇게 메모리에 올라간 객체를 인스턴스라고 한다.
  • 메모리에 올라간 인스턴스를 가리키는 변수 = 참조하는 변수 = 레퍼런스 하는 변수가 str 이다.
  • '참조한다. 레퍼런스 한다' 라는 것은 변수가 인스턴스를 가지고 있는게 아니라 말그대로 가리킨다는 의미이다.
  • str이라는 변수에는 메모리의 위치 값이 저장되는 것이다. 메모리의 위치값이 저장된다고 하더라도, 어떤 메모리에 저장되는지 그 정보를 알 수 있는 방법은 없다. 그렇기 때문에 str변수는 String 인스턴스를 참조한다고 알고 있으면 된다.

ii) 객체를 생성 할 때는 new 라는 타입을 이용한다.

  • new 연산자는 new연산자 뒤에 나오는 생성자를 이용하여 메모리에 객체를 만들라는 명령이다.
  • 쉽게 말해 '객체를 메모리에 올려주세요!' 하는 것이다.
  • 메모리에 만들어진 객체를 인스턴스(instance)라고도 한다.
  • 이렇게 만들어진 객체를 참조하는 변수가 c1 , c2 이다
  • 위의 코드가 실행되면 Car라는 객체가 2개가 만들어지고 각각의 객체를 참조하는 c1과 c2변수가 선언
...더보기
  • 참조한다. 레퍼런스 한다라는 것은 변수가 인스턴스를 가지고 있는게 아니라 말그대로 가리킨다는 의미이다.
  • str이라는 변수에는 메모리의 위치 값이 저장되는 것이다. 메모리의 위치값이 저장된다고 하더라도, 어떤 메모리에 저장되는지 그 정보를 알 수 있는 방법은 없다. 그렇기 때문에 str변수는 String 인스턴스를 참조한다라고만 아시면 된다.

2) 필드(field)

  • 필드는 클래스의 구성 요소.
  • 자동차 객체가 있다 → 자동차는 자동차 이름과 번호를 가진다 → 가지고 있다 = 속성(= field)
  • 예) 직장인이 가질 수 있는 속성(필드): 이름, 사원번호
  • 필드가 물체의 상태라면 물체의 행동에 해당하는 것이 메소드다.
  • 예) 필드: 자동차의 이름, 자동차의 번호/ 메소드: 자동차의 전진기능, 자동차의 후진기능
  • <참고> 매소드란 클래스가 가지고 있는 기능이다.
...더보기
  • 이름과 번호를 필드로 가지고 있는 Car 클래스 선언
  • Car 클래스를 인스턴스화 하기
  • 속성 이용하기: 참조 변수 다음에 나오는 점(.)은 참조변수가 참조하는 객체가 가지고 있는 것을 사용할 때 사용.

 

3) 메소드

  • 필드가 물체의 상태라면 물체의 행동에 해당하는 것이 메소드다.
  • 메소드를 사용하기 위해서는 메소드가 정의 된 클래스가 생성 되어야 한다.
  • 객체를 생성할 때는 new 연산자를 이용한다.
  • 메소드를 사용할 때는 생성된 클래스를 참조하는 레퍼런스변수.메소드명()으로 사용 할 수 있다.