자바, 객체지향!

자바, 객체지향!

자바 프로그래밍의 꽃, 조립식 프로그래밍!

10 생성자 호출과 정의

# 생성자(constructor) 호출과 정의 ## 들어가며.. --- 붕어빵 틀로 붕어빵을 찍어내는 마법 같은 매직! ![클라우드스터딩-자바-생성자-호출-인스턴스화-constructor][Imgur](https://i.imgur.com/dl4KpzQ.png) 클래스를 사용하여 객체를 만드는 방법! 생성자에 대해 알아보자. 1. 생성자란 2. 생성자의 역할 3. 생성자 호출과 정의 ## 1. 생성자란 --- #### 무엇? 생성자란, 객체를 만드는 특별한 메소드다. #### 코드 예? 우리는 이미 생성자를 사용했었다. 아래 코드에서 생성자를 찾아보자. 정답은 <kbd>new Cat()</kbd>이다. ![클라우드스터딩-자바-디폴트-생성자-호출](https://i.imgur.com/CR0MkmA.png) ## 2. 생성자의 역할 --- 생성자는 두가지 역할을 한다. 1. 객체 생성 - 객체를 만드는 것 2. 객체 초기화 - 객체의 필드 값을 설정하는 것 #### 이전 방식 이전 생성자를 몰랐을 당시. 생성자는 객체를 만들기만 했다. 초기화는 따로 진행했었다. ``` /* 1. 객체 생성 */ Cat c = new Cat(); /* 2. 필드 초기화 */ c.name = "네로"; c.weight = 3.78; c.age = 3; ``` #### 생성자 활용 방식 생성자를 활용하면, 위 코드를 단 한 줄로 만들 수 있다. ``` /* 객체 생성과 동시에 초기화 */ Cat c = new Cat("네로", 3.78, 3); ``` ## 3. 생성자 호출과 정의 --- 생성자 또한 특별하지만 메소드이다. 따라서 호출과 정의로 나뉘어 사용된다. ![클라우드스터딩-자바-생성자-호출과-정의](https://i.imgur.com/EJNuDFo.png) #### 생성자 호출 생성자 호출 방식은 아래와 같다. ``` // 클래스_타입 변수명 = new 클래스_이름(전달 값); Cat c = new Cat("네로", 3.78, 3); ``` #### 생성자 정의 생성자 또한 메소드이므로 사용을 위해 먼저 정의되어야 한다. 일반 메소드와 차이는 리턴 타입이 없다는 것. ``` class Cat { String name; double weight; int age; /* 생성자 정의 */ Cat (String s, double d, int i) { name = s; weight = d; age = i; } } ``` ## 요약 --- ![클라우드스터딩-자바-생성자-요약](https://i.imgur.com/pMmmkPn.png) #### 생성자 - 생성자는 객체를 만드는 특별한 메소드다. - 생성자는 역할은, 객체 생성과 필드 초기화이다. #### 생성자 특징 - 생성자 또한 메소드이기에, 호출과 정의로 나뉜다. - 생성자와 일반 메소드와의 차이는 리턴 타입의 유무다. ## 확인하기 --- <div class="interact_responsive_padding" style="padding:100% 0 0 0;position:relative;margin-bottom:5px;"><div class="interact_responsive_wrapper" style="height:100%;left:0;position:absolute;top:0;width:100%;"><iframe id="interactApp5cdd129935706c001424970c" width="100%" height="100%" style="border:none;max-width:100%;margin:0;" allowTransparency="true" frameborder="0" src="https://quiz.tryinteract.com/#/5cdd129935706c001424970c/q/1?method=iframe"></iframe></div></div> ## 도서구매 <a href="http://www.yes24.com/Product/Goods/104740689"><img src="http://image.yes24.com/goods/104740689/XL" width="50%" /></a>

Challenge

개념 실습! 학습 내용을 진짜 내 것으로 만들기!