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λ₯Ό μ‚¬μš©ν•˜λŠ” 방법은 경둜λ₯Ό μž‘μ„±ν•΄μ£ΌλŠ” 방법이 μžˆλŠ”λ° 보기 κΉ”λ”ν•˜μ§€ μ•Šκ³  μ½”λ“œκ°€ 지저뢄해보여 ꡳ이 μ‚¬μš©ν•  ν•„μš”λŠ” μ—†κ² λ‹€.