๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Today I Learned(TIL)/Java17

Java ๊ธฐ๋ณธํŽธ ๊ฐ•์˜_๋‹คํ˜•์„ฑ1 ๋‹คํ˜•์„ฑ 1 ๋‹คํ˜•์„ฑ ์‹œ์ž‘๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๋Œ€ํ‘œ์ ์ธ ํŠน์ง•์œผ๋กœ๋Š” ์บก์Šํ™”, ์ƒ์†, ๋‹คํ˜•์„ฑ์ด ์žˆ๋‹ค. ๊ทธ์ค‘์—์„œ ๋‹คํ˜•์„ฑ์€ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๊ฝƒ์ด๋ผ ๋ถˆ๋ฆฐ๋‹ค.์•ž์„œ ํ•™์Šตํ–ˆ๋˜ ์บก์Šํ™”๋‚˜ ์ƒ์†์€ ์ง๊ด€์ ์œผ๋กœ ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๋‹ค. ๋ฐ˜๋ฉด์— ๋‹คํ˜•์„ฑ์€ ์ œ๋Œ€๋กœ ์ดํ•ดํ•˜๊ธฐ๋„ ์–ด๋ ต๊ณ , ์ž˜ ํ™œ์šฉํ•˜๊ธฐ๋Š” ๋” ์–ด๋ ต๋‹ค. ํ•˜์ง€๋งŒ ์ข‹์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‹คํ˜•์„ฑ์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ํ•„์ˆ˜๋‹ค.๋‹คํ˜•์„ฑ(Polymorphism)์€ ์ด๋ฆ„ ๊ทธ๋Œ€๋กœ "๋‹ค์–‘ํ•œ ํ˜•ํƒœ", "์—ฌ๋Ÿฌ ํ˜•ํƒœ"๋ฅผ ๋œปํ•œ๋‹ค.ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๋‹คํ˜•์„ฑ์€ ํ•œ ๊ฐ์ฒด๊ฐ€ ์—ฌ๋Ÿฌ ํƒ€์ž…์˜ ๊ฐ์ฒด๋กœ ์ทจ๊ธ‰๋  ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ์„ ๋œปํ•œ๋‹ค. ๋ณดํ†ต ํ•˜๋‚˜์˜ ํƒ€์ž…์œผ๋กœ ๊ณ ์ •๋˜์–ด ์žˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๋‹คํ˜•์„ฑ์„ ์‚ฌ์šฉํ•˜๋ฉด ํ•˜๋‚˜์˜ ๊ฐ์ฒด๊ฐ€ ๋‹ค๋ฅธ ํƒ€์ž…์œผ๋กœ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋œป์ด๋‹ค. ๋‹คํ˜•์„ฑ์„ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” 2๊ฐ€์ง€ ํ•ต์‹ฌ ์ด๋ก ์„ ์•Œ์•„์•ผ ํ•œ๋‹ค.๋‹คํ˜•์  ์ฐธ์กฐ๋ฉ”์„œ๋“œ .. 2024. 12. 2.
Java ๊ธฐ๋ณธํŽธ ๊ฐ•์˜_์ƒ์† ์ƒ์† ์ƒ์† - ์‹œ์ž‘package extends1.ex1;public class ElectricCar { public void move() { System.out.println("์ฐจ๋ฅผ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค."); } public void charge() { System.out.println("์ถฉ์ „ํ•ฉ๋‹ˆ๋‹ค."); }}package extends1.ex1;public class GasCar { public void move() { System.out.println("์ฐจ๋ฅผ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค."); } public void fillUp() { System.out.println("๊ธฐ๋ฆ„์„ ์ฃผ์œ ํ•ฉ๋‹ˆ๋‹ค."); }}package extends1.ex.. 2024. 12. 1.
Java ๊ธฐ๋ณธํŽธ ๊ฐ•์˜_final final final ๋ณ€์ˆ˜์™€ ์ƒ์ˆ˜final ํ‚ค์›Œ๋“œ๋Š” ์ด๋ฆ„ ๊ทธ๋Œ€๋กœ ๋! ์ด๋ผ๋Š” ๋œป์ด๋‹ค.๋ณ€์ˆ˜์— final ํ‚ค์›Œ๋“œ๊ฐ€ ๋ถ™์œผ๋ฉด ๋”๋Š” ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋‹ค.์ฐธ๊ณ ๋กœ final์€ class, method๋ฅผ ํฌํ•จํ•œ ์—ฌ๋Ÿฌ ๊ณณ์— ๋ถ™์„ ์ˆ˜ ์žˆ๋‹ค.final - ์ง€์—ญ ๋ณ€์ˆ˜package final1;public class FinalLocalMain { public static void main(String[] args) { // final ์ง€์—ญ ๋ณ€์ˆ˜ final int data1; data1 = 10; // ์ตœ์ดˆ ํ•œ๋ฒˆ๋งŒ ํ• ๋‹น ๊ฐ€๋Šฅ //data1 = 20; // ์ปดํŒŒ์ผ ์˜ค๋ฅ˜ ๋ฐœ์ƒ // final ์ง€์—ญ ๋ณ€์ˆ˜ 2 final int data2 = 10; .. 2024. 11. 28.
Java ๊ธฐ๋ณธํŽธ ๊ฐ•์˜_์ ‘๊ทผ ์ œ์–ด์ž ์ ‘๊ทผ ์ œ์–ด์ž ์ ‘๊ทผ ์ œ์–ด์ž ์ดํ•ด 1์ ‘๊ทผ ์ œ์–ด์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ•ด๋‹น ํด๋ž˜์Šค ์™ธ๋ถ€์—์„œ ํŠน์ • ํ•„๋“œ๋‚˜ ๋ฉ”์„œ๋“œ์— ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์„ ํ—ˆ์šฉํ•˜๊ฑฐ๋‚˜ ์ œํ•œํ•  ์ˆ˜ ์žˆ๋‹ค.ํ•„๋“œ์— ์ง์ ‘ ์ ‘๊ทผํ•ด์„œ ์›ํ•˜๋Š” ๊ฐ’์„ ์„ค์ •ํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ๊ทผ๋ณธ์ ์œผ๋กœ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ•„๋“œ์˜ ์™ธ๋ถ€ ์ ‘๊ทผ์„ ๋ง‰์„ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ•˜๋‹ค. ์ ‘๊ทผ ์ œ์–ด์ž ์ดํ•ด 2private ์ ‘๊ทผ ์ œ์–ด์ž๋Š” ๋ชจ๋“  ์™ธ๋ถ€ ํ˜ธ์ถœ์„ ๋ง‰๋Š”๋‹ค. ๋”ฐ๋ผ์„œ private์ด ๋ถ™์€ ๊ฒฝ์šฐ ํ•ด๋‹น ํด๋ž˜์Šค ๋‚ด๋ถ€์—์„œ๋งŒ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋‹ค. โœ”๏ธ ์ฐธ๊ณ ์ข‹์€ ํ”„๋กœ๊ทธ๋žจ์€ ๋ฌดํ•œํ•œ ์ž์œ ๋„๊ฐ€ ์ฃผ์–ด์ง€๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ์•„๋‹ˆ๋ผ ์ ์ ˆํ•œ ์ œ์•ฝ์„ ์ œ๊ณตํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค. ์ ‘๊ทผ ์ œ์–ด์ž ์ข…๋ฅ˜Java๋Š” 4๊ฐ€์ง€ ์ข…๋ฅ˜์˜ ์ ‘๊ทผ ์ œ์–ด์ž๋ฅผ ์ œ๊ณตํ•œ๋‹ค.์ ‘๊ทผ ์ œ์–ด์ž ์ข…๋ฅ˜private : ๋ชจ๋“  ์™ธ๋ถ€ ํ˜ธ์ถœ์„ ๋ง‰๋Š”๋‹ค.default(package-private) : ๊ฐ™์€ ํŒจํ‚ค์ง€ ์•ˆ.. 2024. 11. 28.
Java ๊ธฐ๋ณธํŽธ ๊ฐ•์˜_ํŒจํ‚ค์ง€ ํŒจํ‚ค์ง€ ํŒจํ‚ค์ง€ - ์‹œ์ž‘๋งค์šฐ ๋งŽ์€ ํด๋ž˜์Šค๊ฐ€ ๋“ฑ์žฅํ•˜๋ฉด ๊ด€๋ จ ์žˆ๋Š” ๊ธฐ๋Šฅ๋“ค์„ ๋ถ„๋ฅ˜ํ•ด์„œ ๊ด€๋ฆฌํ•˜๊ณ  ์‹ถ์–ด ์ง„๋‹ค.์ปดํ“จํ„ฐ๋Š” ๋ณดํ†ต ํŒŒ์ผ์„ ๋ถ„๋ฅ˜ํ•˜๊ธฐ ์œ„ํ•ด ํด๋”, ๋””๋ ‰ํ† ๋ฆฌ๋ผ๋Š” ๊ฐœ๋…์„ ์ œ๊ณตํ•œ๋‹ค. Java๋„ ์ด๋Ÿฐ ๊ฐœ๋…์„ ์ œ๊ณตํ•˜๋Š”๋ฐ, ์ด๊ฒƒ์ด ๋ฐ”๋กœ ํŒจํ‚ค์ง€๋‹ค.* user * User * UserManager * UserHistory* product * Product * ProductCatalog * ProductImage* order * Order * OrderService * OrderHistory* cart * ShoppingCart * CartItem* payment * Payment * PaymentHistory* shipping * Shipment * ShipmentTracker์—ฌ๊ธฐ์„œ user, p.. 2024. 11. 26.
Java ๊ธฐ๋ณธํŽธ ๊ฐ•์˜_์ƒ์„ฑ์ž ์ƒ์„ฑ์ž ์ƒ์„ฑ์ž - ํ•„์š”ํ•œ ์ด์œ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์‹œ์ ์— ์–ด๋–ค ์ž‘์—…์„ ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์ƒ์„ฑ์ž(Construct)๋ฅผ ์ด์šฉํ•˜๋ฉด ๋œ๋‹ค.MemberInitpackage construct;public class MemberInit { String name; int age; int grade;}MemberInitMain1package construct;public class MemberInitMain1 { public static void main(String[] args) { MemberInit member1 = new MemberInit(); member1.name = "user1"; member1.age = 15; member1.grade = 90.. 2024. 11. 26.