hhnn_soph

[Java] ์ž๋ฐ” ํด๋ž˜์Šค ์„ ์–ธ ๋ฐ ๊ฐ์ฒด ์ƒ์„ฑ ๋ณธ๋ฌธ

Language/Java

[Java] ์ž๋ฐ” ํด๋ž˜์Šค ์„ ์–ธ ๋ฐ ๊ฐ์ฒด ์ƒ์„ฑ

hhnn_soph 2021. 9. 13. 03:23

๐Ÿ“™ ํด๋ž˜์Šค ์„ ์–ธ

1. ํด๋ž˜์Šค ์ด๋ฆ„

- ๋‹ค๋ฅธ ํด๋ž˜์Šค์™€ ์‹๋ณ„ํ•  ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋ฏ€๋กœ ๊ทธ ํŠน์ง•์„ ๋“œ๋Ÿฌ๋‚ด๋Š” ๋‹จ์–ด(Person, Car etc.)๋ฅผ ์‚ฌ์šฉ

- ์ž๋ฐ” ์‹๋ณ„์ž ์ž‘์„ฑ ๊ทœ์น™ ์‚ฌ์šฉ

  ์ž‘์„ฑ๊ทœ์น™ ์˜ˆ (๋ถˆ๊ฐ€ >> ๊ฐ€๋Šฅ)
1 ํ•˜๋‚˜ ์ด์ƒ์˜ ๋ฌธ์ž๋กœ ๊ตฌ์„ฑ C    >>    Car, SportsCar
2 ์ฒซ ๋ฒˆ์งธ ๊ธ€์ž ์ˆซ์ž ๋ถˆ๊ฐ€ 3Car    >>    ThirdCar
3 ํŠน์ˆ˜๋ฌธ์ž $, _๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ #Car, @Car    >>    $Car, _Car
4 ์ž๋ฐ” ํ‚ค์›Œ๋“œ ์‚ฌ์šฉ ๋ถˆ๊ฐ€ int, for, public    >>    IntNumber, ForLoop, PublicStation
5 ํ•œ๊ธ€๋ณด๋‹จ ์˜์–ด ์‚ฌ์šฉ ์‚ฌ๋žŒ, ์ž๋™์ฐจ >> Person, Car
6 ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„ Car์™€ car๋Š” ๋‹ค๋ฆ„

- ํด๋ž˜์Šค ์ด๋ฆ„: ๋‹จ์–ด์˜ ์ฒซ ์ž๋Š” ๋ฌด์กฐ๊ฑด ๋Œ€๋ฌธ์ž๋กœ!

 Calculator   Car   Member   ChatClient   ChatServer   Person   Controller   Service   DAO   

 

- Java ์†Œ์Šค ํŒŒ์ผ(. java) ์ด๋ฆ„: ๋ฐ˜๋“œ์‹œ ํด๋ž˜์Šค ์ด๋ฆ„๊ณผ ๊ฐ™๊ฒŒ ์ž‘์„ฑ(๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„)

 

2. ํด๋ž˜์Šค ์„ ์–ธ

- public class ์ž‘์„ฑ ํ›„ ํด๋ž˜์Šค๋ช… { } ์ค‘๊ด„ํ˜ธ๋กœ ๋ฌถ์–ด์คŒ

- { }๋Š” ํด๋ž˜์Šค ์„ ์–ธ์˜ ์‹œ์ž‘๊ณผ ๋์„ ์•Œ๋ ค์คŒ

- ์ผ๋ฐ˜์ ์œผ๋กœ ์†Œ์ŠคํŒŒ์ผ ํ•˜๋‚˜ ๋‹น ํ•œ ๊ฐœ์˜ ํด๋ž˜์Šค ์„ ์–ธ

< ์„ค๋ช… >
public class ํด๋ž˜์Šค๋ช… {
// public class๋Š” ๋ฐ˜๋“œ์‹œ ์†Œ๋ฌธ์ž๋กœ ์ž‘์„ฑ
}

< ex >
public class Car {

}

class Tire {

}
// ๋‘ ๊ฐœ ์ด์ƒ ํด๋ž˜์Šค ์„ ์–ธ๋„ ๊ฐ€๋Šฅ

[ ํ•œ ์†Œ์ŠคํŒŒ์ผ์— 2๊ฐœ ์ด์ƒ์˜ ํด๋ž˜์Šค ์„ ์–ธ ์‹œ ]

- ๋ฐ”์ดํŠธ ์ฝ”๋“œ ํŒŒ์ผ(. class)์€ ํด๋ž˜์Šค ์ˆ˜๋งŒํผ ์ƒ์„ฑ

