본문 바로가기
  • 시 쓰는 개발자
프로그래밍 문법/Java

6장 객체지향 (1) 객체 , 클래스

by poetDeveloper 2024. 3. 10.

JAVA의 정석 강의를 들으며 공부하며 정리했습니다. 너무 자잘한 내용은 안적었습니다.

 

[자바의 정석 - 기초편] ch6-1 객체지향 언어

- 6, 7장이 제일 중요하니 반복해서 공부한다.

- 객체지향 규칙은 외워라. 그냥 a4용지에 적어서 외우기!!

[자바의 정석 - 기초편] ch6-2~4 클래스와 객체

  • 클래스(설계도) : 객체를 정의하는 것. 객체 생성에 사용
  • 객체(제품) : 실제로 존재하는 것. 객체가 가지고 있는 기능과 속성에 따라 용도가 달라짐. 객체 = 속성(변수) + 기능(메소드)
  • 인스턴스 : 객체랑 똑같다. 다만, 객체는 모든 인스턴스를 대표하는 general한 용어이고, 인스턴스는 특정 클래스로부터 생성된 객체를 말한다.

Q. 클래스가 필요한 이유는?

A. 객체를 생성하기 위해

Q. 객체는 왜 필요한가?

A. 객체를 사용하기 위해

Q. 객체를 사용한다는 것은 무슨 의미?

A. 객체가 가진 속성과 기능을 사용하려고

[자바의 정석 - 기초편] ch6-5 한파일 여러 클래스 작성하기

하나의 소스 파일에 여러 클래스를 작성할 때 주의사항들

  • public class의 이름과 소스파일의 이름은 서로 같아야 한다. 대소문자까지 같아야 한다.
  • public class는 하나의 파일에 하나만 있어야 한다.

[자바의 정석 - 기초편] ch6-6, 7 객체의 생성과 사용

  • 객체의 생성 : 객체를 다룰 땐 먼저 참조변수(리모콘 기능)가 필요하다. Tv t = new Tv(); 이때 t가 바로 리모콘 역할을 하는 참조변수이다. 저 코드로 리모콘 역할 t와 Tv역할 Tv()를 연결해주는 것이다.
  • 객체의 사용 : 객체를 사용한다는 것은 객체가 가진 속성(변수)과 기능(메소드)을 사용한다는 것. 객체를 다룰 땐 반드시 리모콘을 통해서만, 즉 참조변수로만 객체를 다룰 수 있다.
  • 객체마다 별도의 저장 공간을 가진다. ex. Tv t1 = new Tv(); Tv t2 = new Tv();서로 다른 객체가 만들어진다.

참고)

  • 하나의 인스턴스를 여러개의 참조변수가 가리키는 것은 가능
  • 하나의 참조변수가 여러개의 인스턴스를 가리키는 것은 불가능
  • 안쓰는 객체는 참조변수가 없어서 사용이 불가능하므로 가비지컬렉터가 메모리에서 제거해준다.

[자바의 정석 - 기초편] ch6-8 객체배열

객체배열 == 참조변수 배열

Tv t1 = new Tv();
Tv t2 = new Tv();
Tv t3 = new Tv();


Tv [] tvArr = new Tv[3]; // 이거만 쓰면 참조변수들만 만들어준 것이라서 객체 배열을 꼭 만들어줘야한다.
tvArr[0] = new Tv();
tvArr[1] = new Tv();
tvArr[2] = new Tv();

[자바의 정석 - 기초편] ch6-9, 10 클래스의 정의

1. 클래스 = 설계도

지금까지 리모콘으로 설명한 것이 설계도 스타일임.

 

2. 클래스 =  데이터 + 함수

  • 클래스 : 서로 관련있는 데이터뿐만 아니라 메소드도 함께 묶어놓은 공간
  • 변수 : 하나의 데이터를 저장할 수 있는 공간
  • 배열 : 같은 타입의 여러 데이터를 하나로 저장할 수 있는 공간
  • 구조체 : 타입에 상관 없이 서로 관련된 여러 데이터를 하나로 저장할 수 있는 공간

3. 클래스 =  사용자 정의 타입

클래스는 사용자 정의 타입이다. 즉, 원하는 타입을 직접 만들 수 있다.

ex. 시간을 다루는 클래스를 정의해준다.

class Time{
    int hour;
    int minute;
    int sccond;
}