자바의 정석 - 객체지향1

<space>·2021년 3월 7일
0

Java

목록 보기
3/6

https://www.youtube.com/channel/UC1IsspG2U_SYK8tZoRsyvfg
유튜브 남궁성의 정석코드 채널
'자바의 정석 - 기초편'을 보고 메모한 것임을 알려드립니다.


*클래스
정의 : 클래스란 객체를 정의해 놓은 것
용도 : 클래스는 객체를 생성하는데 사용

*객체
정의 : 실제로 존재하는 것. 사물 또는 개념
용도 : 객체가 가지고 있는 기능과 속성에 따라 다름

-클래스 = 제품 설계도(TV 설계도)
-객체 = 제품(TV)

*객체(TV) = 속성(변수) + 기능(메소드)
속성 => 크기, 길이, 높이, 색상, 볼륨, 채널 등
기능 => 켜기, 끄기, 볼륨 높이기, 볼륨 낯추기 등

*인스턴스
객체 : 모든 인스턴스를 대표하는 일반적 용어
인스턴스 : 특정 클래스로부터 생성된 객체(예 : TV인스턴스)

-클래스 -> 인스턴스화 -> 인스턴스(객체)

*클래스(설계도)가 왜 필요한가?
객체(제품)를 생성하기 위해

*객체(제품)가 왜 필요한가?
객체(제품)를 사용하기 위해

*객체(제품)를 사용한다는 것은?
객체(제품)가 가진 속성(변수)과 기능(메소드)을 사용하려고

*하나의 소스파일에 여러 클래스 작성
Hello2. java
public class Hello2 { }            =>       public class가 있는 경우, 소스파일의 이름은 반드시 public class과 일치해야한다.
        class Hello3 { }
--------------------------------
Hello2. java
class Hello2 { }                   => 	public class가 하나도 없는 경우, 소스파일의 이름은 'Hello2.java', 'Hello3.java' 둘 다 가능하다.
class Hello3 { }
 
-하나의 소스파일에는 하나의 클래스만 작성하는 것이 바람직
-하나의 소스파일에는 하나의 public class만 허용

*객체의 생성
클래스 변수명;	// 클래스의 객체를 참조하기 위한 참조변수 선언
변수명 = new 클래스명();	// 클래스의 객체를 생성 후, 객체의 주소를 참조변수에 저장
Tv t;	//Tv클래스 타입의 참조변수 t를 선언
t = new Tv();	// Tv인스턴스를 생성한 후, 생성된 Tv인스턴스의 주소를 t에 저장

*객체의 사용
t.channel = 7;	// Tv인스턴스의 멤버변수 channel의 값을 7로 한다.
t.channelDown();	// Tv인스턴스의 메소드 channelDown()을 호출한다.
System.out.println("현재 채널은 " + t.channel + " 입니다. ");

*객체의 생성과 사용
t 0x100 	=> Tv리모콘
0x100	=> 객체주소
---------------------------
color : null
power : false				=> 모두 Tv 객체
channel : 0
---------------------------
power()
channelUp()
channelDown()
----------------------------

Tv t1 = new Tv();
Tv t2 = new Tv();		=> 객체를 만들때 마다 Tv 클래스의 정의된 변수들이 만들어진다,
t1.channel = 7;		     t1 = 0x100, t2 = 0x200 서로 다른 참조변수 
변수 = 하나의 값만 저장 가능

 

t1은 0x100의 주소를 가지고 
t2은 0x200의 주소를 가진다고 가정했을때,
t2 = t1; 이라고 선언한다면 t2의 주소는 0x100으로 바뀐다.
따라서, 0x200의 주소를 가진 6개의 멤버(3개의 변수와 3개의 메소드)는 가비지 컬렉션에 의해서 정리된다.

*객체 배열
객체 배열 == 참조변수 배열
Tv tv1, tv2, tv3;	=>	Tv[] tvArr = new Tv[3];

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

위와 같은 참조변수 3개(t1, t2, t3)를 배열로 만들면
다음과 같다.

Tv[] tvArr = new Tv[3];		//길이가 3인 Tv타입의 참조변수 배열
tvArr[0] = new Tv();	//객체를 생성해서 배열의 각 요소에 저장
tvArr[1] = new Tv();
tvArr[2] = new Tv();

따라서, 객체 배열은 참조변수 배열이라고 한다.



자료 출처 : 자바의 정석 요약집
(https://github.com/castello/javajungsuk_basic/blob/master/javajungsuk_basic_%EC%9A%94%EC%95%BD%EC%A7%91.pdf)

profile
갓 프로그래밍에 입문

0개의 댓글