๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
1. Java ์ž๋ฐ”/1_0. ์ฑ…, ๊ฐ•์˜

[์ž๋ฐ”ํ”„๋กœ๊ทธ๋ž˜๋ฐ1] 10์ฃผ์ฐจ ๊ฐ•์˜_ํ•„๊ธฐ

by ๋น„์†Œ์•ผ 2022. 5. 18.
728x90

์ž๋ฐ”ํ”„๋กœ๊ทธ๋ž˜๋ฐ1 10์ฃผ์ฐจ ๊ฐ•์˜_ํ•„๊ธฐ

1์ฐจ์‹œ

 

 

4์žฅ ํด๋ž˜์Šค์™€ ๊ฐ์ฒด
์ปดํ“จํ„ฐ ์•ˆ์— ๊ตฌํ˜„ํ•˜๊ณ ์ž ํ•˜๋Š” ์‹ค์„ธ๊ณ„ ๋ชจ๋“  ์‚ฌ๋ฌผ์„ ๊ฐ์ฒด๋ผ๊ณ  ํ•จ
๊ฐ์ฒด๋Š” ํŠน์„ฑ state์™€ ํ–‰๋™ behavior๋ฅผ ๊ฐ€์ง

๊ฐ์ฒด ์ง€ํ–ฅ์˜ ํŠน์„ฑ
1. ์บก์Аํ™” // ๊ฐ์ฒด๋ฅผ ์บก์А๋กœ ์‹ธ์„œ ์™ธ๋ถ€์˜ ์ ‘๊ทผ์œผ๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธ
๊ฐ์ฒด ์™ธ๋ถ€์—์„œ๋Š” ๊ณต๊ฐœ๋œ ๋ฉ”์†Œ๋“œ๋ฅผ ํ†ตํ•ด ๋น„๊ณต๊ฐœ ๋ฉค๋ฒ„์— ์ ‘๊ทผ
ํ•„๋“œ์™€ ๋ฉ”์†Œ๋“œ๋Š” ๋ชจ๋‘ ํด๋ž˜์Šค ๋‚ด์— ์„ ์–ธ
ํด๋ž˜์Šค์™€ ๊ฐ์ฒด์˜ ๊ด€๊ณ„ // ๋ถ•์–ด๋นต ํ‹€๊ณผ ๋ถ•์–ด๋นต
ํด๋ž˜์Šค class // ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ํ‹€
๊ฐ์ฒด object // ํด๋ž˜์Šค ๋ชจ์–‘๋Œ€๋กœ ์ƒ์„ฑ๋œ ์‹ค์ฒด instance
                  // ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ค‘์— ์ƒ์„ฑ๋˜๋Š” ์‹ค์ฒด
                  // ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ๊ฐ–๋Š” ๊ตฌ์ฒด์ ์ธ ์‹ค์ฒด

 

2. ์ƒ์† // ํ•˜์œ„ ํด๋ž˜์Šค๊ฐ€ ์ƒ์œ„ ํด๋ž˜์Šค์˜ ์†์„ฑ์„ ๋ชจ๋‘ ๊ฐ€์ง€๊ณ , ๊ธฐ๋Šฅ ํ™•์žฅ

ํ•˜์œ„ extends ์ƒ์œ„ // ์ž์‹->๋ถ€๋ชจ, ํ•˜์œ„->์ƒ์œ„, ์„œ๋ธŒ->์Šˆํผ

 

3. ๋‹คํ˜•์„ฑ // ๊ฐ™์€ ์ด๋ฆ„์˜ ๋ฉ”์†Œ๋“œ๊ฐ€ ํด๋ž˜์Šค๋‚˜ ๊ฐ์ฒด์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ฒŒ ๋™์ž‘

ex) speak(); // ๊ฐ•์•„์ง€๋Š” ๋ฉ๋ฉ, ๊ณ ์–‘์ด๋Š” ์•ผ์˜น, ๋‹ญ์€ ๊ผฌ๊ผฌ๋Œ

