[객체(5)] μƒμ„±μž(Constructor)

2022. 5. 10. 22:05Β·Dev/Java
728x90
λ°˜μ‘ν˜•

πŸ“ μƒμ„±μžλž€?

: 객체가 newμ—°μ‚°μžλ₯Ό 톡해 Heapλ©”λͺ¨λ¦¬ μ˜μ—­μ— 할당될 λ•Œ 객체 μ•ˆμ—μ„œ λ§Œλ“€μ–΄μ§€λŠ” ν•„λ“œ μ΄ˆκΈ°ν™”

: μƒμ„±μžλŠ” μΌμ’…μ˜ λ©”μ†Œλ“œλ‘œ μ „λ‹¬λœ μ΄ˆκΈ°κ°’μ„ λ°›μ•„μ„œ 객체의 ν•„λ“œμ— 기둝

 

πŸ”Ή μƒμ„±μž κ·œμΉ™

: μƒμ„±μžμ˜ 선언은 λ©”μ†Œλ“œ μ„ μ–Έκ³Ό μœ μ‚¬ν•˜λ‚˜ λ°˜ν™˜ 값이 μ—†μœΌλ©°

: μƒμ„±μžλͺ…을 클래슀λͺ…κ³Ό λ˜‘κ°™μ΄ 지정해주어야함

 

πŸ“ κΈ°λ³Έ μƒμ„±μž

: μž‘μ„±ν•˜μ§€ μ•Šμ€ 경우, 클래슀 μ‚¬μš© μ‹œ JVM이 μžλ™μœΌλ‘œ κΈ°λ³Έ μƒμ„±μž 생성

 

πŸ“ λ§€κ°œλ³€μˆ˜ μƒμ„±μž

: 객체 생성 μ‹œ 전달 받은 κ°’μœΌλ‘œ 객체λ₯Ό μ΄ˆκΈ°ν™” ν•˜κΈ° μœ„ν•΄ μ‚¬μš©

: 맀개 λ³€μˆ˜ μƒμ„±μž μž‘μ„± μ‹œ JVM이 κΈ°λ³Έ μƒμ„±μžλ₯Ό μžλ™μœΌλ‘œ 생성해주지 μ•ŠμŒ

: μƒμ†μ—μ„œ μ‚¬μš© μ‹œ λ°˜λ“œμ‹œ κΈ°λ³Έ μƒμ„±μžλ₯Ό μž‘μ„±

: μ˜€λ²„λ‘œλ”©μ„ μ΄μš©ν•˜μ—¬ μž‘μ„±

 

πŸ’» μ˜€λ²„λ‘œλ”©μ΄λž€?

: ν•œ 클래슀 내에 λ™μΌν•œ μ΄λ¦„μ˜ λ©”μ†Œλ“œλ₯Ό μ—¬λŸ¬κ°œ μž‘μ„±ν•˜λŠ” 기법

 

πŸ”Ή μ˜€λ²„λ‘œλ”© 쑰건

: 같은 λ©”μ†Œλ“œ 이름

: λ‹€λ₯Έ λ§€κ°œλ³€μˆ˜μ˜ 개수 λ˜λŠ” λ‹€λ₯Έ λ§€κ°œλ³€μˆ˜ νƒ€μž…

 

package kh.oop1.day03.exam;

public class OverloadingExam {
	//μ˜€λ²„λ‘œλ”© 쑰건
	//1. λ©”μ†Œλ“œμ˜ 이름은 λ™μΌν•΄μ•Όν•œλ‹€.
	int intI;
	String strS;
	
	public void method() {
		
	}
	
	//2. λ§€κ°œλ³€μˆ˜μ˜ νƒ€μž…μ΄ λ‹¬λΌμ•Όν•œλ‹€.
	public void method(int intI) {
		
	}
	
	public void method(String strS) {
		
	}
	
	//3. λ§€κ°œλ³€μˆ˜μ˜ κ°œμˆ˜κ°€ λ‹¬λΌμ•Όν•œλ‹€.
	public void method(int intI, String strS) {
		
	}
	
	//4. [주의] λ§€κ°œλ³€μˆ˜μ˜ μœ„μΉ˜κ°€ 달라도 λ‹€λ₯Έ λ©”μ†Œλ“œλΌκ³  인식
	public void method(String strS, int intI) {
		
	}
}

 

πŸ“ thisλž€?

: λͺ¨λ“  μΈμŠ€ν„΄μŠ€μ˜ λ©”μ†Œλ“œμ— μˆ¨κ²¨μ§„ 채 μ‘΄μž¬ν•˜λŠ” 레퍼런슀둜, ν• λ‹Ήλœ 객체λ₯Ό 가리킨닀.

: ν•¨μˆ˜ μ‹€ν–‰ μ‹œ μ „λ‹¬λ˜λŠ” 객체의 μ£Όμ†Œλ₯Ό μžλ™μœΌλ‘œ λ°›μŒ

 

πŸ“ this()λž€?

: μƒμ„±μž, 같은 클래슀의 λ‹€λ₯Έ μƒμ„±μžλ₯Ό ν˜ΈμΆœν•  λ•Œ μ‚¬μš©, λ°˜λ“œμ‹œ 첫번째 쀄에 μ„ μ–Έν•΄μ•Όν•œλ‹€.

 

