본문 바로가기

Java/[패스트캠퍼스] 100% 환급 챌린지

패스트캠퍼스 환급챌린지 26일차 미션 (2월 26일) : 시그니처 백엔드 Path 초격차 패키지 Online. 강의 후기

https://fastcampus.co.kr/dev_online_besignature
수강 강의명

강의 내용

[1] 객체 생성 과정의 이해
[2] 생성자 메서드와 this

 

[1] 객체 생성 과정의 이해

현실 세계의 사람이라는 객체를 프로그램에서 사용하기 위해 사람의 상태 정보와 행위 정보를 뽑아 클래스로 설계함

모델링 된(만든) 객체를 사용하려면 메모리에 객체(실체)를 생성해야 함

*객체 생성 : 객체를 메모리에 올림(로딩)

Q. 한 사람의 데이터를 저장할 변수를 선언하시오.
Person p;
 // p : 객체변수, p라는 변수가 메모리에 만들어짐
변수 앞에는 자료형이 와야 하는데, 한 사람의 데이터를 저장하려면 사람이라는 자료형이 존재해야 함
*클래스 : 바구니 역할(데이터를 넣고 빼는 기억 공간)
*객체 자료형의 크기 : 4byte(32bit)(모든 자료형은 크기를 갖음)

객체를 메모리에 생성한 후 생성된 객체의 번지를 변수가 가리키게 하면 p가 Person 데이터를 넣을 수 있음

int a;  // a : 정수 한 개의 데이터를 넣음
Person p;  // p : 객체의 번지를 넣음
Q. 사람의 이름, 나이, 전화 번호를 저장할 객체를 생성하시오.
객체를 생성하는 구문
new Person(); 
// new연산자 생성자 메서드()
*new연산자 : 객체를 생성하는 연산자
*생성자 메서드() : 객체를 실제로 메모리에 생성하는 역할
                                  메모리에 설계해놓은 설계도대로 기억 공간을 만듦
                                  프로그램에서 모든 동작과 행위는 메서드로 만들어야 함
                                  클래스 이름과 동일해야 함
                                  기억 공간이 만들어진 객체를 인스턴스(instance)라 함
*인스턴스(실체) : 메모리에 만들어진 객체
*현실 세계에는 실체가 존재하지만, 프로그래밍에서는 실체가 하나의 구조로 메모리에 만들어짐
Q. 생성된 객체를 변수에 할당(대입, 저장) 하시오.
Person p = new Person(); 
// p : 인스턴스 변수
만들어진 인스턴스를 변수에 할당(p가 Person을 저장)
p에 (메모리에 만들어진)Person의 번지가 저장되므로 Person(인스턴스)을 가리킴
*인스턴스 변수 : 변수에 만들어진 객체(인스턴스)의 번지가 들어간 상태(실체를 가리킴)
                               변수를 생략하여 인스턴스라 부름
                               객체를 가리키는 구체적인 이름, 구체적인 대상(인스턴스)을 가리킴
                               객체(추상적), 인스턴스(실체를 가리킨다는 표현)
                               메모리는 눈에 보이지 않으므로 인스턴스 변수를 통해 메모리를 핸들링해야 함(p는 한 사람을 가리킴)
                               인스턴스 변수는 인스턴스의 대표 이름이 되기 때문에 인스턴스 변수(p)를 한 사람으로 봄
*이름 : 어떤 한 사람을 대표하는 역할

*사람(실체) : 실체를 부를 때 이름을 부름
*p가 Person(실체)의 대표 이름이므로 한 사람의 데이터(객체)를 나타냄
Q. 모델링 된 Person클래스를 이용하여 객체를 메모리에 생성하시오.
Person p = new Person();
인스턴스를 만드는 과정
객체를 메모리에 생성한 다음 인스턴스 변수를 만들어야 p를 통해 Person(객체) 핸들링 가능

(1) 객체 생성(메모리에 실체가 만들어짐)
(2) 변수(p)에 생성된 객체를 저장(실체가 p에 저장됨)

 

[2] 생성자 메서드와 this

생성자 메서드(Constructor)

객체를 생성하는 메서드를 부르는 이름

객체를 메모리에 생성하는 역할(프로그램에서의 모든 행위는 메서드가 함)

new Person();
(1) new연산에 의해 호출 된다.
객체를 생성할 때는 new연산자 옆에 생성자 메서드를 적어줘야 객체가 메모리에 만들어짐
메서드가 호출되려면 어딘가에는 정의되어 있어야 하며, 정의된 메서드를 사용하려면 메서드를 호출해야 함
Person()이라는 메서드가 있어야 Person 클래스의 생성자 메서드가 호출된다.

(2) 자신이 가지고 있는 멤버들을 메모리에 올려 객체를 생성하는 역할

(3) 메서드 이름은 클래스 이름과 동일해야 함
컴파일러가 생성자 메서드임을 알기 위함

(4) 접근 제한자가 public인 경우에만 호출 된다.

(5) 모든 클래스는 기본 생성자(default constructor)를 갖는다.
생성자 코드를 적지 않으면 컴파일러가 자동으로 기본 생성자를 넣음
생성자가 눈에 보이지는 않지만 코드 내부에 생략됨
클래스는 자기 자신을 메모리에 생성해야 하기 때문에 객체를 생성할 수 있는 기본 생성자가 기본적으로 들어있음

(6) 객체의 초기화를 위해 사용된다.
생성자 메서드안에 작성하는 코드는 컴파일러가 내부적으로 동작한다.
객체를 생성하는 건 생성자에 시키는 일(객체가 메모리에 만들어지면 만들어짐과 동시에 값을 집어넣음)

(7) 리턴 타입이 없음
일반적인 메서드에서는 void를 적어줘야 하지만, 생성자 메서드는 독특하기 때문에 void를 사용하지 않음
메서드가 특별한 용도(객체를 생성하는 역할)로 사용된다.

 


 

수강 화면수강 화면
수강 화면

 

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.

https://bit.ly/48sS29N

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr