2024-08-12 01:28:14
λ°˜μ‘ν˜•

μ˜€λŠ˜μ€ 클래슀 μ„ μ–Έ μ•„λž˜μ— μžˆλŠ” μš”μ†Œ 쀑 ν•˜λ‚˜μΈ λ©”μ†Œλ“œμ— λŒ€ν•΄μ„œ κ³΅λΆ€ν•˜μž.

 

λ©”μ†Œλ“œλž€?

--->

λ©”μ†Œλ“œλŠ” 객체가 가지고 μžˆλŠ” 행동(κΈ°λŠ₯)을 μˆ˜ν–‰ν•˜κΈ° μœ„ν•œ μ½”λ“œμ˜ λ¬ΆμŒμ΄λ‹€.

κΈ°λŠ₯은 νŠΉμ • κΈ°λŠ₯을 κ΅¬ν˜„ν•˜κΈ° μœ„ν•œ μ½”λ“œλ“€μ˜ 묢음이라고 ν•  수 μžˆλ‹€.

 

λ©”μ†Œλ“œμ˜ μ‚¬μš© λͺ©μ μ€ λ‹€μŒκ³Ό κ°™λ‹€.

--->

1. μ†ŒμŠ€μ½”λ“œμ˜ κ°„κ²°ν™”(μ½”λ“œμ˜ κ°€λ…성을 λ†’이기 μœ„ν•΄)
2. μž¬μ‚¬μš©μ„ μœ„ν•΄μ„œ(νŠΉμ •μ„±μ„ λΆ€μ—¬ν•˜λ©΄ μž¬μ‚¬μš©ν•˜κΈ° μ–΄λ €μ›€)
3. λͺ¨λ“ˆν™”(λͺ¨λ“ˆ = λΆ€ν’ˆ) : μ½”λ“œλ“€μ˜ μ§‘합을 λ”°λ‘œ λΆ„λ¦¬ν•˜λŠ”κ²ƒ

 

κ·Έλ ‡λ‹€λ©΄ λ©”μ†Œλ“œλŠ” μ–΄λ–»κ²Œ μ‚¬μš©ν•˜λ‚˜? 클래슀 μ•ˆμ—μ„œ μ‚¬μš©ν•˜λŠ”λ°, ν•„λ“œμ™€ μƒμ„±μž μ•„λž˜μ— μž…λ ₯ν•œλ‹€.

--->

μ ‘κ·Όμ œν•œμž λ¦¬ν„΄νƒ€μž… λ©”μ†Œλ“œλͺ…(μžλ£Œν˜• λ§€κ°œλ³€μˆ˜λͺ…...)  -> μ„ μ–ΈλΆ€(signature)
{
μ‹€ν–‰ν•  μ½”λ“œ -> κ΅¬ν˜„λΆ€(body)
return λ¦¬ν„΄κ°’;
}

κ·Έλ ‡λ‹€λ©΄ μœ„μ˜ μ½”λ“œμ˜ μš”μ†Œλ“€μ— λŒ€ν•΄ μ•Œμ•„λ³΄μž

--->

1. λ¦¬ν„΄νƒ€μž… : λ¦¬ν„΄κ°’μ˜ μžλ£Œν˜•μ„ λͺ…μ‹œν•œλ‹€
-> λ§Œμ•½ μ™ΈλΆ€λ‘œ λ¦¬ν„΄(λ°˜ν™˜)ν•˜λŠ” κ°’이 μžˆλ‹€λ©΄ κ·Έ κ°’μ˜ μžλ£Œν˜•μ„ μž‘μ„±ν•œλ‹€
-> λ§Œμ•½ μ™ΈλΆ€λ‘œ λ¦¬ν„΄(λ°˜ν™˜)ν•˜λŠ” κ°’이 μ—†λ‹€λ©΄ void둜 μž‘μ„±ν•œλ‹€
* μ‹€μ œ λ¦¬ν„΄νƒ€μž…보닀 μž‘은 μžλ£Œν˜•μœΌλ‘œ λ°˜ν™˜ν•˜λ©΄ ν•΄λ‹Ή λ¦¬ν„΄νƒ€μž…μœΌλ‘œ μžλ™ ν˜•λ³€ν™˜λœλ‹€

2. λ§€κ°œλ³€μˆ˜λͺ… : 
* λ§€κ°œλ³€μˆ˜ : μ™ΈλΆ€μ—μ„œ λ©”μ†Œλ“œμ—κ²Œ μ „λ‹¬ν•˜λŠ” κ°’을 μ €μž₯ν•˜λŠ” λ³€μˆ˜
-> λ§€κ°œλ³€μˆ˜κ°€ μ‘΄μž¬ν•˜μ§€ μ•ŠμœΌλ©΄ λ©”μ†Œλ“œ μ™ΈλΆ€μ—μ„œ ν•΄λ‹Ή λ©”μ†Œλ“œμ—κ²Œ κ°’을 μ „달할 μˆ˜ μ—†λ‹€