๋ฉ”์†Œ๋“œ ์˜ค๋ฒ„๋กœ๋”ฉ // ๊ฐ™์€ ์ด๋ฆ„์ด์ง€๋งŒ ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ํƒ€์ž…์ด๋‚˜ ๊ฐœ์ˆ˜๊ฐ€ ๋‹ฌ๋ผ ๊ตฌ๋ถ„

๋ฉ”์†Œ๋“œ ์˜ค๋ฒ„๋ผ์ด๋”ฉ // ์Šˆํผ ํด๋ž˜์Šค์˜ ๋ฉ”์†Œ๋“œ๋ฅผ ์„œ๋ธŒ ํด๋ž˜์Šค๋งˆ๋‹ค ๋‹ค๋ฅด๊ฒŒ ๊ตฌํ˜„

 

2์ฐจ์‹œ

 

๊ฐ์ฒด ์ง€ํ–ฅ์˜ ๋ชฉ์ 
1. ์†Œํ”„ํŠธ์›จ์–ด์˜ ์ƒ์‚ฐ์„ฑ ํ–ฅ์ƒ
2. ์‹ค์„ธ๊ณ„์— ๋Œ€ํ•œ ์‰ฌ์šด ๋ชจ๋ธ๋ง

 

  

1
2
3
public class Circle { // ํด๋ž˜์Šค ์ •์˜ ์‹œ์ž‘
// ์ ‘๊ทผ๊ถŒํ•œ class ํ‚ค์›Œ๋“œ ํด๋ž˜์Šค ์ด๋ฆ„
// ํด๋ž˜์Šค ์ •์˜ ๋
cs

 

public ์ ‘๊ทผ์ง€์ •์ž // ๋‹ค๋ฅธ ๋ชจ๋“  ํด๋ž˜์Šค์˜ ์ ‘๊ทผ ํ—ˆ์šฉ

๊ฐ์ฒด ์ƒ์„ฑ
1. ๊ฐ์ฒด์— ๋Œ€ํ•œ ๋ ˆํผ๋Ÿฐ์Šค ๋ณ€์ˆ˜ ์„ ์–ธ
2. new ํ‚ค์›Œ๋“œ๋กœ ๊ฐ์ฒด ์ƒ์„ฑํ•˜์—ฌ ๋ ˆํผ๋Ÿฐ์Šค ๋ณ€์ˆ˜์— ๋Œ€์ž… // ํด๋ž˜์Šค ํƒ€์ž…์˜ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น, ์ƒ์„ฑ์ž ์ฝ”๋“œ ์‹คํ–‰๋จ
// new ํ‚ค์›Œ๋“œ๋Š” ๊ฐ์ฒด์˜ ์ƒ์„ฑ์ž ํ˜ธ์ถœ

๊ฐ์ฒด ๋ฉค๋ฒ„์— ์ ‘๊ทผ // ๋ ˆํผ๋Ÿฐ์Šค.๋ฉค๋ฒ„ == ๊ฐ์ฒด์ด๋ฆ„.๋ฉค๋ฒ„์ด๋ฆ„

1
2
Circlce pizza = new Circle();
pizza.radius = 10;
cs

 

3์ฐจ์‹œ

 

์ƒ์„ฑ์ž
1. ํด๋ž˜์Šค ์ด๋ฆ„๊ณผ ๋™์ผํ•œ ์ด๋ฆ„์˜ ๋ฉ”์†Œ๋“œ
2. ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ ์ž๋™์œผ๋กœ ๋”ฑ ํ•œ๋ฒˆ ํ˜ธ์ถœ // ๊ทธ๋Ÿฌ๋ฏ€๋กœ ํด๋ž˜์Šค์— ํ•œ ๊ฐœ ์ด์ƒ ์žˆ์–ด์•ผ ํ•จ
3. ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฐ์ฒด๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ์ฝ”๋“œ ์ž‘์„ฑ
4. ์ƒ์„ฑ์ž ์—ฌ๋Ÿฌ๊ฐœ ์ž‘์„ฑ๊ฐ€๋Šฅ // ์˜ค๋ฒ„๋กœ๋”ฉ
5. ๋ฆฌํ„ดํƒ€์ž… ์ง€์ •ํ•  ์ˆ˜ ์—†์Œ
public Circle() {}

๊ธฐ๋ณธ ์ƒ์„ฑ์ž default constructor
๋งค๊ฐœ๋ณ€์ˆ˜ ์—†๊ณ , ์•„๋ฌด ์ž‘์—… ์—†์ด ๋‹จ์ˆœ ๋ฆฌํ„ดํ•˜๋Š” ์ƒ์„ฑ์ž
ํด๋ž˜์Šค์— ์ƒ์„ฑ์ž๊ฐ€ ํ•˜๋‚˜๋„ ์ •์˜ ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ, ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ž๋™์œผ๋กœ ์‚ฝ์ž…
ํด๋ž˜์Šค์— ์ƒ์„ฑ์ž๊ฐ€ ํ•˜๋‚˜๋ผ๋„ ์ •์˜๋œ ๊ฒฝ์šฐ, ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๋ฅผ ์ž๋™์œผ๋กœ ์‚ฝ์ž…ํ•˜์ง€ ์•Š์Œ
// ์ด ๊ฒฝ์šฐ, ๊ธฐ๋ณธ ์ƒ์„ฑ์ž ํ˜ธ์ถœ์ด ํ•„์š”ํ•œ ๋ถ€๋ถ„์—์„œ ์ปดํŒŒ์ผ ์˜ค๋ฅ˜ ๋ฐœ์ƒ

this() // ํด๋ž˜์Šค ๋‚ด์˜ ๋‹ค๋ฅธ ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœ
์ƒ์„ฑ์ž ๋‚ด์—์„œ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
๋ฐ˜๋“œ์‹œ ์ƒ์„ฑ์ž ์ฝ”๋“œ์˜ ์ œ์ผ ์ฒ˜์Œ์— ์ˆ˜ํ–‰

์ž๋ฐ”์—๋Š” ํฌ์ธํ„ฐ๋ผ๋Š” ๊ฐœ๋…์ด ์—†๋‹ค.
this์™€ this()๋Š” ์•„์˜ˆ ๋‹ค๋ฅธ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ด๋ผ

this // ๊ฐ์ฒด ์ž์‹ ์— ๋Œ€ํ•œ ๋ ˆํผ๋Ÿฐ์Šค
์ž๊ธฐ ์ž์‹ ์„ ๊ฐ€๋ฆฌํ‚ด
์–ด๋–ค ๊ฐ์ฒด๋“ ์ง€ this๋ผ๋Š” ํ•„๋“œ๊ฐ€ ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋จ
this.๋ฉค๋ฒ„ ํ˜•ํƒœ๋กœ ๋ฉค๋ฒ„ ์ ‘๊ทผ

 

1
2
public Circle(int r) {radius = r;}
public Circle(int radius) {this.radius = radius;}
cs


this๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ
1. ๊ฐ์ฒด์˜ ๋ฉค๋ฒ„ ๋ณ€์ˆ˜์™€ ๋ฉ”์†Œ๋“œ ๋ณ€์ˆ˜์˜ ์ด๋ฆ„์ด ๊ฐ™์€ ๊ฒฝ์šฐ
2. ๋‹ค๋ฅธ ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ์‹œ ๊ฐ์ฒด ์ž์‹ ์˜ ๋ ˆํผ๋Ÿฐ์Šค๋ฅผ ์ „๋‹ฌํ•  ๋•Œ
3. ๋ฉ”์†Œ๋“œ๊ฐ€ ๊ฐ์ฒด ์ž์‹ ์˜ ๋ ˆํผ๋Ÿฐ์Šค๋ฅผ ๋ฐ˜ํ™˜ํ• ๋•Œ

๊ฐ์ฒด ์น˜ํ™˜ // ๊ฐ์ฒด๊ฐ€ ๋ณต์‚ฌ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ๋ ˆํผ๋Ÿฐ์Šค๊ฐ€ ๋ณต์‚ฌ๋œ๋‹ค.

1
2
3
4
5
Circle ob1 = new Circle();
Circle ob2 = new Circle();
Circle s;
= ob2;
ob1 = ob2;
cs
728x90