π™Ώπš›πš˜πšπš›πšŠπš–πš–πš’πš—πš π™»πšŠπš—πšπšžπšŠπšπšŽ/π™Ήπ™°πš…π™°

직μž₯ λ™λ£Œκ°€ SetterλŒ€μ‹  Builderλ₯Ό μ‚¬μš©ν•˜κΈΈλž˜ κΆκΈˆν•΄μ„œ μ°Ύμ•„λ³΄μ•˜λ‹€.  μ™œ Builder νŒ¨ν„΄μ„ μ‚¬μš©ν• κΉŒ?μ½”λ“œμ˜ 가독성, μ•ˆμ „μ„±, μœ μ§€λ³΄μˆ˜μ„±μ΄ ν–₯μƒλ˜κΈ° λ•Œλ¬Έμ΄λ‹€. κ°€λ…μ„± Setterλ₯Ό μ‚¬μš©ν•˜λ©΄ 객체λ₯Ό μƒμ„±ν•œ ν›„ μ—¬λŸ¬ 번의 λ©”μ„œλ“œ 호좜이 ν•„μš”ν•˜λ‹€.반면, Builder νŒ¨ν„΄μ„ μ‚¬μš©ν•˜λ©΄ 체이닝 λ°©μ‹μœΌλ‘œ ν•œ λ²ˆμ— 객체λ₯Ό ꡬ성할 수 μžˆμ–΄ μ½”λ“œκ°€ 더 읽기 μ‰¬μ›Œμ§„λ‹€. Setter 방식// Setter 방식Book book = new Book();book.setTitle("μ±„μ‹μ£Όμ˜μž");book.setAuthor("ν•œκ°•");book.setPrice(13500);book.setPublisher("μ°½λΉ„"); - 객체λ₯Ό μƒμ„±ν•œ ν›„ μ—¬λŸ¬ 번의 set() 호좜이 ν•„μš”- ν•„μˆ˜ 값이 λˆ„λ½λ  κ°€λŠ₯성이 있음 Builder 방식..
jar 파일둜 μƒμ„±ν•˜κΈ°!jar cvf aProject.jar -C aProject .jar cvf {jar 파일 이름}.jar -C {ν•΄λ‹Ή 폴더 이름} . 1. cvfμ˜΅μ…˜μœΌλ‘œ JAR 생성 방식을 μ§€μ •:c (create): μƒˆ JAR νŒŒμΌμ„ 생성.v (verbose): 처리 상황을 μžμ„Ένžˆ 좜λ ₯. (예: μ–΄λ–€ 파일이 μΆ”κ°€λ˜μ—ˆλŠ”μ§€ 확인 κ°€λŠ₯.)f (file): κ²°κ³Όλ₯Ό μ§€μ •ν•œ 파일 이름(aProject.jar)으둜 좜λ ₯.즉, μƒˆ JAR νŒŒμΌμ„ μƒμ„±ν•˜κ³ , 처리 κ²°κ³Όλ₯Ό 화면에 좜λ ₯ν•˜λ©΄μ„œ 파일(aProject.jar)둜 μ €μž₯ν•˜λΌλŠ” λͺ…령어이닀.2. aProject.jar생성될 JAR 파일의 μ΄λ¦„μ—¬κΈ°μ„œλŠ”aProject.jarλΌλŠ” μ΄λ¦„μœΌλ‘œ μ••μΆ•λœ JAR 파일이 λ§Œλ“€μ–΄μ§„λ‹€.3. -C aProject .-C μ˜΅μ…˜: 디렉터리..
남ꢁ성 μ €μžμ˜ κ°•μ˜λ₯Ό 보고 ch7을 μ •λ¦¬ν•΄λ³΄μ•˜λ‹€! https://youtu.be/fw7Nm_li0pE?si=gnbl1DufDsyikznQ   λ‹€ν˜•μ„±κΉŒμ§€ λ°˜λ³΅ν•˜λΌ..λ‹€ν˜•μ„±μ„ 이해 λͺ»ν•˜λ©΄ μΆ”μƒν΄λž˜μŠ€, μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ΄ν•΄ν•˜μ§€ λͺ»ν•œλ‹€6μž₯ ~7μž₯ λ‹€ν˜•μ„±κΉŒμ§€ 많이 λ°˜λ³΅ν•˜λΌ    λ‹€ν˜•μ„±μ΄λž€?μ—¬λŸ¬κ°€μ§€ ν˜•νƒœλ₯Ό κ°€μ§ˆ 수 μžˆλŠ” λŠ₯λ ₯-쑰상 νƒ€μž… μ°Έμ‘° λ³€μˆ˜λ‘œ μžμ† νƒ€μž… 객체λ₯Ό λ‹€λ£¨λŠ” 것-μžμ† νƒ€μž…μ˜ μ°Έμ‘°λ³€μˆ˜λ‘œ 쑰상 νƒ€μž…μ˜ 객체λ₯Ό 가리킬 수 μ—†λ‹€    Tv t = new SmartTv(); νƒ€μž…μ΄ λΆˆμΌμΉ˜ν•΄λ„ OK.     κ°μ²΄μ™€ μ°Έμ‘°λ³€μˆ˜μ˜ νƒ€μž…μ΄ μΌμΉ˜ν•  λ•Œμ™€ μΌμΉ˜ν•˜μ§€ μ•Šμ„ λ•Œμ˜ 차이?SmartTv s = new SmartTv();Tv t = new SmartTv();  sλŠ” 7개λ₯Ό μ‚¬μš©ν•  수 있고, tλŠ” 5개λ₯Ό μ‚¬μš©ν•  수 μžˆλ‹€  ..
남ꢁ성 μ €μžμ˜ κ°•μ˜λ₯Ό 보고 ch7을 μ •λ¦¬ν•΄λ³΄μ•˜λ‹€! https://youtu.be/YvCgrZQU4EM?si=nd3kNAonv4s_ritC   instanceof μ—°μ‚°μžλŠ” ν˜•λ³€ν™˜ κ°€λŠ₯ μ—¬λΆ€λ₯Ό μ²΄ν¬ν•˜κΈ° μœ„ν•΄ μ‘΄μž¬μ°Έμ‘°λ³€μˆ˜μ˜ ν˜•λ³€ν™˜μ€ 쑰상과 μžμ†λΌλ¦¬λ§Œ λœλ‹€.   ν˜•λ³€ν™˜ν•˜λŠ” μˆœμ„œβ‘  ν˜•λ³€ν™˜ν•΄λ„ λ˜λŠ”μ§€ λ°˜λ“œμ‹œ 확인⑑ ν˜•λ³€ν™˜    void doWork(Car c) { if (c instanceof FireEngine) { FireEngine fe = (FireEngine)c; }}FireEngine fe = new FireEngine();System.out.println(fe instanceof Object); // trueSystem.out.println(fe instanceof Car); //..
남ꢁ성 μ €μžμ˜ κ°•μ˜λ₯Ό 보고 ch7을 μ •λ¦¬ν•΄λ³΄μ•˜λ‹€!   https://youtu.be/3NuVD8eOMfc?si=WoleOoWCyHyGhwl2       μ ‘κ·Ό μ œμ–΄μžλ₯Ό μ‚¬μš©ν•˜λŠ” 이유?→ μ™ΈλΆ€λ‘œλΆ€ν„° 데이터λ₯Ό λ³΄ν˜Έν•˜κΈ° μœ„ν•΄μ„œ→ μ™ΈλΆ€μ—λŠ” λΆˆν•„μš”ν•œ, λ‚΄λΆ€μ μœΌλ‘œλ§Œ μ‚¬μš©λ˜λŠ”, 뢀뢄을 감좔기 μœ„ν•΄μ„œ  public class Time { public int hour; public int minute; public int second;}λͺ¨λ“  게 public이면 μ–΄λ””μ„œλ“  μ ‘κ·Όν•  수 μžˆλ‹€κ·ΈλŸ¬λ©΄ μ™ΈλΆ€μ—μ„œ (λ‹€λ₯Έ ν΄λž˜μŠ€λ‚˜, λ‹€λ₯Έ νŒ¨ν‚€μ§€μ˜ ν΄λž˜μŠ€μ—μ„œ)  Time t = new Time();t.hour = 25; // λ©€λ²„λ³€μˆ˜μ— 직접 μ ‘κ·ΌTime객체에 직접 값을 ν• λ‹Ήν•  수 μžˆλ‹€κ·Όλ° μ‹œκ°„μ€ 24κΉŒμ§€ 쑴재, 뢄은 60, μ΄ˆλŠ” 60 그리..
남ꢁ성 μ €μžμ˜ κ°•μ˜λ₯Ό 보고 ch7을 μ •λ¦¬ν•΄λ³΄μ•˜λ‹€! https://youtu.be/Qm08p4Vk2sw?si=Rz3KdfmQ1wLPFjaq      private 같은 클래슀 λ‚΄μ—μ„œλ§Œ 접근이 κ°€λŠ₯ν•˜λ‹€ (default) 같은 νŒ¨ν‚€μ§€ λ‚΄μ—μ„œλ§Œ 접근이 κ°€λŠ₯ν•˜λ‹€ protected 같은 νŒ¨ν‚€μ§€ λ‚΄μ—μ„œ, 그리고 λ‹€λ₯Έ νŒ¨ν‚€μ§€μ˜ μžμ† ν΄λž˜μŠ€μ—μ„œ 접근이 κ°€λŠ₯ν•˜λ‹€ public μ ‘κ·Ό μ œν•œμ΄ μ „ν˜€ μ—†λ‹€.        MyParent 클래슀λ₯Ό defaultλ₯Ό λ§Œλ“€μ—ˆκ³ , MyParent와 λ‹€λ₯Έ νŒ¨ν‚€μ§€μ—μ„œ MyChildMyParentκ°€ μ ‘κ·Όμ œμ–΄μžκ°€ (default)이기 λ•Œλ¬Έμ— λ‹€λ₯Έ νŒ¨ν‚€μ§€μ—μ„œ μ‚¬μš©μ„ ν•˜λ €κ³  ν•˜λ©΄ μ—λŸ¬κ°€ λ‚œλ‹€.이걸 ν•΄κ²°ν•˜κΈ° μœ„ν•΄μ„œλŠ” public class MyParent {} 라고 μ¨μ€˜μ•Ό ν•œλ‹€.        μ—¬κΈ°μ„œ 에..
ν•΄λ²„λ‹ˆ
'π™Ώπš›πš˜πšπš›πšŠπš–πš–πš’πš—πš π™»πšŠπš—πšπšžπšŠπšπšŽ/π™Ήπ™°πš…π™°' μΉ΄ν…Œκ³ λ¦¬μ˜ κΈ€ λͺ©λ‘