- public ์ ‘๊ทผ ์ œํ•œ์ž๋Š” ์†Œ์Šค ํŒŒ์ผ ์ด๋ฆ„๊ณผ ๋™์ผํ•œ ํด๋ž˜์Šค ์„ ์–ธ์—๋งŒ ์ž‘์„ฑ

  > ๋‹ค๋ฅธ ํด๋ž˜์Šค์— ์ž‘์„ฑํ•˜๋ฉด ์ปดํŒŒ์ผ ์—๋Ÿฌ ๋ฐœ์ƒ

 

3. ์ปดํŒŒ์ผ(Complie)

- ํด๋ž˜์Šค ์„ ์–ธ ํ›„ ์†Œ์Šค ํŒŒ์ผ์„ ์ €์žฅํ•˜๋ฉด ์ปดํŒŒ์ผ ์™„๋ฃŒ

- ์ปดํŒŒ์ผ: ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์ž‘์„ฑํ•œ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ์ปดํ“จํ„ฐ๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ์–ธ์–ด๋กœ ๋ฐ”๊พธ์–ด ์ฃผ๋Š” ๊ณผ์ •

- ์ปดํŒŒ์ผ ํ›„ ๊ฐ์ฒด ์ƒ์„ฑ ๊ฐ€๋Šฅ

 

๐Ÿ“™ ๊ฐ์ฒด ์ƒ์„ฑ๊ณผ ํด๋ž˜์Šค ๋ณ€์ˆ˜

- new ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํด๋ž˜์Šค๋กœ๋ถ€ํ„ฐ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑ

- ํด๋ž˜์Šค ๋ณ€์ˆ˜(์ฐธ์กฐ ํƒ€์ž…)์— ์ƒ์„ฑํ•œ ๊ฐ์ฒด๋ฅผ ์ €์žฅํ•˜์—ฌ ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ

- ํ•ด๋‹น ๊ฐ์ฒด๋Š” ํž™(heap) ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์— ์ƒ์„ฑ๋œ ํ›„ ๊ฐ์ฒด์˜ ์ฃผ์†Œ๋ฅผ ํด๋ž˜์Šค ๋ณ€์ˆ˜์— ์ €์žฅ

// ๋ฐฉ๋ฒ•1
ํด๋ž˜์Šคํƒ€์ž… ๋ณ€์ˆ˜๋ช…;
๋ณ€์ˆ˜๋ช… = new ํด๋ž˜์Šค๋ช…();

// ๋ฐฉ๋ฒ•2
ํด๋ž˜์Šคํƒ€์ž… ๋ณ€์ˆ˜๋ช… = new ํด๋ž˜์Šค๋ช…();
// ํด๋ž˜์Šค ์„ ์–ธ
public class Student {
}


// ๊ฐ์ฒด ์ƒ์„ฑ
puvlic class StudentExample {
	public static void main(String[] args){
    	Student stu1 = new Student();
        Student stu2 = new Student();
        Student stu3 = new Student();
        Student stu4 = new Student(); // ํ•˜๋‚˜์˜ ํด๋ž˜์Šค๋กœ ์—ฌ๋Ÿฌ๊ฐœ ๊ฐ์ฒด ์ƒ์„ฑ ๊ฐ€๋Šฅ
    }
}

๊ฐ์ฒด ์ƒ์„ฑ ์‹œ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น ๊ณผ์ •

๐Ÿ“™ ํด๋ž˜์Šค ์šฉ๋„

๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋žจ์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํด๋ž˜์Šค์™€ ์‹คํ–‰ ํด๋ž˜์Šค๊ฐ€ ๋ถ„๋ฆฌ๋˜์–ด ์‚ฌ์šฉ

1. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(API)

- ๋‹ค๋ฅธ ํด๋ž˜์Šค์—์„œ ์ด์šฉํ•  ๋ชฉ์ ์œผ๋กœ ์„ค๊ณ„

- ํ”„๋กœ๊ทธ๋žจ ์ „์ฒด์—์„œ ์‚ฌ์šฉ๋˜๋Š” 100๊ฐœ ์ค‘ 99๊ฐœ๊ฐ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
- ์˜ˆ: Student ํด๋ž˜์Šค

2. ์‹คํ–‰์šฉ

- ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ง„์ž…์ ์ธ main() ๋ฉ”์„œ๋“œ๋ฅผ ์ œ๊ณตํ•˜๋Š” ์—ญํ• 

- ์˜ˆ: StudentExample ํด๋ž˜์Šค