JavaStudy

TIL JAVA #3-2

๋ฆฐ์˜ˆ์กฐ 2023. 12. 1. 02:40

๋งค๊ฐœ๋ณ€์ˆ˜์˜ ์ข…๋ฅ˜ (๊ธฐ๋ณธ&์ฐธ์กฐ)

์ธ์Šคํ„ด์Šค ๋ฉค๋ฒ„์™€ ํด๋ž˜์Šค ๋ฉค๋ฒ„

์ง€์—ญ๋ณ€์ˆ˜ ๋ฐ ์ƒ์ˆ˜

์ƒ์„ฑ์ž this

์ ‘๊ทผ์ œ์–ด์ž

import & package


- ๋งค๊ฐœ๋ณ€์ˆ˜ ํƒ€์ž…์ด ๊ธฐ๋ณธํ˜•์ผ ๋•Œ๋Š” ๊ฐ’ ์ž์ฒด๊ฐ€ ๋ณต์‚ฌ๋˜์–ด ๋„˜์–ด๊ฐ€๊ธฐ ๋•Œ๋ฌธ์— ๋ณ€์ˆ˜์˜ ์›๋ณธ๊ฐ’์ด ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋Š”๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์ฐธ์กฐํ˜•์ผ ๋•Œ๋Š” ๊ฐ’์ด ์ €์žฅ๋œ ๊ณณ์˜ ์ฃผ์†Œ๊ฐ’์„ ์•Œ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ’์„ ์ฝ๋Š” ๊ฒƒ์€ ๋ฌผ๋ก  ๋ณ€๊ฒฝ ๋˜ํ•œ ๊ฐ€๋Šฅํ•˜๋‹ค. 

 

# ์ธ์Šคํ„ด์Šค ๋ฉค๋ฒ„์™€ ํด๋ž˜์Šค ๋ฉค๋ฒ„

- ์ด ๋‘˜์„ ๊ตฌ๋ถ„ํ•˜๋Š” ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ๋ฐฉ์‹์€ ์„ ์–ธ ๋ฐฉ์‹! 

 static ์ด๋ผ๋Š” ํ‚ค์›Œ๋“œ๊ฐ€ ์žˆ์œผ๋ฉด ๊ทธ๊ฒƒ์€ ํด๋ž˜์Šค ๋ฉค๋ฒ„์ด๋ฉฐ ๋ฐ”๋กœ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

๋งŒ์•ฝ ํ•ด๋‹น ํ‚ค์›Œ๋“œ๊ฐ€ ์—†๋‹ค๋ฉด ์ธ์Šคํ„ด์Šค ๋ฉค๋ฒ„์ด๋ฉฐ ๋ฐ”๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ณ  ์ธ์Šคํ„ด์Šคํ™”๋ฅผ ํ•ด์ค€ ๋’ค์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

#1
static string company = "GENESIS";

String getCompany() {
	return company;  //์ธ์Šคํ„ด์Šค ๋ฉ”์„œ๋“œ์—์„œ๋Š” ํด๋ž˜์Šค ํ•„๋“œ company ๋ฐ”๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
   
}

#2
static string setCompany(String companyName){
	s.o.println("๋ชจ๋ธ ์ฒดํฌ" + model); //์ธ์Šคํ„ด์Šค ์‚ฌ์šฉ ๋ถˆ๊ฐ€
}									
// ์ธ์Šคํ„ด์Šค ํ•„๋“œ์ธ model์„ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ•˜๋ฉด ์˜ค๋ฅ˜ ๋ฐœ์ƒ.
//์ธ์Šคํ„ด์Šคํ™”๋ฅผ ํ•ด์ค€ ๋’ค์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ.

 

#์ง€์—ญ๋ณ€์ˆ˜

- ์ง€์—ญ๋ณ€์ˆ˜๋ž€ ๋ฉ”์„œ๋“œ ๋‚ด๋ถ€์— ์„ ์–ธํ•œ ๋ณ€์ˆ˜๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ํด๋ž˜์Šค ๋‚ด๋ถ€ ์ „์—ญ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ

ํ•ด๋‹น ๋ฉ”์„œ๋“œ์—์„œ ์ƒ์„ฑ๋˜๊ณ  ์ดˆ๊ธฐํ™”๋˜๋ฉฐ ๋ฉ”์„œ๋“œ ์ข…๋ฃŒ์‹œ ์†Œ๋ฉธ.

 

#final ํ•„๋“œ

- final ํ‚ค์›Œ๋“œ๊ฐ€ ๋ถ™์€ ํ•„๋“œ๋Š” ์ ˆ๋Œ€ ๊ฐ’์ด ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋Š”๋‹ค. ์„ธํŒ…๋œ ์ดˆ๊ธฐ๊ฐ’์ด ์ตœ์ข…๊นŒ์ง€ ์œ ์ง€๊ฐ€ ๋œ๋‹ค. ๋”ฐ๋ผ ๋‹น์—ฐํžˆ ์ดˆ๊ธฐ๊ฐ’ ์„ธํŒ…์ด ํ•„์ˆ˜์ด๋‹ค.

๋งŒ์•ฝ, ํ•ด๋‹น ํ‚ค์›Œ๋“œ๊ฐ€ ๋ถ™์€ ํ•„๋“œ์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋ ค๊ณ  ํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

 

#์ƒ์ˆ˜

- ๊ฐ’์ด ๋ฐ˜๋“œ์‹œ ํ•œ๊ฐœ์ด๋ฉฐ ๋ถˆ๋ณ€์˜ ๊ฐ’์„ ์˜๋ฏธํ•œ๋‹ค.

static final String COMPANY ="GENESIS";

-> ์ด์™€ ๊ฐ™์ด final ์•ž์— static ์„ ๋ถ™์—ฌ์„œ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๋‹ค.

-> ์ƒ์ˆ˜๋Š” COMPANY ์ด๋ ‡๊ฒŒ ๋Œ€๋ฌธ์ž๋กœ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด ๊ด€๋ก€์ด๋‹ค.


#์ƒ์„ฑ์ž, this()

- ์ƒ์„ฑ์ž๋Š” ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ ํ˜ธ์ถœ๋˜๋ฉฐ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

-  ํด๋ž˜์Šค๋ฅผ ์ธ์Šคํ„ด์Šคํ™” ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ƒ์„ฑ์ž๊ฐ€ ํ•„์š”ํ•˜๋‹ค. 

 

- ๊ธฐ๋ณธ์ƒ์„ฑ์ž

public Car (){//๊ธฐ๋ณธ ์ƒ์„ฑ์ž. ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ž๋™์œผ๋กœ ์ถ”๊ฐ€ํ•ด์คŒ.
			
}

- ๋งŒ์•ฝ ์ƒ์„ฑ์ž๊ฐ€ ํ•˜๋‚˜๋ผ๋„ ์žˆ๋Š” ๊ฒฝ์šฐ์—๋Š” ๋”ฐ๋กœ ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๋ฅผ ์ถ”๊ฐ€ํ•  ํ•„์š” ์—†๋‹ค.

- ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค ๋•Œ ์ธ์Šคํ„ด์Šค๋งˆ๋‹ค ๋‹ค๋ฅธ ๊ฐ’์„ ๊ฐ€์ ธ์•ผํ•œ๋‹ค๋ฉด ์ƒ์„ฑ์ž๋ฅผ ํ†ตํ•ด ํ•„๋“œ๋ฅผ ์ดˆ๊ธฐํ™” ๊ฐ€๋Šฅ.

 

- ์ƒ์„ฑ์ž ์˜ค๋ฒ„๋กœ๋”ฉ

public Car(String modelName){
	model = modelName;
}

public Car(String modelName, String colorName){
	model = modelName;
    color = colorName;
}

public Car(String modelName, String colorName, double priceValue ){
	model = modelName;
    color = colorName;
    price = priceValue;
}

 ์˜ค๋ฒ„๋กœ๋”ฉ์„ ์‚ฌ์šฉํ•˜์—ฌ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌ.

 

#this, this()

- this๋Š” ๊ฐ์ฒด ์ฆ‰, ์ธ์Šคํ„ด์Šค ์ž์‹ ์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ํ‚ค์›Œ๋“œ์ด๋‹ค.