package kh.oop1.day03.exam;

public class ThisConstructor {
	private String bookName; //책이름
	private int bookprice; //책가격
	private String bookpublisher; //μΆœνŒμ‚¬
	private int bookid; //책아이디
	
	public ThisConstructor() {
		System.out.println("κΈ°λ³Έμƒμ„±μžμž…λ‹ˆλ‹€.");
	}
	
	public ThisConstructor(String bookpublisher) {
		this.bookpublisher = bookpublisher;
		System.out.println("λ§€κ°œλ³€μˆ˜ ν•˜λ‚˜");
	}
	
	public ThisConstructor(String bookName, int bookprice, int bookid) {
		this("khμ •λ³΄κ΅μœ‘μ›");
		this.bookName = bookName;
		this.bookprice = bookprice;
		this.bookid = bookid;
	}
	
	//getter
	public String getBookName() {
		return bookName;
	}
	
	public int getBookprice() {
		return bookprice;
	}
	
	public String getBookpublisher() {
		return bookpublisher;
	}
	
	public int getBookId() {
		return bookid;
	}
}
package kh.oop1.day03.run;

import kh.oop1.day03.exam.BasicVariable;
import kh.oop1.day03.exam.BlockExam;
import kh.oop1.day03.exam.FieldExam;
import kh.oop1.day03.exam.ThisConstructor;

public class Run {
	public static void main(String[] args) {
		ThisConstructor ts = new ThisConstructor("객체", 1000, 1);
		System.out.println("책이름 : " + ts.getBookName()
							+ "μ±… 가격 : " +ts.getBookprice()
							+ "μΆœνŒμ‚¬ : " + ts.getBookpublisher()
							+ "μ±… 아이디 : " +ts.getBookId());
	}
}
/*
λ§€κ°œλ³€μˆ˜ ν•˜λ‚˜
책이름 : 객체책 가격 : 1000μΆœνŒμ‚¬ : khμ •λ³΄κ΅μœ‘μ›μ±… 아이디 : 1
*/
728x90
λ°˜μ‘ν˜•
μ €μž‘μžν‘œμ‹œ λΉ„μ˜λ¦¬ λ³€κ²½κΈˆμ§€ (μƒˆμ°½μ—΄λ¦Ό)

'Dev > Java' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[객체(7)] 객체 λ°°μ—΄  (0) 2022.05.10
[객체(6)] λ©”μ†Œλ“œ(Method)  (0) 2022.05.10
[객체(4)] ν•„λ“œ(Field)  (0) 2022.05.10
[객체(3)] package와 import  (0) 2022.05.10
[객체(2)] 클래슀, μ„ μ–Έ, μ ‘κ·Όμ œν•œμž, μƒμ„±μž, getter, setter  (0) 2022.05.10
'Dev/Java' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
  • [객체(7)] 객체 λ°°μ—΄
  • [객체(6)] λ©”μ†Œλ“œ(Method)
  • [객체(4)] ν•„λ“œ(Field)
  • [객체(3)] package와 import
λΈ”ν˜œ
λΈ”ν˜œ
  • λΈ”ν˜œ
    Blehye Dev
    λΈ”ν˜œ
  • 전체
    였늘
    μ–΄μ œ
    • λΆ„λ₯˜ 전체보기 (133)
      • Dev (69)
        • Java (45)
        • HTML5 CSS3 (16)
        • Javascript (2)
        • ꡭ비학원 (4)
        • Error! (2)
      • Algorithm (12)
        • PS (9)
        • Algorithm (3)
      • English (22)
        • Webtoon (6)
        • Grammar In Use (15)
      • DAILY (20)
        • Trip (10)
        • Musical (2)
        • Swimming (5)
        • Book (1)
        • Test (1)
      • etc. (10)
        • Display (10)
  • λΈ”λ‘œκ·Έ 메뉴

    • ν™ˆ
    • STUDY
    • DAILY
  • 링크

  • 곡지사항

  • 인기 κΈ€

  • νƒœκ·Έ

    κ°μ²œλ¬Έν™”λ§ˆμ„
    인적성
    νƒœμ’…λŒ€
    SKCT
    ν™λŒ€κ°œλ―Έ
    μ—¬μžν˜Όμžμ—¬ν–‰
    SKCTν›„κΈ°
    λΆ€μ‚°ν˜Όμžμ—¬ν–‰
    μ†‘λ„ν•΄μˆ˜μš•μž₯
    ν˜Όμžμ—¬ν–‰
    SKCT팁
    ν°μ—¬μšΈλ¬Έν™”λ§ˆμ„
    λΆ€μ‚°μ—¬ν–‰
    SKν•˜μ΄λ‹‰μŠ€
    SKCTμ‹œν—˜
    ν•˜μ΄λ‹‰μŠ€
    SKCTκΏ€νŒ
  • 졜근 λŒ“κΈ€

  • 졜근 κΈ€

  • λ°˜μ‘ν˜•
    250x250
  • hELLOΒ· Designed Byμ •μƒμš°.v4.10.3
λΈ”ν˜œ
[객체(5)] μƒμ„±μž(Constructor)
μƒλ‹¨μœΌλ‘œ

ν‹°μŠ€ν† λ¦¬νˆ΄λ°”