๋‚˜๋งŒ์˜ ์˜ค๋ž˜๋‹ฌ๋ฆฌ๊ธฐ๋ฅผ ํ•˜๋Š” ์‚ฌ๋žŒ

Become a ghost

Programming - Language/JAVA 5

[250306] JAVA ๊ธฐ๋ณธ - ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(OOP): ๋‹คํ˜•์„ฑ(polymorphism)๊ณผ ์บก์Аํ™”(encapsulation)

์ž๋ฐ”์˜ ๊ฐ์ฒด์ง€ํ–ฅํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ดํ•ดํ•  ๋•Œ ์ค‘์š”ํ•œ ๊ฐœ๋…์œผ๋กœ ๊ผฝํžˆ๋Š” ๊ฒƒ์ด ๋„ค๊ฐ€์ง€ ์žˆ๋‹ค.  1. ํด๋ž˜์Šค2. ์ƒ์†3. ๋‹คํ˜•์„ฑ4. ์บก์Аํ™”  ์ด์ค‘์—์„œ ํด๋ž˜์Šค์™€ ์ƒ์†์€ ์ง€๋‚œ ๊ฒŒ์‹œ๊ธ€๋“ค์„ ํ†ตํ•ด ๋‹ค๋ฃจ์–ด๋ดค์œผ๋‹ˆ์˜ค๋Š˜์€ ๋‹คํ˜•์„ฑ๊ณผ ์บก์Аํ™”์— ๋Œ€ํ•ด ์ •๋ฆฌํ•˜๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์ ธ๋ณด์ž.    ๋จผ์ €, ๐Ÿ“Œ ๋‹คํ˜•์„ฑ(polymorphism)์ด๋ž€? - Polymorphism = Poly (๋งŽ์€, ์—ฌ๋Ÿฌ ๊ฐœ) + Morphism (ํ˜•ํƒœ, ๊ตฌ์กฐ)์ฆ‰, ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ํ˜•ํƒœ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค๋Š” ์˜๋ฏธ๋กœ ์ž๋ฐ”์˜ ๋‹คํ˜•์„ฑ ๊ฐœ๋…์—์„œ๋Š”- ๊ฐ™์€ ๋ฉ”์„œ๋“œ(๋˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค) ๊ฐ€ ์„œ๋กœ ๋‹ค๋ฅธ ๊ฐ์ฒด์—์„œ ๋‹ค๋ฅด๊ฒŒ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.- ๊ฐ™์€ ๋ถ€๋ชจ ํด๋ž˜์Šค๋ฅผ ๊ฐ€์ง„ ๊ฐ์ฒด๊ฐ€ ์—ฌ๋Ÿฌ ํ˜•ํƒœ(๋‹ค์–‘ํ•œ ํƒ€์ž…)๋กœ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ- ์ž์‹ ํด๋ž˜์Šค๊ฐ€ ๋ถ€๋ชจ ํด๋ž˜์Šค์˜ ํƒ€์ž…์œผ๋กœ ์ฐธ์กฐ๋  ์ˆ˜ ์žˆ์Œ (Bicycle m..

[250304] JAVA ๊ธฐ๋ณธ - ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(OOP): ์ƒ์†(Inheritance) ๊ฐœ๋… ์ดํ•ดํ•˜๊ธฐ (๋ถ€๋ชจ ํด๋ž˜์Šค, ์ž์‹ ํด๋ž˜์Šค, super ํ‚ค์›Œ๋“œ, ์˜ค๋ฒ„๋ผ์ด๋”ฉ), ๋‹ค์ค‘์ƒ์†

์ƒ์†(Inheritance)์ด๋ž€ ?์ž๋ฐ”์—์„œ๋Š” ํ•˜๋‚˜์˜ ํด๋ž˜์Šค๊ฐ€ ๋‹ค๋ฅธ ํด๋ž˜์Šค์—์„œ ํ•„๋“œ(๋ณ€์ˆ˜)์™€ ๋ฉ”์„œ๋“œ(๊ธฐ๋Šฅ)์„ ์ƒ์†๋ฐ›์•„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋ฉฐ ์ด๋ฅผ ์ƒ์†์ด๋ผ๊ณ  ํ•œ๋‹ค.  ๋ถ€๋ชจ ํด๋ž˜์Šค(base class, parent class)์™€ ์ž์‹ ํด๋ž˜์Šค(derived class, extended class, child class)๋กœ ๋‚˜๋ˆ ์ ธ ์žˆ๋‹ค.  ๋ถ€๋ชจ ํด๋ž˜์Šค(์Šˆํผ ํด๋ž˜์Šค, Superclass) → ๊ธฐ์กด์˜ ํด๋ž˜์Šค๋กœ, ๊ณตํ†ต ๊ธฐ๋Šฅ์„ ์ •์˜ํ•จ.์ž์‹ ํด๋ž˜์Šค(์„œ๋ธŒ ํด๋ž˜์Šค, Subclass) → ๋ถ€๋ชจ ํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›์•„ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•จ. ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ํด๋ž˜์Šค๋ฅผ ์žฌ์‚ฌ์šฉํ•ด์„œ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ์ด๋‹ค. ๋˜ํ•œ ์ž๋ฐ”์—์„œ๋Š” ๋ชจ๋“  ํด๋ž˜์Šค๊ฐ€ Object ํด๋ž˜์Šค๋ฅผ ์ง์ ‘, ๋˜๋Š” ๊ฐ„์ ‘์ ์œผ๋กœ ์ƒ์† ๋ฐ›๋Š”๋‹ค. ( ์ž๋ฐ”์—..

[250224] JAVA ๊ธฐ๋ณธ ๋ฌธ๋ฒ• - ๊ฐ์ฒด์ง€ํ–ฅ, ํด๋ž˜์Šค, ๊ฐ์ฒด, ๋ฉ”์„œ๋“œ (feat. ์ ํ”„ ํˆฌ ์ž๋ฐ”) / ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ์ธ์ˆ˜์˜ ์ฐจ์ด, ์ž…๋ ฅ๊ฐ’๊ณผ ๋ฆฌํ„ด๊ฐ’์˜ ์ฐจ์ด

์ž๋ฐ”๋Š” ๊ฐ์ฒด ์ง€ํ–ฅ (object oriented) ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ด๋‹ค. ๊ฐ์ฒด ์ง€ํ–ฅ๊ณผ ๊ด€๋ จํ•ด์„œ๋Š” ํด๋ž˜์Šค, ๊ฐ์ฒด, ์ธ์Šคํ„ด์Šค, ์ƒ์†, ์ธํ„ฐํŽ˜์ด์Šค, ๋‹คํ˜•์„ฑ, ์ถ”์ƒํ™” ๋“ฑ์˜ ๊ฐœ๋…์ด ์กด์žฌํ•œ๋‹ค. ํ•œ ๊ฐœ์”ฉ ์ดํ•ดํ•ด๋ณด๋„๋ก ํ•˜์ž. ์ด ๊ฒŒ์‹œ๊ธ€์—์„œ๋Š” ํด๋ž˜์Šค, ๊ฐ์ฒด, ์ธ์Šคํ„ด์Šค๋งŒ ์–ธ๊ธ‰ํ•  ์˜ˆ์ • ๊ฐ์ฒด ์ง€ํ–ฅ์ด๋ž€? ๊ตญ์–ด ์‚ฌ์ „ ๋œป์— ์˜ํ•˜๋ฉด "๋…๋ฆฝ์ ์ธ ๊ฐ๊ฐ์˜ ๊ฐ์ฒด๋กœ ํ”„๋กœ๊ทธ๋žจ์ด๋‚˜ ์‹œ์Šคํ…œ์„ ๊ตฌ์„ฑํ•˜๋Š” ์ผ" ์ด๋ผ๊ณ  ์ •์˜ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ๊ฐ์ฒด: ๋ฌธ์žฅ ๋‚ด์—์„œ ๋™์‚ฌ์˜ ํ–‰์œ„๊ฐ€ ๋ฏธ์น˜๋Š” ๋Œ€์ƒ, ์ž‘์šฉ์˜ ๋Œ€์ƒ์ด ๋˜๋Š” ์ชฝ, ์˜์‚ฌ๋‚˜ ํ–‰์œ„๊ฐ€ ๋ฏธ์น˜๋Š” ๋Œ€์ƒ ex. ์„ ์ƒ๋‹˜์ด ์ˆ ๋ž˜์—๊ฒŒ ์žกํžˆ์…จ๋‹ค. ์„ ์ƒ๋‹˜=๊ฐ์ฒด ์ง€ํ–ฅ: ์–ด๋–ค ๋ชฉํ‘œ๋กœ ๋œป์ด ์“ธ๋ฆฌ์–ด ํ–ฅํ•จ. ๋˜๋Š” ๊ทธ ๋ฐฉํ–ฅ์ด๋‚˜ ๊ทธ์ชฝ์œผ๋กœ ์ ๋ฆฌ๋Š” ์˜์ง€. ex. ํ‰ํ™”ํ†ต์ผ ์ง€ํ–ฅ.  ์ฆ‰, ์ž๋ฐ”๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌ์„ฑํ•˜๋Š” ์š”์†Œ๋“ค์„ ํŠน์ • ๋Œ€์ƒ ๋‹จ์œ„๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ์„œ ..

[250218] JAVA ๊ธฐ๋ณธ ๋ฌธ๋ฒ• - ๋ณ€์ˆ˜, ์—ฐ์‚ฐ์ž, ์กฐ๊ฑด๋ฌธ, ๋ฐ˜๋ณต๋ฌธ

๋ณ€์ˆ˜ (Variables)์ž๋ฐ”์—์„œ ๋ณ€์ˆ˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ณต๊ฐ„์ด๋ฉฐ, '๊ฐ์ฒด์˜ ์ƒํƒœ'๋ฅผ ์ €์žฅํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ์ž๋ฐ”์—์„œ๋Š” ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•  ๋•Œ ์ž๋ฃŒํ˜•(data type) ์„ ํ•จ๊ป˜ ์ง€์ •ํ•ด์•ผ ํ•œ๋‹ค   ์ž๋ฃŒํ˜• (Data Type) ๋ฐ์ดํ„ฐ์˜ ์ข…๋ฅ˜์™€ ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๊ธฐ๋ณธ ๊ตฌ์„ฑ ์š”์†Œ. ์ˆซ์ž, ๋ฌธ์ž์—ด์ฒ˜๋Ÿผ ์ž๋ฃŒ ํ˜•ํƒœ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ๊ฒƒ์„ ๋œปํ•œ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์—์„œ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ด๋ฉด์„œ ํ•ต์‹ฌ ๋‹จ์œ„๊ฐ€ ๋˜๋Š” ๊ฒƒ์ด ์ž๋ฃŒํ˜•์ด๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๊ฐ€์žฅ ๊ธฐ์ดˆ. "๊ทธ ์–ธ์–ด์˜ ์ž๋ฃŒํ˜•์„ ์•Œ๋ฉด ์ด๋ฏธ ๊ทธ ์–ธ์–ด์˜ ๋ฐ˜์„ ํ„ฐ๋“ํ•œ ๊ฒƒ์ด๋‚˜ ๋‹ค๋ฆ„ ์—†๋‹ค." ์ •์ˆ˜ - int ( -2147483648 ~ 2147483647 ), double ( -9223372036854775808 ~ 9223372036854775807 ), ๋ฐ˜๋ฉด byte, short ๋Š” ์ž˜ ์‚ฌ์šฉ ์•ˆ ํ•จ..

[JAVA] ์ž๋ฐ” ์Šค๋ ˆ๋“œ (Thread) ๋ž€?

๋™์ž‘ํ•˜๊ณ  ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ํ”„๋กœ์„ธ์Šค (Process) ๋ผ๊ณ  ํ•œ๋‹ค. ํ•œ ๊ฐœ์˜ ํ”„๋กœ์„ธ์Šค์—์„œ๋Š” ํ•œ ๊ฐ€์ง€์˜ ์ผ์„ ํ•˜์ง€๋งŒ ์Šค๋ ˆ๋“œ(Thread) ๋ฅผ ์ด์šฉํ•˜๋ฉด ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค ์•ˆ์— ๋‘ ๊ฐœ ์ด์ƒ์˜ ์ผ์„ ๋™์‹œ์— ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. public class Sample extends Thread { public void run() { // Thread ๋ฅผ ์ƒ์†ํ•˜๋ฉด run ๋ฉ”์„œ๋“œ๋ฅผ ๊ตฌํ˜„ํ•ด์•ผ ํ•œ๋‹ค. System.out.println("thread run."); } public static void main(String[] args) { Sample sample = new Sample(); sample.start(); // start()๋กœ ์“ฐ๋ ˆ๋“œ๋ฅผ ์‹คํ–‰ํ•œ..