3. λ©”μ†Œλ“œλͺ… : λ©”μ†Œλ“œμ˜ κΈ°λŠ₯을 λ™μ‚¬μ˜ ν˜•νƒœλ‘œ μž‘μ„±ν•œλ‹€(print, sum, divide...)

4. return λ¦¬ν„΄κ°’ : μ™ΈλΆ€λ‘œ λ¦¬ν„΄ν•˜κ³  μ‹Άμ€ κ°’을 return ν‚€μ›Œλ“œ μ˜†μ— μž‘μ„±ν•œλ‹€
-> return ν‚€μ›Œλ“œκ°€ μ‘΄μž¬ν•˜μ§€ μ•ŠμœΌλ©΄ μ™ΈλΆ€λ‘œ κ°’을 λ¦¬ν„΄ν• μˆ˜ μ—†λ‹€
-> λ§Œμ•½ λ¦¬ν„΄νƒ€μž…이 void(리턴값 μ—†μŒ)이라면 return ν‚€μ›Œλ“œλ₯Ό μƒλž΅ν•  μˆ˜ μžˆλ‹€

λ©”μ†Œλ“œ 선언은 μ€‘κ΄„ν˜Έκ°€ μžˆμ–΄μ•Όν•˜λ©°, λ°˜λ“œμ‹œ 메인 λ©”μ†Œλ“œ λ°–μ—μ„œ μ„ μ–Έν•΄μ•Όν•œλ‹€

λ©”μ†Œλ“œ ν˜ΈμΆœμ€ μ€‘κ΄„ν˜Έκ°€ μ—†μœΌλ©° λ°˜λ“œμ‹œ λ©”μΈλ©”μ†Œλ“œ μ•ˆμ—μ„œ ν˜ΈμΆœν•΄μ•Όν•œλ‹€

 

μ–Έλœ»λ³΄λ©΄ ν•¨μˆ˜μ™€ λΉ„μŠ·ν•œλ° ν•¨μˆ˜μ™€λŠ” 차이가 μžˆλ‹€.

ν•¨μˆ˜: ν΄λž˜μŠ€ λ°–μ—μ„œ μ„ μ–Έλ˜λŠ” λ©”μ†Œλ“œ 
λ©”μ†Œλ“œ : ν΄λž˜μŠ€ μ•ˆμ—μ„œ μ„ μ–Έλ˜λŠ” λ©”μ†Œλ“œ

 

μžλ°”μ˜ κΈ°λ³Έ ꡬ쑰상 클래슀 λ‚΄λΆ€μ—μ„œλ§Œ λ©”μ†Œλ“œκ°€ μ„ μ–Έλ˜κΈ° λ•Œλ¬Έμ— μžλ°”μ—” ν•¨μˆ˜κ°€ μ—†κ³  λ©”μ†Œλ“œλ§Œ μžˆλŠ” 것이닀.

 

κ·Έλ ‡λ‹€λ©΄ λ©”μ†Œλ“œ μ„ μ–Έκ³Ό μ‚¬μš©μ˜ μ˜ˆμ‹œλ₯Ό 보자.

 

클래슀 λ‚΄μ˜ λ©”μ†Œλ“œ μ„ μ–Έ μ˜ˆμ‹œ

 

μš°μ„  UserVer3 λΌλŠ” 클래슀 λ‚΄μ—μ„œ, μƒμ„±μžλ₯Ό μ„ μ–Έν–ˆκ³  κ·Έ μƒμ„±μžλŠ” λ§€κ°œλ³€μˆ˜λ‘œ id, pw, pointλ₯Ό λ°›μ•„μ˜€κ³ μžˆλ‹€.

 

그리고 밑에 두 개의 λ©”μ†Œλ“œκ°€ μžˆλ‹€. μ‚΄νŽ΄λ³΄λ„λ‘ ν•˜μž.

 

μš°μ„ ,

void changePw(String newPw) {

     pw = newPw;

     System.out.println("λΉ„λ°€λ²ˆν˜Έ λ³€κ²½ μ™„λ£Œ!");

}

---> 이 λ©”μ†Œλ“œλ₯Ό μ‚΄νŽ΄λ³΄λ©΄ λ©”μ†Œλ“œμ˜ 이름은 changePw이고 λ°›μ•„μ˜€λŠ” λ§€κ°œλ³€μˆ˜λŠ” newPw둜 λ¬Έμžμ—΄μ΄λ©°,

리턴 νƒ€μž…μ€ void둜 λ˜μ–΄μžˆκ³  λΉ„λ°€λ²ˆν˜Έκ°€ λ°”λ€Œλ©΄ "λΉ„λ°€λ²ˆν˜Έ λ³€κ²½ μ™„λ£Œ!" λΌλŠ” λ¬Έμž₯을 좜λ ₯ν•˜κ²Œ λ§Œλ“€μ–΄μ Έμžˆλ‹€.

 

κ·Έ λ‹€μŒ λ©”μ†Œλ“œλ₯Ό 보면

void printUserInfo() {

     System.out.println("아이디 : " + id);

     System.out.println("λΉ„λ°€λ²ˆν˜Έ : " + pw);

     System.out.println("포인트 κΈˆμ•‘ : " + point);

}

둜 μž‘μ„±μ΄ λ˜μ–΄μžˆλ‹€. 이 λœ»μ€

---> ν˜„μž¬ μœ μ €μ˜ 정보가 μ €μž₯된 값듀을 좜λ ₯ν•˜λŠ” λ©”μ†Œλ“œ. 즉, 좜λ ₯λ©”μ†Œλ“œ 3개λ₯Ό λͺ¨μ•„놓은 좜λ ₯λ©”μ†Œλ“œλ‹€

λ”°λΌμ„œ μ΄λŠ” λ§€κ°œλ³€μˆ˜κ°€ ν•„μš”κ°€ μ—†λŠ”κ±°κ³  λ°˜ν™˜ν•  값도 μ—†λŠ” 것이닀. κ·Έμ € 좜λ ₯을 3개 λͺ¨μ•„놓은 좜λ ₯λ©”μ†Œλ“œμΈκ²ƒμ΄λ‹€.

 

이제 메인 λ©”μ†Œλ“œλ₯Ό 보면

λ©”μΈλ©”μ†Œλ“œ μ˜ˆμ‹œ

μƒμ„±μžμ—μ„œ λ§€κ°œλ³€μˆ˜λ₯Ό 3개 λ°›κ²Œ ν•˜μ˜€μœΌλ―€λ‘œ 객체 μƒμ„±μ‹œμ— 3개의 값을 ν• λ‹Ήν•΄μ£Όμ—ˆκ³ ,

λ§Œλ“  객체 user1을 μ΄μš©ν•˜μ—¬ user1의 정보λ₯Ό λ©”μ†Œλ“œλ‘œ κ°€μ Έμ˜¨λ‹€

user1.changePw("seo1234");   ---> changePwλΌλŠ” λ©”μ†Œλ“œμ— seo1234λΌλŠ” 값을 μ£Όμ–΄μ„œ λ§€κ°œλ³€μˆ˜μ— ν• λ‹Ήν•˜κ³  

κ·Έ 값이 pw에 μž…λ ₯λ˜μ–΄ λΉ„λ°€λ²ˆν˜Έκ°€ λ°”λ€Œμ—ˆλ‹€. 그리고 λ‚˜μ„œ "λΉ„λ°€λ²ˆν˜Έ λ³€κ²½μ™„λ£Œ!"λΌλŠ” λ¬Έμž₯이 좜λ ₯ 될 것이고,

 

user1.printUserInfo(); λΌλŠ” λ©”μ†Œλ“œλŠ” user1의 정보 μ„Έκ°œλ₯Ό λ‚˜μ—΄ν•˜μ—¬ 좜λ ₯ν•΄μ£ΌλŠ” λ©”μ†Œλ“œμ΄κΈ° λ•Œλ¬Έμ—

좜λ ₯이 3κ°œκ°€ λ‚˜μ˜¬ 것이닀.

λ°”λ‘œ κ²°κ³Όλ₯Ό ν™•μΈν•΄λ³΄μž

 

κ²°κ³Ό

μ΄λ ‡κ²Œ λ©”μ†Œλ“œλŠ” μš°λ¦¬κ°€ νŽΈλ¦¬ν•˜κ²Œ μ‚¬μš©ν•  수 μžˆλŠ” κΈ°λŠ₯의 묢음 즉, μ½”λ“œμ˜ λ¬ΆμŒμ΄λ‹€.

νŠΉμ • κΈ°λŠ₯을 κ΅¬ν˜„ν•˜κΈ° μœ„ν•΄ μš°λ¦¬κ°€ λ§Œλ“  μ½”λ“œμ˜ λ¬ΆμŒμ„ λΆˆλŸ¬μ™€μ„œ μ‚¬μš©ν•˜λŠ” 것이닀.