: this.model, this.company ์ด๋Ÿฐ ์‹์œผ๋กœ ์‚ฌ์šฉ.

model = model, company = company 

์ด์™€๊ฐ™์ด ์ด๋ฆ„์ด ์ค‘๋ณต๋  ๊ฒฝ์šฐ ํ—ท๊ฐˆ๋ฆฌ๊ณ  ์ฝ”๋“œ๊ฐ€ ๊ผฌ์ผ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— this๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

 

this()

: ์ธ์Šคํ„ด์Šค ์ž์‹ ์˜ ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ํ‚ค์›Œ๋“œ (๋‹ค๋ฅธ ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ๋Š” ์ƒ์„ฑ์ž์˜ ์ฒซ์ค„์— ์ž‘์„ฑ.)

 

 

# ์ ‘๊ทผ์ œ์–ด์ž (ํด๋ž˜์Šค, ๋ณ€์ˆ˜, ๋ฉ”์„œ๋“œ ์ ‘๊ทผ ํ—ˆ์šฉ ๋ฒ”์œ„๋ฅผ ์ง€์ •)

^ ์ ‘๊ทผ์ œ์–ด์ž: public > protected > default > private (ํ—ˆ์šฉ ๋ฒ”์œ„๊ฐ€ ์ ์  ์ข์•„์ง)

  - ํด๋ž˜์Šค, ๋ฉค๋ฒ„๋ณ€์ˆ˜, ๋ฉ”์„œ๋“œ, ์ƒ์„ฑ์ž์— ์‚ฌ์šฉ.

^ ๊ทธ ์™ธ ์ œ์–ด์ž: static, final, abstract 

 

ํด๋ž˜์Šค: public, default

๋ฉค๋ฒ„๋ณ€์ˆ˜: 4๊ฐœ ๋ชจ๋‘ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

์ง€์—ญ๋ณ€์ˆ˜: x

 

# ์ƒ์„ฑ์ž์˜ ์ ‘๊ทผ ์ œ์–ด์ž

- ์ธ์Šคํ„ด์Šค์˜ ์ƒ์„ฑ์„ ์ œํ•œํ•  ์ˆ˜ ์žˆ๋‹ค.

<Getter & Setter>

๊ฐ์ฒด์˜ ๋ฌด๊ฒฐ์„ฑ์„ ์œ„ํ•ด ์ ‘๊ทผ ์ œ์–ด์ž๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ๊ฒฝ์šฐ private ํ•„๋“œ์— getter, setter ๋ฅผ ์ด์šฉํ•ด ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.

 - Getter : ํ•„๋“œ๋ฅผ ์ฝ์„ ๋•Œ ์‚ฌ์šฉ.

- Setter: ์™ธ๋ถ€์—์„œ ๊ฐ์ฒด์˜ privateํ•œ ํ•„๋“œ๋ฅผ ์ €์žฅํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•  ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

//1.Getter
public String getModel(){
	
    return model;
    
}

//2.Setter
public String setModel(String model){

	this.model = model;
}

 

#package & import

 

- ์„œ๋กœ ๋‹ค๋ฅธ ํŒจํ‚ค์ง€๊ฐ€ ์žˆ๊ณ  ํ•œ ํŒจํ‚ค์ง€์—์„œ ๋‹ค๋ฅธ ํŒจํ‚ค์ง€์˜ ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ•  ๋•Œ import๋ผ๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 package๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๊ฒฝ๋กœ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋Š”๋ฐ ๋ณด๊ธฐ ๊น”๋”ํ•˜์ง€ ์•Š๊ณ  ์ฝ”๋“œ๊ฐ€ ์ง€์ €๋ถ„ํ•ด๋ณด์—ฌ ๊ตณ์ด ์‚ฌ์šฉํ•  ํ•„์š”๋Š” ์—†๊ฒ ๋‹ค.

'JavaStudy' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

TIL Java 3-*  (2) 2023.12.04
TIL JAVA #3-3  (0) 2023.12.01
TIL JAVA #3-1  (0) 2023.11.30
TIL JAVA #2-4  (1) 2023.10.20
TIL JAVA #2-3  (0) 2023.10.19