λ©”μ†Œλ“œλ₯Ό 잘 μ‚¬μš©ν•˜λ©΄ λ„ˆλ¬΄ νŽΈλ¦¬ν•˜κ²Œ ν”„λ‘œκ·Έλž˜λ°μ„ μ‚¬μš©ν•  수 있게 λ˜λŠ” 것이닀.

 

λ§ˆμ§€λ§‰μœΌλ‘œ λ©”μ†Œλ“œμ—λŠ” ν•œκ°€μ§€ νŠΉμ§•μ΄ 더 μ‘΄μž¬ν•˜λŠ”λ°, λ°”λ‘œ

λ©”μ†Œλ“œ μ˜€λ²„λ‘œλ”©μ΄λ‹€.

 

λ©”μ†Œλ“œ μ˜€λ²„λ‘œλ”©μ€ λ§€κ°œλ³€μˆ˜μ˜ 개수 λ˜λŠ” νƒ€μž…μ΄ λ‹€λ₯΄λ©΄ 같은 μ΄λ¦„μ˜ λ©”μ†Œλ“œλ₯Ό μ€‘λ³΅ν•˜μ—¬ μ„ μ–Έν•  수 μžˆλ‹€λŠ” 것이닀.

예λ₯Ό λ“€λ©΄ 이런 것이닀.

μš°λ¦¬λŠ” System.out.println()μ΄λΌλŠ” 좜λ ₯ λ©”μ†Œλ“œλ₯Ό 자유둭게 μ‚¬μš©ν•œλ‹€.

κ·Έλ ‡λ‹€λ©΄ 이 λ©”μ†Œλ“œμ˜ λ§€κ°œλ³€μˆ˜μ˜ μžλ£Œν˜•μ€ λ¬΄μ—‡μΌκΉŒ?

 

μš°λ¦¬λŠ” λ¬Έμžμ—΄, μ •μˆ˜, μ‹€μˆ˜ λ“±λ“± 자유둭게 좜λ ₯ν•œλ‹€.

그러면 λ§€κ°œλ³€μˆ˜μ˜ μžλ£Œν˜•μ€ int, double, float, String, boolean λ“± 많이 ν•„μš”ν•  것이닀.

 

그러면 λ©”μ†Œλ“œλ₯Ό λ˜‘κ°™μ΄ λ§Œλ“€μ–Έ 놓고 λ§€κ°œλ³€μˆ˜μ˜ μžλ£Œν˜•λ§Œ λ°”κΎΈλ©΄ λœλ‹€λŠ” μ˜λ―Έμ΄λ‹€.

즉, λ§€κ°œλ³€μˆ˜μ˜ νƒ€μž…μ΄ λ‹€λ₯΄λ©΄ 같은 μ΄λ¦„μ˜ λ©”μ†Œλ“œλ₯Ό μ—¬λŸ¬κ°œ λ§Œλ“€ 수 μžˆλ‹€λŠ” λœ»μ΄λ‹€.

λ°”λ‘œ μ˜ˆμ‹œλ₯Ό 보여주겠닀.

 

λ©”μ†Œλ“œμ˜ μ˜€λ²„λ‘œλ”©

λ³΄μ΄λŠ”κ°€?

λ©”μ†Œλ“œμ˜ 이름듀이 λͺ¨λ‘ println 이닀.

λͺ¨λ“  μ½”λ“œλ“€μ΄ λ™μΌν•˜λ‹€.

ν•˜μ§€λ§Œ λ§€κ°œλ³€μˆ˜μ˜ μžλ£Œν˜•λ§Œ λ‹€λ₯΄λ‹€. int, long, float, String....λͺ¨λ‘ κ°€λŠ₯ν•œ 것이닀.

이런 것이 λ°”λ‘œ λ©”μ†Œλ“œμ˜ μ˜€λ²„λ‘œλ”©μ΄λ‹€.

 

μ˜€λŠ˜μ€ λ©”μ†Œλ“œμ— λŒ€ν•΄μ„œ μ•Œμ•„λ³΄μ•˜λ‹€. μƒλ‹Ήνžˆ μ€‘μš”ν•œ λ‚΄μš©μ΄λ‹ˆ ν™•μ‹€ν•˜κ²Œ μ•Œμ•„λ‘λ©΄ 쒋을 것 κ°™λ‹€!!

 

728x90

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

JAVA : TV ν”„λ‘œκ·Έλž¨ λ§Œλ“€κΈ°  (1) 2024.08.18
JAVA : 상속(Inheritance)  (0) 2024.08.16
JAVA : μƒμ„±μž  (0) 2024.08.12
JAVA : 클래슀(class)  (1) 2024.08.12
JAVA : 2차원 λ°°μ—΄  (0) 2024.08.09