<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>이상민</title>
    <link>https://sm021118.tistory.com/</link>
    <description>프로그래밍 언어 공부</description>
    <language>ko</language>
    <pubDate>Wed, 15 Apr 2026 01:51:55 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>sm1118sm</managingEditor>
    <item>
      <title>[혼공자바 6주차] Chapter 10~11</title>
      <link>https://sm021118.tistory.com/51</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;10-1 예외 클래스&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-end=&quot;804&quot; data-start=&quot;194&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-end=&quot;276&quot; data-start=&quot;194&quot;&gt;예외란?
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;276&quot; data-start=&quot;211&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;239&quot; data-start=&quot;211&quot;&gt;실행 중 발생하는 오류를 객체로 표현한 것.&lt;/li&gt;
&lt;li data-end=&quot;276&quot; data-start=&quot;243&quot;&gt;프로그램이 비정상 종료되지 않도록 예외 처리가 필요.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-end=&quot;607&quot; data-start=&quot;278&quot;&gt;예외의 종류
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;607&quot; data-start=&quot;295&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;429&quot; data-start=&quot;295&quot;&gt;일반 예외
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;429&quot; data-start=&quot;334&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;355&quot; data-start=&quot;334&quot;&gt;컴파일 단계에서 예외 처리 강제&lt;/li&gt;
&lt;li data-end=&quot;429&quot; data-start=&quot;361&quot;&gt;예: ClassNotFoundException, IOException, InterruptedException&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-end=&quot;607&quot; data-start=&quot;433&quot;&gt;실행 예외
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;607&quot; data-start=&quot;494&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;515&quot; data-start=&quot;494&quot;&gt;실행 중 발생, 예외 처리 선택&lt;/li&gt;
&lt;li data-end=&quot;607&quot; data-start=&quot;521&quot;&gt;예: NullPointerException, ArrayIndexOutOfBoundsException, NumberFormatException&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-end=&quot;804&quot; data-start=&quot;609&quot;&gt;대표 실행 예외
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;804&quot; data-start=&quot;628&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;670&quot; data-start=&quot;628&quot;&gt;NullPointerException &amp;rarr; null 객체 접근 시 발생&lt;/li&gt;
&lt;li data-end=&quot;721&quot; data-start=&quot;674&quot;&gt;ArrayIndexOutOfBoundsException &amp;rarr; 잘못된 배열 인덱스&lt;/li&gt;
&lt;li data-end=&quot;766&quot; data-start=&quot;725&quot;&gt;NumberFormatException &amp;rarr; 잘못된 문자열 숫자 변환&lt;/li&gt;
&lt;li data-end=&quot;804&quot; data-start=&quot;770&quot;&gt;ClassCastException &amp;rarr; 잘못된 타입 변환&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250816_163507782.jpg&quot; data-origin-width=&quot;5309&quot; data-origin-height=&quot;4284&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bFfApp/btsPVcvKXeD/VXOXvKYQvSlwifeZwdp29k/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bFfApp/btsPVcvKXeD/VXOXvKYQvSlwifeZwdp29k/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bFfApp/btsPVcvKXeD/VXOXvKYQvSlwifeZwdp29k/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbFfApp%2FbtsPVcvKXeD%2FVXOXvKYQvSlwifeZwdp29k%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;5309&quot; height=&quot;4284&quot; data-filename=&quot;KakaoTalk_20250816_163507782.jpg&quot; data-origin-width=&quot;5309&quot; data-origin-height=&quot;4284&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250816_163507782_01.jpg&quot; data-origin-width=&quot;5712&quot; data-origin-height=&quot;4284&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bpBbfi/btsPTUwbHl9/v1ALARdnWK7nSO9voDjf91/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bpBbfi/btsPTUwbHl9/v1ALARdnWK7nSO9voDjf91/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bpBbfi/btsPTUwbHl9/v1ALARdnWK7nSO9voDjf91/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbpBbfi%2FbtsPTUwbHl9%2Fv1ALARdnWK7nSO9voDjf91%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;5712&quot; height=&quot;4284&quot; data-filename=&quot;KakaoTalk_20250816_163507782_01.jpg&quot; data-origin-width=&quot;5712&quot; data-origin-height=&quot;4284&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250816_163507782_02.jpg&quot; data-origin-width=&quot;5712&quot; data-origin-height=&quot;4141&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mDS6m/btsPWd8Mjo0/VxIuw50fLOce1eiwttMxQK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mDS6m/btsPWd8Mjo0/VxIuw50fLOce1eiwttMxQK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mDS6m/btsPWd8Mjo0/VxIuw50fLOce1eiwttMxQK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmDS6m%2FbtsPWd8Mjo0%2FVxIuw50fLOce1eiwttMxQK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;5712&quot; height=&quot;4141&quot; data-filename=&quot;KakaoTalk_20250816_163507782_02.jpg&quot; data-origin-width=&quot;5712&quot; data-origin-height=&quot;4141&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-end=&quot;848&quot; data-start=&quot;811&quot; data-ke-size=&quot;size26&quot;&gt;10-2 예외 처리&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-end=&quot;848&quot; data-start=&quot;811&quot; data-ke-size=&quot;size20&quot;&gt;1. 기본 구조&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;848&quot; data-start=&quot;811&quot; data-ke-size=&quot;size16&quot;&gt;try&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;예외가&amp;nbsp;발생할&amp;nbsp;가능성이&amp;nbsp;있는&amp;nbsp;코드 &lt;br /&gt;}&amp;nbsp;catch&amp;nbsp;(ExceptionType&amp;nbsp;e)&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;예외가&amp;nbsp;발생했을&amp;nbsp;때&amp;nbsp;실행할&amp;nbsp;코드 &lt;br /&gt;}&amp;nbsp;finally&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;예외&amp;nbsp;발생&amp;nbsp;여부와&amp;nbsp;관계없이&amp;nbsp;항상&amp;nbsp;실행되는&amp;nbsp;코드&amp;nbsp;(선택사항) &lt;br /&gt;}&lt;/p&gt;
&lt;p data-end=&quot;848&quot; data-start=&quot;811&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-end=&quot;848&quot; data-start=&quot;811&quot; data-ke-size=&quot;size20&quot;&gt;&lt;br /&gt;2. 다중 catch&lt;/h4&gt;
&lt;p data-end=&quot;848&quot; data-start=&quot;811&quot; data-ke-size=&quot;size16&quot;&gt;try&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;예외&amp;nbsp;발생&amp;nbsp;가능&amp;nbsp;코드 &lt;br /&gt;}&amp;nbsp;catch&amp;nbsp;(FileNotFoundException&amp;nbsp;e)&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;파일&amp;nbsp;관련&amp;nbsp;예외&amp;nbsp;처리 &lt;br /&gt;}&amp;nbsp;catch&amp;nbsp;(IOException&amp;nbsp;e)&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;입출력&amp;nbsp;관련&amp;nbsp;예외&amp;nbsp;처리 &lt;br /&gt;}&amp;nbsp;catch&amp;nbsp;(Exception&amp;nbsp;e)&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;그&amp;nbsp;외&amp;nbsp;모든&amp;nbsp;예외&amp;nbsp;처리&amp;nbsp;(가장&amp;nbsp;마지막에&amp;nbsp;위치해야&amp;nbsp;함) &lt;br /&gt;}&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-end=&quot;955&quot; data-start=&quot;937&quot; data-ke-size=&quot;size20&quot;&gt;3. 예외 처리 방법 2가지&lt;/h4&gt;
&lt;p data-end=&quot;955&quot; data-start=&quot;937&quot; data-ke-size=&quot;size16&quot;&gt;1. 직접 처리 (try-catch-finally)&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1022&quot; data-start=&quot;996&quot;&gt;프로그램 내에서 예외를 직접 잡아서 처리합니다.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;try&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int&amp;nbsp;result&amp;nbsp;=&amp;nbsp;10&amp;nbsp;/&amp;nbsp;0; &lt;br /&gt;}&amp;nbsp;catch&amp;nbsp;(ArithmeticException&amp;nbsp;e)&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.out.println(&quot;0으로&amp;nbsp;나눌&amp;nbsp;수&amp;nbsp;없습니다.&quot;); &lt;br /&gt;}&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1188&quot; data-start=&quot;1146&quot;&gt;예외가 발생해도 프로그램이 비정상 종료되지 않고 계속 실행됩니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 떠넘기기 (throws 키워드 사용)&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1270&quot; data-start=&quot;1230&quot;&gt;예외를 메서드에서 처리하지 않고, 호출한 쪽으로 예외를 넘깁니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;public&amp;nbsp;void&amp;nbsp;readFile(String&amp;nbsp;fileName)&amp;nbsp;throws&amp;nbsp;IOException&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileReader&amp;nbsp;reader&amp;nbsp;=&amp;nbsp;new&amp;nbsp;FileReader(fileName); &lt;br /&gt;}&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1432&quot; data-start=&quot;1396&quot;&gt;throws 뒤에 발생할 수 있는 예외 타입을 명시합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1515&quot; data-start=&quot;1433&quot;&gt;이 메서드를 호출하는 곳에서는 반드시:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1487&quot; data-start=&quot;1459&quot;&gt;다시 예외를 처리하거나 (try-catch)&lt;/li&gt;
&lt;li data-end=&quot;1515&quot; data-start=&quot;1490&quot;&gt;또 다른 메서드로 예외를 떠넘겨야 합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;
&lt;div&gt;public&amp;nbsp;static&amp;nbsp;void&amp;nbsp;main(String[]&amp;nbsp;args)&amp;nbsp;throws&amp;nbsp;IOException&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;readFile(&quot;data.txt&quot;);&amp;nbsp;//&amp;nbsp;IOException&amp;nbsp;발생&amp;nbsp;가능 &lt;br /&gt;}&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1700&quot; data-start=&quot;1649&quot;&gt;예외를 떠넘기는 방식은 라이브러리 개발이나 일괄 예외 처리 시 유용합니다.&lt;/li&gt;
&lt;li data-end=&quot;1750&quot; data-start=&quot;1701&quot;&gt;단, 반드시 예외가 처리될 곳이 최종적으로 있어야 프로그램이 정상 작동합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;직접 처리&lt;/td&gt;
&lt;td&gt;try-catch-finally로 예외 처리&lt;/td&gt;
&lt;td&gt;try { ... } catch { ... }&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;떠넘기기&lt;/td&gt;
&lt;td&gt;throws로 호출자에게 예외 전달&lt;/td&gt;
&lt;td&gt;void foo() throws IOE&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250816_163507782_03.jpg&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;4032&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/caJnQV/btsPVXSEmGr/XzPjMb1UFvsmtDSmDfG16k/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/caJnQV/btsPVXSEmGr/XzPjMb1UFvsmtDSmDfG16k/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/caJnQV/btsPVXSEmGr/XzPjMb1UFvsmtDSmDfG16k/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcaJnQV%2FbtsPVXSEmGr%2FXzPjMb1UFvsmtDSmDfG16k%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3024&quot; height=&quot;4032&quot; data-filename=&quot;KakaoTalk_20250816_163507782_03.jpg&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;4032&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250816_163507782_04.jpg&quot; data-origin-width=&quot;5712&quot; data-origin-height=&quot;4110&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lmFBQ/btsPTOXfG0a/p8LAeHqnlMk5FR8FZmtobk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lmFBQ/btsPTOXfG0a/p8LAeHqnlMk5FR8FZmtobk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lmFBQ/btsPTOXfG0a/p8LAeHqnlMk5FR8FZmtobk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlmFBQ%2FbtsPTOXfG0a%2Fp8LAeHqnlMk5FR8FZmtobk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;5712&quot; height=&quot;4110&quot; data-filename=&quot;KakaoTalk_20250816_163507782_04.jpg&quot; data-origin-width=&quot;5712&quot; data-origin-height=&quot;4110&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250816_163507782_05.jpg&quot; data-origin-width=&quot;5344&quot; data-origin-height=&quot;4136&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BgScH/btsPVfeUt2v/7jmW8cdqlecn7NWrev9yPK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BgScH/btsPVfeUt2v/7jmW8cdqlecn7NWrev9yPK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BgScH/btsPVfeUt2v/7jmW8cdqlecn7NWrev9yPK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBgScH%2FbtsPVfeUt2v%2F7jmW8cdqlecn7NWrev9yPK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;5344&quot; height=&quot;4136&quot; data-filename=&quot;KakaoTalk_20250816_163507782_05.jpg&quot; data-origin-width=&quot;5344&quot; data-origin-height=&quot;4136&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250816_163507782_06.jpg&quot; data-origin-width=&quot;5528&quot; data-origin-height=&quot;4284&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bdDvXy/btsPTMLVEuV/CfTYGLfodoV2rRHPnAXnQK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bdDvXy/btsPTMLVEuV/CfTYGLfodoV2rRHPnAXnQK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bdDvXy/btsPTMLVEuV/CfTYGLfodoV2rRHPnAXnQK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbdDvXy%2FbtsPTMLVEuV%2FCfTYGLfodoV2rRHPnAXnQK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;5528&quot; height=&quot;4284&quot; data-filename=&quot;KakaoTalk_20250816_163507782_06.jpg&quot; data-origin-width=&quot;5528&quot; data-origin-height=&quot;4284&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-end=&quot;1190&quot; data-start=&quot;1151&quot; data-ke-size=&quot;size26&quot;&gt;11-1 java.lang 패키지&lt;/h2&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-end=&quot;1732&quot; data-start=&quot;1192&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-end=&quot;1288&quot; data-start=&quot;1192&quot;&gt;Object
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1288&quot; data-start=&quot;1209&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1225&quot; data-start=&quot;1209&quot;&gt;모든 클래스의 최상위 부모&lt;/li&gt;
&lt;li data-end=&quot;1288&quot; data-start=&quot;1229&quot;&gt;주요 메서드: toString(), equals(), hashCode(), clone()&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-end=&quot;1397&quot; data-start=&quot;1290&quot;&gt;Wrapper 클래스
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1397&quot; data-start=&quot;1312&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1337&quot; data-start=&quot;1312&quot;&gt;기본 타입을 객체로 다룰 수 있게 해줌&lt;/li&gt;
&lt;li data-end=&quot;1377&quot; data-start=&quot;1341&quot;&gt;Integer, Double, Boolean 등&lt;/li&gt;
&lt;li data-end=&quot;1397&quot; data-start=&quot;1381&quot;&gt;자동 박싱/언박싱 지원&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-end=&quot;1571&quot; data-start=&quot;1399&quot;&gt;String / StringBuilder / StringBuffer
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1571&quot; data-start=&quot;1447&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1478&quot; data-start=&quot;1447&quot;&gt;String: 불변(immutable) 문자열&lt;/li&gt;
&lt;li data-end=&quot;1525&quot; data-start=&quot;1482&quot;&gt;StringBuilder: 가변(mutable), 동기화 X, 빠름&lt;/li&gt;
&lt;li data-end=&quot;1571&quot; data-start=&quot;1529&quot;&gt;StringBuffer: 가변, 동기화 O, 멀티스레드 환경 안전&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-end=&quot;1653&quot; data-start=&quot;1573&quot;&gt;Math
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1653&quot; data-start=&quot;1588&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1604&quot; data-start=&quot;1588&quot;&gt;수학 관련 유틸 클래스&lt;/li&gt;
&lt;li data-end=&quot;1653&quot; data-start=&quot;1608&quot;&gt;abs(), random(), pow(), round() 등&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-end=&quot;1732&quot; data-start=&quot;1655&quot;&gt;System
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1732&quot; data-start=&quot;1672&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1685&quot; data-start=&quot;1672&quot;&gt;시스템 관련 기능&lt;/li&gt;
&lt;li data-end=&quot;1732&quot; data-start=&quot;1689&quot;&gt;exit(), currentTimeMillis(), gc()&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250816_163507782_07.jpg&quot; data-origin-width=&quot;5712&quot; data-origin-height=&quot;4121&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/o3xyV/btsPWrFUUls/iHyTfImNh6BznQlS8aa3g1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/o3xyV/btsPWrFUUls/iHyTfImNh6BznQlS8aa3g1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/o3xyV/btsPWrFUUls/iHyTfImNh6BznQlS8aa3g1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fo3xyV%2FbtsPWrFUUls%2FiHyTfImNh6BznQlS8aa3g1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;5712&quot; height=&quot;4121&quot; data-filename=&quot;KakaoTalk_20250816_163507782_07.jpg&quot; data-origin-width=&quot;5712&quot; data-origin-height=&quot;4121&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250816_163507782_08.jpg&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;3832&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cZTjWK/btsPV1gqyYS/sKUEoIBeCKAYOZMI29lsik/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cZTjWK/btsPV1gqyYS/sKUEoIBeCKAYOZMI29lsik/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cZTjWK/btsPV1gqyYS/sKUEoIBeCKAYOZMI29lsik/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcZTjWK%2FbtsPV1gqyYS%2FsKUEoIBeCKAYOZMI29lsik%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3024&quot; height=&quot;3832&quot; data-filename=&quot;KakaoTalk_20250816_163507782_08.jpg&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;3832&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 style=&quot;color: #000000;&quot; data-start=&quot;1739&quot; data-end=&quot;1772&quot; data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 style=&quot;color: #000000;&quot; data-start=&quot;1739&quot; data-end=&quot;1772&quot; data-ke-size=&quot;size26&quot;&gt;11-2 java.util 패키지 (자주 쓰는 유틸 모음)&lt;/h2&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot; data-start=&quot;1774&quot; data-end=&quot;2337&quot;&gt;
&lt;li data-start=&quot;1774&quot; data-end=&quot;1963&quot;&gt;컬렉션 프레임워크
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot; data-start=&quot;1794&quot; data-end=&quot;1963&quot;&gt;
&lt;li data-start=&quot;1794&quot; data-end=&quot;1848&quot;&gt;List : 순서 O, 중복 O (예: ArrayList, LinkedList)&lt;/li&gt;
&lt;li data-start=&quot;1852&quot; data-end=&quot;1900&quot;&gt;Set : 순서 X, 중복 X (예: HashSet, TreeSet)&lt;/li&gt;
&lt;li data-start=&quot;1904&quot; data-end=&quot;1963&quot;&gt;Map : key-value 쌍, key 중복 X (예: HashMap, TreeMap)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-start=&quot;1965&quot; data-end=&quot;2050&quot;&gt;Arrays
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot; data-start=&quot;1982&quot; data-end=&quot;2050&quot;&gt;
&lt;li data-start=&quot;1982&quot; data-end=&quot;1992&quot;&gt;배열 관련 유틸&lt;/li&gt;
&lt;li data-start=&quot;1996&quot; data-end=&quot;2050&quot;&gt;sort(), binarySearch(), copyOf(), toString()&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-start=&quot;2052&quot; data-end=&quot;2130&quot;&gt;Collections
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot; data-start=&quot;2074&quot; data-end=&quot;2130&quot;&gt;
&lt;li data-start=&quot;2074&quot; data-end=&quot;2085&quot;&gt;컬렉션 관련 유틸&lt;/li&gt;
&lt;li data-start=&quot;2089&quot; data-end=&quot;2130&quot;&gt;sort(), max(), min(), shuffle()&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-start=&quot;2132&quot; data-end=&quot;2275&quot;&gt;Date / Calendar
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot; data-start=&quot;2158&quot; data-end=&quot;2275&quot;&gt;
&lt;li data-start=&quot;2158&quot; data-end=&quot;2185&quot;&gt;Date: 날짜와 시간 표현 (구버전)&lt;/li&gt;
&lt;li data-start=&quot;2189&quot; data-end=&quot;2213&quot;&gt;Calendar: 날짜 계산 가능&lt;/li&gt;
&lt;li data-start=&quot;2217&quot; data-end=&quot;2275&quot;&gt;(실무에서는 java.time 패키지(LocalDate, LocalDateTime 등) 권장)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-start=&quot;2277&quot; data-end=&quot;2337&quot;&gt;Random
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot; data-start=&quot;2294&quot; data-end=&quot;2337&quot;&gt;
&lt;li data-start=&quot;2294&quot; data-end=&quot;2304&quot;&gt;난수 생성기&lt;/li&gt;
&lt;li data-start=&quot;2308&quot; data-end=&quot;2337&quot;&gt;nextInt(), nextDouble()&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250816_163507782_09.jpg&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;4032&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dmbnF4/btsPVGXC2Qi/NKQoHpNE1frqxLKQ4PMs4k/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dmbnF4/btsPVGXC2Qi/NKQoHpNE1frqxLKQ4PMs4k/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dmbnF4/btsPVGXC2Qi/NKQoHpNE1frqxLKQ4PMs4k/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdmbnF4%2FbtsPVGXC2Qi%2FNKQoHpNE1frqxLKQ4PMs4k%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3024&quot; height=&quot;4032&quot; data-filename=&quot;KakaoTalk_20250816_163507782_09.jpg&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;4032&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250816_163507782_10.jpg&quot; data-origin-width=&quot;5370&quot; data-origin-height=&quot;4053&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yKoIZ/btsPVBaV344/pifccjor0Bo8ZulbQJr3rK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yKoIZ/btsPVBaV344/pifccjor0Bo8ZulbQJr3rK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yKoIZ/btsPVBaV344/pifccjor0Bo8ZulbQJr3rK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyKoIZ%2FbtsPVBaV344%2Fpifccjor0Bo8ZulbQJr3rK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;5370&quot; height=&quot;4053&quot; data-filename=&quot;KakaoTalk_20250816_163507782_10.jpg&quot; data-origin-width=&quot;5370&quot; data-origin-height=&quot;4053&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; text-align: start;&quot;&gt;기본 숙제(필수)&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; text-align: start;&quot;&gt;&amp;nbsp; : &amp;nbsp;&lt;span style=&quot;background-color: #ffffff; text-align: start;&quot;&gt;10-2 확인 문제 2번 문제 풀고 과정 설명하기&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250816_173844351.jpg&quot; data-origin-width=&quot;3455&quot; data-origin-height=&quot;1215&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bqHaKI/btsPTEfLudS/r1HtFkwtk4oTOpfkOdSxUk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bqHaKI/btsPTEfLudS/r1HtFkwtk4oTOpfkOdSxUk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bqHaKI/btsPTEfLudS/r1HtFkwtk4oTOpfkOdSxUk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbqHaKI%2FbtsPTEfLudS%2Fr1HtFkwtk4oTOpfkOdSxUk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3455&quot; height=&quot;1215&quot; data-filename=&quot;KakaoTalk_20250816_173844351.jpg&quot; data-origin-width=&quot;3455&quot; data-origin-height=&quot;1215&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;184&quot; data-start=&quot;134&quot; data-ke-size=&quot;size16&quot;&gt;① 생성자나 메소드의 선언 끝 부분에 사용되어 내부에서 발생된 예외를 떠넘긴다.&lt;/p&gt;
&lt;p data-end=&quot;275&quot; data-start=&quot;185&quot; data-ke-size=&quot;size16&quot;&gt;맞는 설명입니다.&lt;/p&gt;
&lt;p data-end=&quot;275&quot; data-start=&quot;185&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;throws는 메소드 또는 생성자 선언부에서 사용되며, 해당 메소드에서 발생할 수 있는 예외를 호출한 쪽으로 떠넘기겠다는 의미입니다.&lt;/p&gt;
&lt;p data-end=&quot;329&quot; data-start=&quot;282&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;329&quot; data-start=&quot;282&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;329&quot; data-start=&quot;282&quot; data-ke-size=&quot;size16&quot;&gt;② throws 뒤에는 떠넘겨야 할 예외를 쉼표(,)로 구분해서 기술한다.&lt;/p&gt;
&lt;p data-end=&quot;411&quot; data-start=&quot;330&quot; data-ke-size=&quot;size16&quot;&gt;맞는 설명입니다.&lt;/p&gt;
&lt;p data-end=&quot;411&quot; data-start=&quot;330&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;throws IOException, SQLException처럼 여러 개의 예외를 쉼표로 구분하여 나열할 수 있습니다.&lt;/p&gt;
&lt;p data-end=&quot;474&quot; data-start=&quot;418&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;474&quot; data-start=&quot;418&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;474&quot; data-start=&quot;418&quot; data-ke-size=&quot;size16&quot;&gt;③ 모든 예외를 떠넘기기 위해 간단하게 throws Exception으로 작성할 수 있다.&lt;/p&gt;
&lt;p data-end=&quot;574&quot; data-start=&quot;475&quot; data-ke-size=&quot;size16&quot;&gt;맞는 설명입니다.&lt;/p&gt;
&lt;p data-end=&quot;574&quot; data-start=&quot;475&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;예외를 포괄적으로 처리하고 싶을 때 throws Exception으로 모든 예외를 떠넘길 수 있습니다. 다만 좋은 방식은 아니지만, 설명은 맞습니다.&lt;/p&gt;
&lt;p data-end=&quot;611&quot; data-start=&quot;581&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;611&quot; data-start=&quot;581&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;611&quot; data-start=&quot;581&quot; data-ke-size=&quot;size16&quot;&gt;④ 새로운 예외를 발생시키기 위해 사용된다.&lt;/p&gt;
&lt;p data-end=&quot;758&quot; data-start=&quot;612&quot; data-ke-size=&quot;size16&quot;&gt;틀린 설명입니다.&lt;/p&gt;
&lt;p data-end=&quot;758&quot; data-start=&quot;612&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;throws는 예외를 발생시키는 것이 아니라 예외를 떠넘기는 데 사용됩니다.&lt;br /&gt;새로운 예외를 발생시킬 때는 throw 키워드를 사용합니다.&lt;br /&gt;예: throw new IOException(&quot;오류 발생&quot;)&lt;/p&gt;
&lt;p data-end=&quot;758&quot; data-start=&quot;612&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;758&quot; data-start=&quot;612&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;758&quot; data-start=&quot;612&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;758&quot; data-start=&quot;612&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; text-align: start;&quot;&gt;추가 숙제(필수)&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; text-align: start;&quot;&gt;&amp;nbsp; :&amp;nbsp; &lt;span style=&quot;background-color: #ffffff; text-align: start;&quot;&gt;j&lt;span style=&quot;background-color: #ffffff; text-align: start;&quot;&gt;ava.lang 패키지에 속하는 주요 클래스와 용도를 정리해서 포스팅하기&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; text-align: start;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; text-align: start;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; text-align: start;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-end=&quot;758&quot; data-start=&quot;612&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;380&quot; data-start=&quot;365&quot; data-ke-size=&quot;size16&quot;&gt;1. Object&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;569&quot; data-start=&quot;382&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;406&quot; data-start=&quot;382&quot;&gt;모든 클래스의 최상위 부모 클래스입니다.&lt;/li&gt;
&lt;li data-end=&quot;443&quot; data-start=&quot;407&quot;&gt;자바의 모든 클래스는 Object를 자동으로 상속받습니다.&lt;/li&gt;
&lt;li data-end=&quot;569&quot; data-start=&quot;444&quot;&gt;주요 메서드:
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;569&quot; data-start=&quot;458&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;491&quot; data-start=&quot;458&quot;&gt;toString() &amp;ndash; 객체 정보를 문자열로 반환&lt;/li&gt;
&lt;li data-end=&quot;516&quot; data-start=&quot;494&quot;&gt;equals() &amp;ndash; 객체 비교&lt;/li&gt;
&lt;li data-end=&quot;545&quot; data-start=&quot;519&quot;&gt;hashCode() &amp;ndash; 해시코드 반환&lt;/li&gt;
&lt;li data-end=&quot;569&quot; data-start=&quot;548&quot;&gt;clone() &amp;ndash; 객체 복사 등&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;591&quot; data-start=&quot;576&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;591&quot; data-start=&quot;576&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;591&quot; data-start=&quot;576&quot; data-ke-size=&quot;size16&quot;&gt;2. String&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;768&quot; data-start=&quot;593&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;631&quot; data-start=&quot;593&quot;&gt;문자열을 다루기 위한 클래스 (불변, immutable).&lt;/li&gt;
&lt;li data-end=&quot;657&quot; data-start=&quot;632&quot;&gt;한 번 생성된 문자열은 변경되지 않습니다.&lt;/li&gt;
&lt;li data-end=&quot;694&quot; data-start=&quot;658&quot;&gt;&quot;문자열&quot; 리터럴은 내부적으로 String 객체입니다.&lt;/li&gt;
&lt;li data-end=&quot;768&quot; data-start=&quot;695&quot;&gt;주요 메서드: length(), charAt(), substring(), equals(), concat() 등&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;1006&quot; data-start=&quot;993&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;1006&quot; data-start=&quot;993&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;1006&quot; data-start=&quot;993&quot; data-ke-size=&quot;size16&quot;&gt;3. Math&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1124&quot; data-start=&quot;1008&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1051&quot; data-start=&quot;1008&quot;&gt;수학 연산을 위한 메서드 제공 클래스 (static 메서드만 존재)&lt;/li&gt;
&lt;li data-end=&quot;1124&quot; data-start=&quot;1052&quot;&gt;주요 메서드:
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1124&quot; data-start=&quot;1066&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1124&quot; data-start=&quot;1066&quot;&gt;abs(), sqrt(), pow(), max(), min(), random()&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;1146&quot; data-start=&quot;1131&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;1146&quot; data-start=&quot;1131&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;1146&quot; data-start=&quot;1131&quot; data-ke-size=&quot;size16&quot;&gt;4. System&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1297&quot; data-start=&quot;1148&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1169&quot; data-start=&quot;1148&quot;&gt;시스템 관련 기능을 제공하는 클래스&lt;/li&gt;
&lt;li data-end=&quot;1297&quot; data-start=&quot;1170&quot;&gt;주요 기능:
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1297&quot; data-start=&quot;1181&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1210&quot; data-start=&quot;1181&quot;&gt;System.out.println() &amp;ndash; 출력&lt;/li&gt;
&lt;li data-end=&quot;1251&quot; data-start=&quot;1213&quot;&gt;System.currentTimeMillis() &amp;ndash; 현재 시간&lt;/li&gt;
&lt;li data-end=&quot;1282&quot; data-start=&quot;1254&quot;&gt;System.exit(0) &amp;ndash; 프로그램 종료&lt;/li&gt;
&lt;li data-end=&quot;1297&quot; data-start=&quot;1285&quot;&gt;환경 변수 접근 등&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;1339&quot; data-start=&quot;1304&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;1339&quot; data-start=&quot;1304&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;1339&quot; data-start=&quot;1304&quot; data-ke-size=&quot;size16&quot;&gt;5. Wrapper 클래스&lt;/p&gt;
&lt;div&gt;&lt;br /&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-end=&quot;1664&quot; data-start=&quot;1341&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody data-end=&quot;1664&quot; data-start=&quot;1395&quot;&gt;
&lt;tr data-end=&quot;1434&quot; data-start=&quot;1395&quot;&gt;
&lt;td data-col-size=&quot;sm&quot; data-end=&quot;1403&quot; data-start=&quot;1395&quot;&gt;int&lt;/td&gt;
&lt;td data-end=&quot;1415&quot; data-start=&quot;1403&quot; data-col-size=&quot;sm&quot;&gt;Integer&lt;/td&gt;
&lt;td data-end=&quot;1434&quot; data-start=&quot;1415&quot; data-col-size=&quot;sm&quot;&gt;숫자형 데이터를 객체로 다룸&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;1467&quot; data-start=&quot;1435&quot;&gt;
&lt;td data-col-size=&quot;sm&quot; data-end=&quot;1446&quot; data-start=&quot;1435&quot;&gt;double&lt;/td&gt;
&lt;td data-end=&quot;1457&quot; data-start=&quot;1446&quot; data-col-size=&quot;sm&quot;&gt;Double&lt;/td&gt;
&lt;td data-end=&quot;1467&quot; data-start=&quot;1457&quot; data-col-size=&quot;sm&quot;&gt;실수형 객체&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;1502&quot; data-start=&quot;1468&quot;&gt;
&lt;td data-col-size=&quot;sm&quot; data-end=&quot;1480&quot; data-start=&quot;1468&quot;&gt;boolean&lt;/td&gt;
&lt;td data-end=&quot;1492&quot; data-start=&quot;1480&quot; data-col-size=&quot;sm&quot;&gt;Boolean&lt;/td&gt;
&lt;td data-end=&quot;1502&quot; data-start=&quot;1492&quot; data-col-size=&quot;sm&quot;&gt;논리값 객체&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;1536&quot; data-start=&quot;1503&quot;&gt;
&lt;td data-col-size=&quot;sm&quot; data-end=&quot;1512&quot; data-start=&quot;1503&quot;&gt;char&lt;/td&gt;
&lt;td data-end=&quot;1526&quot; data-start=&quot;1512&quot; data-col-size=&quot;sm&quot;&gt;Character&lt;/td&gt;
&lt;td data-end=&quot;1536&quot; data-start=&quot;1526&quot; data-col-size=&quot;sm&quot;&gt;문자형 객체&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;1565&quot; data-start=&quot;1537&quot;&gt;
&lt;td data-col-size=&quot;sm&quot; data-end=&quot;1546&quot; data-start=&quot;1537&quot;&gt;byte&lt;/td&gt;
&lt;td data-end=&quot;1555&quot; data-start=&quot;1546&quot; data-col-size=&quot;sm&quot;&gt;Byte&lt;/td&gt;
&lt;td data-end=&quot;1565&quot; data-start=&quot;1555&quot; data-col-size=&quot;sm&quot;&gt;바이트 객체&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;1599&quot; data-start=&quot;1566&quot;&gt;
&lt;td data-col-size=&quot;sm&quot; data-end=&quot;1576&quot; data-start=&quot;1566&quot;&gt;short&lt;/td&gt;
&lt;td data-end=&quot;1586&quot; data-start=&quot;1576&quot; data-col-size=&quot;sm&quot;&gt;Short&lt;/td&gt;
&lt;td data-end=&quot;1599&quot; data-start=&quot;1586&quot; data-col-size=&quot;sm&quot;&gt;작은 정수형 객체&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;1630&quot; data-start=&quot;1600&quot;&gt;
&lt;td data-col-size=&quot;sm&quot; data-end=&quot;1609&quot; data-start=&quot;1600&quot;&gt;long&lt;/td&gt;
&lt;td data-end=&quot;1618&quot; data-start=&quot;1609&quot; data-col-size=&quot;sm&quot;&gt;Long&lt;/td&gt;
&lt;td data-end=&quot;1630&quot; data-start=&quot;1618&quot; data-col-size=&quot;sm&quot;&gt;긴 정수형 객체&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;1664&quot; data-start=&quot;1631&quot;&gt;
&lt;td data-col-size=&quot;sm&quot; data-end=&quot;1641&quot; data-start=&quot;1631&quot;&gt;float&lt;/td&gt;
&lt;td data-end=&quot;1651&quot; data-start=&quot;1641&quot; data-col-size=&quot;sm&quot;&gt;Float&lt;/td&gt;
&lt;td data-end=&quot;1664&quot; data-start=&quot;1651&quot; data-col-size=&quot;sm&quot;&gt;단정도 실수 객체&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1752&quot; data-start=&quot;1666&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1752&quot; data-start=&quot;1666&quot;&gt;주요 기능:
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1752&quot; data-start=&quot;1679&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1708&quot; data-start=&quot;1679&quot;&gt;박싱(Boxing), 언박싱(Unboxing)&lt;/li&gt;
&lt;li data-end=&quot;1752&quot; data-start=&quot;1711&quot;&gt;parseInt(), valueOf(), toString()&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;2478&quot; data-start=&quot;2463&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;2478&quot; data-start=&quot;2463&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;2478&quot; data-start=&quot;2463&quot; data-ke-size=&quot;size16&quot;&gt;6. Class&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2560&quot; data-start=&quot;2480&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2502&quot; data-start=&quot;2480&quot;&gt;클래스 정보를 표현하는 클래스&lt;/li&gt;
&lt;li data-end=&quot;2560&quot; data-start=&quot;2503&quot;&gt;리플렉션(reflection) 기능을 제공하여 클래스 이름, 메서드, 필드 등을 동적으로 접근 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;Class&amp;lt;?&amp;gt; clazz = String.class; System.out.println(clazz.getName());&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>혼공</category>
      <author>sm1118sm</author>
      <guid isPermaLink="true">https://sm021118.tistory.com/51</guid>
      <comments>https://sm021118.tistory.com/51#entry51comment</comments>
      <pubDate>Sat, 16 Aug 2025 16:56:53 +0900</pubDate>
    </item>
    <item>
      <title>[혼공자바 5주차] Chapter 08~09</title>
      <link>https://sm021118.tistory.com/50</link>
      <description>&lt;h3 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot; data-start=&quot;70&quot; data-end=&quot;102&quot;&gt;08-1 인터페이스&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;108&quot; data-start=&quot;90&quot; data-ke-size=&quot;size18&quot;&gt;1. 인터페이스란?&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;214&quot; data-start=&quot;109&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;133&quot; data-start=&quot;109&quot;&gt;인터페이스는 추상 메서드의 집합.&lt;/li&gt;
&lt;li data-end=&quot;197&quot; data-start=&quot;134&quot;&gt;상수, 추상 메서드, 디폴트 메서드, 정적 메서드 포함 가능 (Java 8부터).&lt;/li&gt;
&lt;li data-end=&quot;214&quot; data-start=&quot;198&quot;&gt;다형성 구현의 핵심 수단.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;240&quot; data-start=&quot;221&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;240&quot; data-start=&quot;221&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;240&quot; data-start=&quot;221&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;240&quot; data-start=&quot;221&quot; data-ke-size=&quot;size18&quot;&gt;2. 인터페이스 선언&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;interface&amp;nbsp;InterfaceName&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;상수 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int&amp;nbsp;MAX&amp;nbsp;=&amp;nbsp;100; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;추상&amp;nbsp;메서드 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void&amp;nbsp;methodA(); &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;default&amp;nbsp;메서드&amp;nbsp;(Java&amp;nbsp;8~) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;default&amp;nbsp;void&amp;nbsp;methodB()&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.out.println(&quot;기본&amp;nbsp;구현&quot;); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;static&amp;nbsp;메서드&amp;nbsp;(Java&amp;nbsp;8~) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;static&amp;nbsp;void&amp;nbsp;staticMethod()&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.out.println(&quot;정적&amp;nbsp;메서드&quot;); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;}&lt;/div&gt;
&lt;/div&gt;
&lt;p data-end=&quot;578&quot; data-start=&quot;559&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;578&quot; data-start=&quot;559&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;578&quot; data-start=&quot;559&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;578&quot; data-start=&quot;559&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;578&quot; data-start=&quot;559&quot; data-ke-size=&quot;size18&quot;&gt;3. 인터페이스 구현&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;600&quot; data-start=&quot;579&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;600&quot; data-start=&quot;579&quot;&gt;implements 키워드 사용&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;div&gt;class&amp;nbsp;MyClass&amp;nbsp;implements&amp;nbsp;InterfaceName&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@Override &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;void&amp;nbsp;methodA()&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.out.println(&quot;구현체&quot;); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;}&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;764&quot; data-start=&quot;745&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;764&quot; data-start=&quot;745&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;764&quot; data-start=&quot;745&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;764&quot; data-start=&quot;745&quot; data-ke-size=&quot;size18&quot;&gt;4. 다중 구현 가능&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;816&quot; data-start=&quot;765&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;816&quot; data-start=&quot;765&quot;&gt;클래스는 하나의 클래스만 상속할 수 있지만, 여러 인터페이스는 동시에 구현 가능.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;div&gt;interface&amp;nbsp;A&amp;nbsp;{&amp;nbsp;void&amp;nbsp;a();&amp;nbsp;} &lt;br /&gt;interface&amp;nbsp;B&amp;nbsp;{&amp;nbsp;void&amp;nbsp;b();&amp;nbsp;} &lt;br /&gt;&lt;br /&gt;class&amp;nbsp;C&amp;nbsp;implements&amp;nbsp;A,&amp;nbsp;B&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;void&amp;nbsp;a()&amp;nbsp;{&amp;nbsp;} &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;void&amp;nbsp;b()&amp;nbsp;{&amp;nbsp;} &lt;br /&gt;}&lt;/div&gt;
&lt;/div&gt;
&lt;p data-end=&quot;984&quot; data-start=&quot;964&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;984&quot; data-start=&quot;964&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;984&quot; data-start=&quot;964&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;984&quot; data-start=&quot;964&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;984&quot; data-start=&quot;964&quot; data-ke-size=&quot;size18&quot;&gt;5. 인터페이스의 용도&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1066&quot; data-start=&quot;985&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1002&quot; data-start=&quot;985&quot;&gt;표준화된 설계를 제공&lt;/li&gt;
&lt;li data-end=&quot;1030&quot; data-start=&quot;1003&quot;&gt;다형성을 활용한 유연한 프로그래밍 가능&lt;/li&gt;
&lt;li data-end=&quot;1066&quot; data-start=&quot;1031&quot;&gt;콜백 구조나 의존성 주입 등에서도 많이 사용됨&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250808_205659778.jpg&quot; data-origin-width=&quot;3478&quot; data-origin-height=&quot;2772&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b8fQop/btsPN54fI7E/40V9SMK9lCDujATmuXpAmk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b8fQop/btsPN54fI7E/40V9SMK9lCDujATmuXpAmk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b8fQop/btsPN54fI7E/40V9SMK9lCDujATmuXpAmk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb8fQop%2FbtsPN54fI7E%2F40V9SMK9lCDujATmuXpAmk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3478&quot; height=&quot;2772&quot; data-filename=&quot;KakaoTalk_20250808_205659778.jpg&quot; data-origin-width=&quot;3478&quot; data-origin-height=&quot;2772&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250808_205659778_01.jpg&quot; data-origin-width=&quot;5441&quot; data-origin-height=&quot;3676&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eDY0tw/btsPM0CuDG1/TWZywU2ogw2KY5MNsGE9Yk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eDY0tw/btsPM0CuDG1/TWZywU2ogw2KY5MNsGE9Yk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eDY0tw/btsPM0CuDG1/TWZywU2ogw2KY5MNsGE9Yk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeDY0tw%2FbtsPM0CuDG1%2FTWZywU2ogw2KY5MNsGE9Yk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;5441&quot; height=&quot;3676&quot; data-filename=&quot;KakaoTalk_20250808_205659778_01.jpg&quot; data-origin-width=&quot;5441&quot; data-origin-height=&quot;3676&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250808_205659778_02.jpg&quot; data-origin-width=&quot;5712&quot; data-origin-height=&quot;4284&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/capqnj/btsPMmTu4cl/cPL3v1oKccTcY1nwAOiauK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/capqnj/btsPMmTu4cl/cPL3v1oKccTcY1nwAOiauK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/capqnj/btsPMmTu4cl/cPL3v1oKccTcY1nwAOiauK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcapqnj%2FbtsPMmTu4cl%2FcPL3v1oKccTcY1nwAOiauK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;5712&quot; height=&quot;4284&quot; data-filename=&quot;KakaoTalk_20250808_205659778_02.jpg&quot; data-origin-width=&quot;5712&quot; data-origin-height=&quot;4284&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250808_205659778_03.jpg&quot; data-origin-width=&quot;5712&quot; data-origin-height=&quot;4284&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bV3feS/btsPLMrpqrR/oC2Ufxf6QBGvTJ5hDqAb0k/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bV3feS/btsPLMrpqrR/oC2Ufxf6QBGvTJ5hDqAb0k/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bV3feS/btsPLMrpqrR/oC2Ufxf6QBGvTJ5hDqAb0k/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbV3feS%2FbtsPLMrpqrR%2FoC2Ufxf6QBGvTJ5hDqAb0k%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;5712&quot; height=&quot;4284&quot; data-filename=&quot;KakaoTalk_20250808_205659778_03.jpg&quot; data-origin-width=&quot;5712&quot; data-origin-height=&quot;4284&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250808_205659778_04.jpg&quot; data-origin-width=&quot;5712&quot; data-origin-height=&quot;4284&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oi5Lx/btsPMqn18Tt/bD1JMOnfpGKELsY996T170/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oi5Lx/btsPMqn18Tt/bD1JMOnfpGKELsY996T170/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oi5Lx/btsPMqn18Tt/bD1JMOnfpGKELsY996T170/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Foi5Lx%2FbtsPMqn18Tt%2FbD1JMOnfpGKELsY996T170%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;5712&quot; height=&quot;4284&quot; data-filename=&quot;KakaoTalk_20250808_205659778_04.jpg&quot; data-origin-width=&quot;5712&quot; data-origin-height=&quot;4284&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-end=&quot;102&quot; data-start=&quot;70&quot; data-ke-size=&quot;size23&quot;&gt;08-2 타입 변환과 다형성&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;189&quot; data-start=&quot;147&quot; data-ke-size=&quot;size18&quot;&gt;1. 자동 타입 변환 (Upcasting / 자동 형변환)&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;278&quot; data-start=&quot;202&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;229&quot; data-start=&quot;202&quot;&gt;자식 타입 &amp;rarr; 부모 타입으로 변환할 때&lt;/li&gt;
&lt;li data-end=&quot;249&quot; data-start=&quot;230&quot;&gt;컴파일러가 자동으로 처리&lt;/li&gt;
&lt;li data-end=&quot;278&quot; data-start=&quot;250&quot;&gt;명시적인 형변환 연산자 (타입)이 필요 없음&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;div&gt;class&amp;nbsp;Animal&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void&amp;nbsp;sound()&amp;nbsp;{&amp;nbsp;System.out.println(&quot;Animal&amp;nbsp;sound&quot;);&amp;nbsp;} &lt;br /&gt;} &lt;br /&gt;&lt;br /&gt;class&amp;nbsp;Dog&amp;nbsp;extends&amp;nbsp;Animal&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void&amp;nbsp;bark()&amp;nbsp;{&amp;nbsp;System.out.println(&quot;Dog&amp;nbsp;bark&quot;);&amp;nbsp;} &lt;br /&gt;} &lt;br /&gt;&lt;br /&gt;Animal&amp;nbsp;a&amp;nbsp;=&amp;nbsp;new&amp;nbsp;Dog();&amp;nbsp;&amp;nbsp;//&amp;nbsp;자동&amp;nbsp;타입&amp;nbsp;변환&amp;nbsp;(업캐스팅) &lt;br /&gt;a.sound();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;Dog&amp;nbsp;클래스에서&amp;nbsp;오버라이딩한&amp;nbsp;메서드가&amp;nbsp;호출됨&lt;/div&gt;
&lt;/div&gt;
&lt;p data-end=&quot;605&quot; data-start=&quot;560&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;605&quot; data-start=&quot;560&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;605&quot; data-start=&quot;560&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;605&quot; data-start=&quot;560&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;605&quot; data-start=&quot;560&quot; data-ke-size=&quot;size18&quot;&gt;2. 강제 타입 변환 (Downcasting / 명시적 형변환)&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;720&quot; data-start=&quot;618&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;645&quot; data-start=&quot;618&quot;&gt;부모 타입 &amp;rarr; 자식 타입으로 변환할 때&lt;/li&gt;
&lt;li data-end=&quot;669&quot; data-start=&quot;646&quot;&gt;명시적으로 형변환을 지정해야 함&lt;/li&gt;
&lt;li data-end=&quot;720&quot; data-start=&quot;670&quot;&gt;실제로 객체가 자식 타입이어야 함 (아니면 ClassCastException 발생)&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;884&quot; data-start=&quot;864&quot; data-ke-size=&quot;size16&quot;&gt;Animal&amp;nbsp;a&amp;nbsp;=&amp;nbsp;new&amp;nbsp;Dog();&amp;nbsp;&amp;nbsp;//&amp;nbsp;업캐스팅 &lt;br /&gt;Dog&amp;nbsp;d&amp;nbsp;=&amp;nbsp;(Dog)&amp;nbsp;a;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;다운캐스팅&amp;nbsp;(강제&amp;nbsp;타입&amp;nbsp;변환) &lt;br /&gt;d.bark();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;자식&amp;nbsp;클래스의&amp;nbsp;메서드&amp;nbsp;사용&amp;nbsp;가능&lt;/p&gt;
&lt;p data-end=&quot;1016&quot; data-start=&quot;976&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;1016&quot; data-start=&quot;976&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;1016&quot; data-start=&quot;976&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;1016&quot; data-start=&quot;976&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;1016&quot; data-start=&quot;976&quot; data-ke-size=&quot;size18&quot;&gt;3. instanceof 연산자 (안전한 다운캐스팅용)&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1066&quot; data-start=&quot;1017&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1043&quot; data-start=&quot;1017&quot;&gt;객체가 특정 클래스의 인스턴스인지 확인 가능&lt;/li&gt;
&lt;li data-end=&quot;1066&quot; data-start=&quot;1044&quot;&gt;다운캐스팅 전에 사용하면 안전&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;div&gt;if&amp;nbsp;(a&amp;nbsp;instanceof&amp;nbsp;Dog)&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Dog&amp;nbsp;d&amp;nbsp;=&amp;nbsp;(Dog)&amp;nbsp;a; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;d.bark(); &lt;br /&gt;}&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250808_205659778_05.jpg&quot; data-origin-width=&quot;5712&quot; data-origin-height=&quot;4284&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/SNlDq/btsPK4sDmsg/BrkWKFGXEXYMrAoRiIDB80/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/SNlDq/btsPK4sDmsg/BrkWKFGXEXYMrAoRiIDB80/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/SNlDq/btsPK4sDmsg/BrkWKFGXEXYMrAoRiIDB80/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FSNlDq%2FbtsPK4sDmsg%2FBrkWKFGXEXYMrAoRiIDB80%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;5712&quot; height=&quot;4284&quot; data-filename=&quot;KakaoTalk_20250808_205659778_05.jpg&quot; data-origin-width=&quot;5712&quot; data-origin-height=&quot;4284&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250808_205659778_06.jpg&quot; data-origin-width=&quot;5712&quot; data-origin-height=&quot;4284&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/y3ZZF/btsPMLMga2d/cwjDbJo6oheWuOqWvOqfJ1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/y3ZZF/btsPMLMga2d/cwjDbJo6oheWuOqWvOqfJ1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/y3ZZF/btsPMLMga2d/cwjDbJo6oheWuOqWvOqfJ1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fy3ZZF%2FbtsPMLMga2d%2FcwjDbJo6oheWuOqWvOqfJ1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;5712&quot; height=&quot;4284&quot; data-filename=&quot;KakaoTalk_20250808_205659778_06.jpg&quot; data-origin-width=&quot;5712&quot; data-origin-height=&quot;4284&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250808_205659778_07.jpg&quot; data-origin-width=&quot;5513&quot; data-origin-height=&quot;4114&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/PPWKc/btsPLLF163e/nsNVqnMIIqkz5H8gWB5v6K/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/PPWKc/btsPLLF163e/nsNVqnMIIqkz5H8gWB5v6K/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/PPWKc/btsPLLF163e/nsNVqnMIIqkz5H8gWB5v6K/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPPWKc%2FbtsPLLF163e%2FnsNVqnMIIqkz5H8gWB5v6K%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;5513&quot; height=&quot;4114&quot; data-filename=&quot;KakaoTalk_20250808_205659778_07.jpg&quot; data-origin-width=&quot;5513&quot; data-origin-height=&quot;4114&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot; data-start=&quot;70&quot; data-end=&quot;102&quot;&gt;09-1 중첩 클래스와 중첩 인터페이스 소개&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;205&quot; data-start=&quot;184&quot; data-ke-size=&quot;size18&quot;&gt;1. 중첩 클래스란?&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;287&quot; data-start=&quot;206&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;232&quot; data-start=&quot;206&quot;&gt;클래스 내부에 선언된 또 다른 클래스&lt;/li&gt;
&lt;li data-end=&quot;257&quot; data-start=&quot;233&quot;&gt;관련된 클래스를 하나로 묶어 구조화 가능&lt;/li&gt;
&lt;li data-end=&quot;287&quot; data-start=&quot;258&quot;&gt;외부 클래스와 긴밀한 관계가 있을 때 사용&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;317&quot; data-start=&quot;294&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;317&quot; data-start=&quot;294&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;317&quot; data-start=&quot;294&quot; data-ke-size=&quot;size18&quot;&gt;2. 중첩 클래스의 종류&lt;/p&gt;
&lt;p data-end=&quot;317&quot; data-start=&quot;294&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-end=&quot;604&quot; data-start=&quot;319&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody data-end=&quot;604&quot; data-start=&quot;375&quot;&gt;
&lt;tr data-end=&quot;441&quot; data-start=&quot;375&quot;&gt;
&lt;td data-col-size=&quot;sm&quot; data-end=&quot;400&quot; data-start=&quot;375&quot;&gt;정적 중첩 클래스 (static)&lt;/td&gt;
&lt;td data-end=&quot;441&quot; data-start=&quot;400&quot; data-col-size=&quot;sm&quot;&gt;static 키워드 사용, 외부 클래스 인스턴스 없이 사용 가능&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;500&quot; data-start=&quot;442&quot;&gt;
&lt;td data-col-size=&quot;sm&quot; data-end=&quot;473&quot; data-start=&quot;442&quot;&gt;인스턴스 중첩 클래스 (non-static)&lt;/td&gt;
&lt;td data-end=&quot;500&quot; data-start=&quot;473&quot; data-col-size=&quot;sm&quot;&gt;외부 클래스의 인스턴스가 있어야 사용 가능&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;547&quot; data-start=&quot;501&quot;&gt;
&lt;td data-col-size=&quot;sm&quot; data-end=&quot;528&quot; data-start=&quot;501&quot;&gt;지역 클래스 (local class)&lt;/td&gt;
&lt;td data-end=&quot;547&quot; data-start=&quot;528&quot; data-col-size=&quot;sm&quot;&gt;메서드 내에서 선언된 클래스&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;604&quot; data-start=&quot;548&quot;&gt;
&lt;td data-col-size=&quot;sm&quot; data-end=&quot;579&quot; data-start=&quot;548&quot;&gt;익명 클래스 (anonymous class)&lt;/td&gt;
&lt;td data-end=&quot;604&quot; data-start=&quot;579&quot; data-col-size=&quot;sm&quot;&gt;이름이 없는 클래스, 주로 일회성 구현&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-end=&quot;633&quot; data-start=&quot;611&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;633&quot; data-start=&quot;611&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;633&quot; data-start=&quot;611&quot; data-ke-size=&quot;size18&quot;&gt;3. 정적 중첩 클래스&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;class&amp;nbsp;Outer&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;static&amp;nbsp;class&amp;nbsp;Nested&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void&amp;nbsp;print()&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.out.println(&quot;정적&amp;nbsp;중첩&amp;nbsp;클래스&quot;); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;} &lt;br /&gt;&lt;br /&gt;//&amp;nbsp;사용&amp;nbsp;예 &lt;br /&gt;Outer.Nested&amp;nbsp;nested&amp;nbsp;=&amp;nbsp;new&amp;nbsp;Outer.Nested(); &lt;br /&gt;nested.print();&lt;/div&gt;
&lt;/div&gt;
&lt;p data-end=&quot;869&quot; data-start=&quot;845&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;869&quot; data-start=&quot;845&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;869&quot; data-start=&quot;845&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;869&quot; data-start=&quot;845&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;869&quot; data-start=&quot;845&quot; data-ke-size=&quot;size18&quot;&gt;4. 인스턴스 중첩 클래스&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;class&amp;nbsp;Outer&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;class&amp;nbsp;Inner&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void&amp;nbsp;print()&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.out.println(&quot;인스턴스&amp;nbsp;중첩&amp;nbsp;클래스&quot;); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;} &lt;br /&gt;&lt;br /&gt;//&amp;nbsp;사용&amp;nbsp;예 &lt;br /&gt;Outer&amp;nbsp;outer&amp;nbsp;=&amp;nbsp;new&amp;nbsp;Outer(); &lt;br /&gt;Outer.Inner&amp;nbsp;inner&amp;nbsp;=&amp;nbsp;outer.new&amp;nbsp;Inner(); &lt;br /&gt;inner.print();&lt;/div&gt;
&lt;/div&gt;
&lt;p data-end=&quot;1117&quot; data-start=&quot;1098&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;1117&quot; data-start=&quot;1098&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;1117&quot; data-start=&quot;1098&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;1117&quot; data-start=&quot;1098&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;1117&quot; data-start=&quot;1098&quot; data-ke-size=&quot;size18&quot;&gt;5. 지역 클래스&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1155&quot; data-start=&quot;1118&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1136&quot; data-start=&quot;1118&quot;&gt;메서드 내부에 선언되는 클래스&lt;/li&gt;
&lt;li data-end=&quot;1155&quot; data-start=&quot;1137&quot;&gt;메서드 실행 시에만 사용 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;div&gt;void&amp;nbsp;method()&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;class&amp;nbsp;Local&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void&amp;nbsp;msg()&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.out.println(&quot;지역&amp;nbsp;클래스&quot;); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Local&amp;nbsp;local&amp;nbsp;=&amp;nbsp;new&amp;nbsp;Local(); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;local.msg(); &lt;br /&gt;}&lt;/div&gt;
&lt;/div&gt;
&lt;p data-end=&quot;1357&quot; data-start=&quot;1338&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;1357&quot; data-start=&quot;1338&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;1357&quot; data-start=&quot;1338&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;1357&quot; data-start=&quot;1338&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;1357&quot; data-start=&quot;1338&quot; data-ke-size=&quot;size18&quot;&gt;6. 익명 클래스&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1409&quot; data-start=&quot;1358&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1373&quot; data-start=&quot;1358&quot;&gt;이름 없는 일회용 클래스&lt;/li&gt;
&lt;li data-end=&quot;1409&quot; data-start=&quot;1374&quot;&gt;주로 인터페이스 또는 추상 클래스의 즉석 구현에 사용&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p data-end=&quot;1592&quot; data-start=&quot;1571&quot; data-ke-size=&quot;size16&quot;&gt;Runnable&amp;nbsp;r&amp;nbsp;=&amp;nbsp;new&amp;nbsp;Runnable()&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@Override &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;void&amp;nbsp;run()&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.out.println(&quot;익명&amp;nbsp;클래스&amp;nbsp;실행&quot;); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;}; &lt;br /&gt;&lt;br /&gt;new&amp;nbsp;Thread(r).start();&lt;/p&gt;
&lt;p data-end=&quot;1592&quot; data-start=&quot;1571&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;1592&quot; data-start=&quot;1571&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;1592&quot; data-start=&quot;1571&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;1592&quot; data-start=&quot;1571&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;7. 중첩 인터페이스&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1652&quot; data-start=&quot;1593&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1621&quot; data-start=&quot;1593&quot;&gt;클래스 또는 인터페이스 내부에 선언된 인터페이스&lt;/li&gt;
&lt;li data-end=&quot;1652&quot; data-start=&quot;1622&quot;&gt;일반적으로 외부 클래스에서만 구현하도록 설계&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;class&amp;nbsp;Button&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;interface&amp;nbsp;OnClickListener&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void&amp;nbsp;onClick(); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;}&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250808_205659778_08.jpg&quot; data-origin-width=&quot;5559&quot; data-origin-height=&quot;3998&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/blab9U/btsPOnRcPLL/2OTIwYOr7DoWPg0wE0EFgK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/blab9U/btsPOnRcPLL/2OTIwYOr7DoWPg0wE0EFgK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/blab9U/btsPOnRcPLL/2OTIwYOr7DoWPg0wE0EFgK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fblab9U%2FbtsPOnRcPLL%2F2OTIwYOr7DoWPg0wE0EFgK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;5559&quot; height=&quot;3998&quot; data-filename=&quot;KakaoTalk_20250808_205659778_08.jpg&quot; data-origin-width=&quot;5559&quot; data-origin-height=&quot;3998&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250808_205659778_09.jpg&quot; data-origin-width=&quot;5707&quot; data-origin-height=&quot;3998&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/6Hzn3/btsPLK1mqMn/xI9k8NQOKU52WYLgKLifDK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/6Hzn3/btsPLK1mqMn/xI9k8NQOKU52WYLgKLifDK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/6Hzn3/btsPLK1mqMn/xI9k8NQOKU52WYLgKLifDK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F6Hzn3%2FbtsPLK1mqMn%2FxI9k8NQOKU52WYLgKLifDK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;5707&quot; height=&quot;3998&quot; data-filename=&quot;KakaoTalk_20250808_205659778_09.jpg&quot; data-origin-width=&quot;5707&quot; data-origin-height=&quot;3998&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250808_205659778_10.jpg&quot; data-origin-width=&quot;5712&quot; data-origin-height=&quot;4008&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bYmlJD/btsPNeN04md/yW7APCBLPKr4XO83fLFxX1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bYmlJD/btsPNeN04md/yW7APCBLPKr4XO83fLFxX1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bYmlJD/btsPNeN04md/yW7APCBLPKr4XO83fLFxX1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbYmlJD%2FbtsPNeN04md%2FyW7APCBLPKr4XO83fLFxX1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;5712&quot; height=&quot;4008&quot; data-filename=&quot;KakaoTalk_20250808_205659778_10.jpg&quot; data-origin-width=&quot;5712&quot; data-origin-height=&quot;4008&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-end=&quot;102&quot; data-start=&quot;70&quot; data-ke-size=&quot;size23&quot;&gt;09-2 익명 객체&lt;/h3&gt;
&lt;p data-end=&quot;117&quot; data-start=&quot;104&quot; data-ke-size=&quot;size18&quot;&gt;1. 익명 객체란?&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;211&quot; data-start=&quot;118&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;145&quot; data-start=&quot;118&quot;&gt;클래스 이름 없이 객체를 생성하는 방식&lt;/li&gt;
&lt;li data-end=&quot;181&quot; data-start=&quot;146&quot;&gt;주로 일회성으로 사용할 클래스의 객체를 간단히 만들 때 사용&lt;/li&gt;
&lt;li data-end=&quot;211&quot; data-start=&quot;182&quot;&gt;이름이 없는 클래스를 선언하고 동시에 객체를 생성&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;235&quot; data-start=&quot;218&quot; data-ke-size=&quot;size18&quot;&gt;2. 익명 객체 생성 방식&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;312&quot; data-start=&quot;258&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;306&quot; data-start=&quot;258&quot;&gt;부모 클래스를 상속받거나, 인터페이스를 구현한 객체를 생성할 때 사용&lt;/li&gt;
&lt;li data-end=&quot;312&quot; data-start=&quot;307&quot;&gt;형식:&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;부모클래스&amp;nbsp;변수&amp;nbsp;=&amp;nbsp;new&amp;nbsp;부모클래스()&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;메소드&amp;nbsp;오버라이딩&amp;nbsp;등&amp;nbsp;내용&amp;nbsp;작성 &lt;br /&gt;}; &lt;br /&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;Parent&amp;nbsp;field&amp;nbsp;=&amp;nbsp;new&amp;nbsp;Parent()&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void&amp;nbsp;work()&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.out.println(&quot;출근합니다.&quot;); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@Override &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void&amp;nbsp;wake()&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.out.println(&quot;6시에&amp;nbsp;일어납니다.&quot;); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;};&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&amp;rarr; 이 경우, Parent 클래스를 상속받은 익명 객체를 생성함&amp;rarr; 필드나 지역 변수에 저장해서 사용 가능&lt;/div&gt;
&lt;/div&gt;
&lt;p data-end=&quot;644&quot; data-start=&quot;579&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;669&quot; data-start=&quot;651&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;669&quot; data-start=&quot;651&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;669&quot; data-start=&quot;651&quot; data-ke-size=&quot;size18&quot;&gt;3. 사용 위치에 따른 예시&lt;/p&gt;
&lt;p data-end=&quot;669&quot; data-start=&quot;651&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;689&quot; data-start=&quot;671&quot; data-ke-size=&quot;size18&quot;&gt;필드에 익명 객체 저장:&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;Person&amp;nbsp;field&amp;nbsp;=&amp;nbsp;new&amp;nbsp;Person()&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void&amp;nbsp;work()&amp;nbsp;{&amp;nbsp;...&amp;nbsp;} &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@Override &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void&amp;nbsp;wake()&amp;nbsp;{&amp;nbsp;...&amp;nbsp;} &lt;br /&gt;};&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p data-end=&quot;819&quot; data-start=&quot;798&quot; data-ke-size=&quot;size18&quot;&gt;메소드 내 지역 변수에 저장:&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;Person&amp;nbsp;localVar&amp;nbsp;=&amp;nbsp;new&amp;nbsp;Person()&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void&amp;nbsp;walk()&amp;nbsp;{&amp;nbsp;...&amp;nbsp;} &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@Override &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void&amp;nbsp;wake()&amp;nbsp;{&amp;nbsp;...&amp;nbsp;} &lt;br /&gt;};&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p data-end=&quot;949&quot; data-start=&quot;931&quot; data-ke-size=&quot;size18&quot;&gt;메소드 매개값으로 전달:&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;method2(new&amp;nbsp;Person()&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void&amp;nbsp;study()&amp;nbsp;{&amp;nbsp;...&amp;nbsp;} &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@Override &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void&amp;nbsp;wake()&amp;nbsp;{&amp;nbsp;...&amp;nbsp;} &lt;br /&gt;});&lt;/div&gt;
&lt;/div&gt;
&lt;p data-end=&quot;1072&quot; data-start=&quot;1058&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;1072&quot; data-start=&quot;1058&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;1072&quot; data-start=&quot;1058&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;1072&quot; data-start=&quot;1058&quot; data-ke-size=&quot;size18&quot;&gt;4. 익명 구현 객체&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1110&quot; data-start=&quot;1073&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1104&quot; data-start=&quot;1073&quot;&gt;인터페이스를 구현할 때도 익명 객체 생성 가능&lt;/li&gt;
&lt;li data-end=&quot;1110&quot; data-start=&quot;1105&quot;&gt;형식:&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;div&gt;인터페이스&amp;nbsp;변수&amp;nbsp;=&amp;nbsp;new&amp;nbsp;인터페이스명()&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;메소드&amp;nbsp;구현 &lt;br /&gt;};&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;RemoteControl&amp;nbsp;field&amp;nbsp;=&amp;nbsp;new&amp;nbsp;RemoteControl()&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@Override &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;void&amp;nbsp;turnOn()&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.out.println(&quot;TV를&amp;nbsp;켭니다.&quot;); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@Override &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;void&amp;nbsp;turnOff()&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.out.println(&quot;TV를&amp;nbsp;끕니다.&quot;); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;};&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250808_205659778_11.jpg&quot; data-origin-width=&quot;5712&quot; data-origin-height=&quot;4284&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/t6IJK/btsPNhcUof0/M2NK4PDDhPOJu6m3Kku221/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/t6IJK/btsPNhcUof0/M2NK4PDDhPOJu6m3Kku221/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/t6IJK/btsPNhcUof0/M2NK4PDDhPOJu6m3Kku221/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Ft6IJK%2FbtsPNhcUof0%2FM2NK4PDDhPOJu6m3Kku221%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;5712&quot; height=&quot;4284&quot; data-filename=&quot;KakaoTalk_20250808_205659778_11.jpg&quot; data-origin-width=&quot;5712&quot; data-origin-height=&quot;4284&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250808_205659778_12.jpg&quot; data-origin-width=&quot;5712&quot; data-origin-height=&quot;4284&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bVlOe1/btsPLCbpXev/1FJ7zNAAbEyZJBLv5aqwGK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bVlOe1/btsPLCbpXev/1FJ7zNAAbEyZJBLv5aqwGK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bVlOe1/btsPLCbpXev/1FJ7zNAAbEyZJBLv5aqwGK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbVlOe1%2FbtsPLCbpXev%2F1FJ7zNAAbEyZJBLv5aqwGK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;5712&quot; height=&quot;4284&quot; data-filename=&quot;KakaoTalk_20250808_205659778_12.jpg&quot; data-origin-width=&quot;5712&quot; data-origin-height=&quot;4284&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt; &lt;span style=&quot;background-color: #ffffff; text-align: start;&quot;&gt;기본 숙제(필수)&lt;/span&gt;&amp;nbsp; : &lt;span style=&quot;background-color: #ffffff; text-align: start;&quot;&gt;클래스를 선언할 때 인터페이스는 어떻게 선언될 수 있는지 정리하기&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;235&quot; data-start=&quot;213&quot; data-ke-size=&quot;size16&quot;&gt;1. 인터페이스 선언 기본 형식&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;[접근제어자]&amp;nbsp;interface&amp;nbsp;인터페이스이름&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;상수&amp;nbsp;필드 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;추상&amp;nbsp;메서드 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;default&amp;nbsp;메서드 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;static&amp;nbsp;메서드 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;private&amp;nbsp;메서드&amp;nbsp;(Java&amp;nbsp;9부터) &lt;br /&gt;}&lt;/div&gt;
&lt;/div&gt;
&lt;p data-end=&quot;398&quot; data-start=&quot;379&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;398&quot; data-start=&quot;379&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;398&quot; data-start=&quot;379&quot; data-ke-size=&quot;size16&quot;&gt;2. 인터페이스 구성 요소&lt;/p&gt;
&lt;p data-end=&quot;398&quot; data-start=&quot;379&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;416&quot; data-start=&quot;400&quot; data-ke-size=&quot;size16&quot;&gt;1) 상수 필드&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;472&quot; data-start=&quot;417&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;472&quot; data-start=&quot;417&quot;&gt;인터페이스에서 선언되는 필드는 자동으로 public static final이 됩니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;div&gt;int&amp;nbsp;MAX&amp;nbsp;=&amp;nbsp;100;&amp;nbsp;//&amp;nbsp;자동으로&amp;nbsp;public&amp;nbsp;static&amp;nbsp;final&amp;nbsp;int&amp;nbsp;MAX&amp;nbsp;=&amp;nbsp;100;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p data-end=&quot;562&quot; data-start=&quot;545&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;562&quot; data-start=&quot;545&quot; data-ke-size=&quot;size16&quot;&gt;2) 추상 메서드&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;652&quot; data-start=&quot;563&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;608&quot; data-start=&quot;563&quot;&gt;인터페이스의 메서드는 기본적으로 public abstract입니다.&lt;/li&gt;
&lt;li data-end=&quot;652&quot; data-start=&quot;609&quot;&gt;자바 8부터는 default, static 메서드도 가능해졌습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;div&gt;void&amp;nbsp;doSomething();&amp;nbsp;//&amp;nbsp;자동으로&amp;nbsp;public&amp;nbsp;abstract&amp;nbsp;void&amp;nbsp;doSomething();&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p data-end=&quot;763&quot; data-start=&quot;731&quot; data-ke-size=&quot;size16&quot;&gt;3) default 메서드 (Java 8+)&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;834&quot; data-start=&quot;764&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;789&quot; data-start=&quot;764&quot;&gt;인터페이스에 구현을 포함할 수 있는 방법.&lt;/li&gt;
&lt;li data-end=&quot;834&quot; data-start=&quot;790&quot;&gt;반드시 default 키워드를 사용해야 하며, 오버라이드할 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;div&gt;default&amp;nbsp;void&amp;nbsp;print()&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.out.println(&quot;기본&amp;nbsp;출력&quot;); &lt;br /&gt;}&lt;/div&gt;
&lt;/div&gt;
&lt;p data-end=&quot;938&quot; data-start=&quot;907&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;938&quot; data-start=&quot;907&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;938&quot; data-start=&quot;907&quot; data-ke-size=&quot;size16&quot;&gt;4) static 메서드 (Java 8+)&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;962&quot; data-start=&quot;939&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;962&quot; data-start=&quot;939&quot;&gt;클래스처럼 인터페이스명으로 접근합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;static&lt;/span&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&lt;span&gt;void&lt;/span&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&lt;span&gt;staticMethod&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;()&lt;/span&gt;&lt;/span&gt;&lt;span&gt; { &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; System.out.println(&lt;/span&gt;&lt;span&gt;&lt;span&gt;&quot;인터페이스 static 메서드&quot;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;); &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p data-end=&quot;1084&quot; data-start=&quot;1052&quot; data-ke-size=&quot;size16&quot;&gt;5) private 메서드 (Java 9+)&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1150&quot; data-start=&quot;1085&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1150&quot; data-start=&quot;1085&quot;&gt;인터페이스 내부의 default나 static 메서드에서 코드 중복을 줄이기 위한 내부 유틸리티용 메서드.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;div&gt;static&amp;nbsp;void&amp;nbsp;staticMethod()&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.out.println(&quot;인터페이스&amp;nbsp;static&amp;nbsp;메서드&quot;); &lt;br /&gt;}&lt;/div&gt;
&lt;/div&gt;
&lt;p data-end=&quot;1246&quot; data-start=&quot;1230&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;1246&quot; data-start=&quot;1230&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;1246&quot; data-start=&quot;1230&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;1246&quot; data-start=&quot;1230&quot; data-ke-size=&quot;size16&quot;&gt;3. 인터페이스 구현&lt;/p&gt;
&lt;p data-end=&quot;1275&quot; data-start=&quot;1248&quot; data-ke-size=&quot;size16&quot;&gt;클래스에서 구현 (implements)&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;interface&amp;nbsp;Animal&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void&amp;nbsp;sound(); &lt;br /&gt;} &lt;br /&gt;&lt;br /&gt;class&amp;nbsp;Dog&amp;nbsp;implements&amp;nbsp;Animal&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;void&amp;nbsp;sound()&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.out.println(&quot;멍멍&quot;); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;}&lt;/div&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1493&quot; data-start=&quot;1428&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1493&quot; data-start=&quot;1428&quot;&gt;여러 인터페이스 구현 가능: 자바는 다중 상속을 지원하지 않지만, 인터페이스는 여러 개 구현 가능.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;div&gt;interface&amp;nbsp;A&amp;nbsp;{&amp;nbsp;void&amp;nbsp;a();&amp;nbsp;} &lt;br /&gt;interface&amp;nbsp;B&amp;nbsp;{&amp;nbsp;void&amp;nbsp;b();&amp;nbsp;} &lt;br /&gt;&lt;br /&gt;class&amp;nbsp;C&amp;nbsp;implements&amp;nbsp;A,&amp;nbsp;B&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;void&amp;nbsp;a()&amp;nbsp;{&amp;nbsp;System.out.println(&quot;A&quot;);&amp;nbsp;} &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;void&amp;nbsp;b()&amp;nbsp;{&amp;nbsp;System.out.println(&quot;B&quot;);&amp;nbsp;} &lt;br /&gt;}&lt;/div&gt;
&lt;/div&gt;
&lt;p data-end=&quot;1708&quot; data-start=&quot;1692&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;1708&quot; data-start=&quot;1692&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;1708&quot; data-start=&quot;1692&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;1708&quot; data-start=&quot;1692&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;1708&quot; data-start=&quot;1692&quot; data-ke-size=&quot;size16&quot;&gt;4. 인터페이스 상속&lt;/p&gt;
&lt;p data-end=&quot;1778&quot; data-start=&quot;1710&quot; data-ke-size=&quot;size16&quot;&gt;인터페이스도 다른 인터페이스를 상속할 수 있습니다. 이때는 extends 키워드를 사용하고, 다중 상속도 가능.&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;interface&amp;nbsp;A&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void&amp;nbsp;a(); &lt;br /&gt;} &lt;br /&gt;&lt;br /&gt;interface&amp;nbsp;B&amp;nbsp;extends&amp;nbsp;A&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void&amp;nbsp;b(); &lt;br /&gt;}&lt;/div&gt;
&lt;/div&gt;
&lt;p data-end=&quot;1894&quot; data-start=&quot;1869&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;1894&quot; data-start=&quot;1869&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;1894&quot; data-start=&quot;1869&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;1894&quot; data-start=&quot;1869&quot; data-ke-size=&quot;size16&quot;&gt;5. 익명 클래스에서 인터페이스 구현&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Runnable&amp;nbsp;task&amp;nbsp;=&amp;nbsp;new&amp;nbsp;Runnable()&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;void&amp;nbsp;run()&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.out.println(&quot;작업&amp;nbsp;실행&quot;); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;};&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;또는 자바 8 이상에서는 람다식도 사용 가능 (단, 추상 메서드가 하나인 경우 &amp;mdash; 함수형 인터페이스)&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Runnable&amp;nbsp;task&amp;nbsp;=&amp;nbsp;()&amp;nbsp;-&amp;gt;&amp;nbsp;System.out.println(&quot;작업&amp;nbsp;실행&quot;);&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;추가 숙제(선택) : &lt;span style=&quot;background-color: #ffffff; text-align: start;&quot;&gt;p.443 (09-1) 확인 문제 3번 풀어보기&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250808_210354612.jpg&quot; data-origin-width=&quot;2562&quot; data-origin-height=&quot;2497&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dR9cTW/btsPLgzAn0n/UWwPETzqMYqHQ679tVLWqk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dR9cTW/btsPLgzAn0n/UWwPETzqMYqHQ679tVLWqk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dR9cTW/btsPLgzAn0n/UWwPETzqMYqHQ679tVLWqk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdR9cTW%2FbtsPLgzAn0n%2FUWwPETzqMYqHQ679tVLWqk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2562&quot; height=&quot;2497&quot; data-filename=&quot;KakaoTalk_20250808_210354612.jpg&quot; data-origin-width=&quot;2562&quot; data-origin-height=&quot;2497&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>혼공</category>
      <author>sm1118sm</author>
      <guid isPermaLink="true">https://sm021118.tistory.com/50</guid>
      <comments>https://sm021118.tistory.com/50#entry50comment</comments>
      <pubDate>Fri, 8 Aug 2025 21:00:24 +0900</pubDate>
    </item>
    <item>
      <title>[혼공자바 4주차] Chapter 07</title>
      <link>https://sm021118.tistory.com/49</link>
      <description>&lt;h3 data-end=&quot;102&quot; data-start=&quot;70&quot; data-ke-size=&quot;size23&quot;&gt;07-1 상속&lt;/h3&gt;
&lt;p data-end=&quot;102&quot; data-start=&quot;70&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;117&quot; data-start=&quot;104&quot; data-ke-size=&quot;size18&quot;&gt;1. 상속의 개념&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;188&quot; data-start=&quot;118&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;160&quot; data-start=&quot;118&quot;&gt;부모 클래스의 필드와 메서드를 자식 클래스가 물려받는 것.&lt;/li&gt;
&lt;li data-end=&quot;188&quot; data-start=&quot;161&quot;&gt;코드 재사용을 높이고 유지 보수를 쉽게 만듦.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;202&quot; data-start=&quot;190&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;202&quot; data-start=&quot;190&quot; data-ke-size=&quot;size18&quot;&gt;2. 상속 문법&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;class&amp;nbsp;자식클래스&amp;nbsp;extends&amp;nbsp;부모클래스&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;자식&amp;nbsp;클래스&amp;nbsp;내용 &lt;br /&gt;}&lt;/div&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;289&quot; data-start=&quot;262&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;289&quot; data-start=&quot;262&quot;&gt;한 클래스만 상속 가능 (자바는 단일 상속).&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;317&quot; data-start=&quot;291&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;317&quot; data-start=&quot;291&quot; data-ke-size=&quot;size18&quot;&gt;3. 부모 생성자 호출 (super)&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;435&quot; data-start=&quot;318&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;349&quot; data-start=&quot;318&quot;&gt;자식 객체 생성 시 먼저 부모 객체가 생성됨.&lt;/li&gt;
&lt;li data-end=&quot;385&quot; data-start=&quot;350&quot;&gt;부모 생성자를 명시적으로 호출하려면 super() 사용.&lt;/li&gt;
&lt;li data-end=&quot;435&quot; data-start=&quot;386&quot;&gt;부모에 매개변수 있는 생성자가 있으면 반드시 super(매개변수)로 호출해야 함.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;459&quot; data-start=&quot;437&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;459&quot; data-start=&quot;437&quot; data-ke-size=&quot;size18&quot;&gt;4. 메서드 오버라이딩 (재정의)&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;573&quot; data-start=&quot;460&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;497&quot; data-start=&quot;460&quot;&gt;자식 클래스가 부모 클래스의 메서드를 다시 정의하는 것.&lt;/li&gt;
&lt;li data-end=&quot;573&quot; data-start=&quot;498&quot;&gt;조건:
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;573&quot; data-start=&quot;506&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;523&quot; data-start=&quot;506&quot;&gt;메서드 이름, 매개변수 동일&lt;/li&gt;
&lt;li data-end=&quot;545&quot; data-start=&quot;526&quot;&gt;접근 제한자는 더 좁게 못 바꿈&lt;/li&gt;
&lt;li data-end=&quot;573&quot; data-start=&quot;548&quot;&gt;@Override 애너테이션 권장 사용&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;593&quot; data-start=&quot;575&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;593&quot; data-start=&quot;575&quot; data-ke-size=&quot;size18&quot;&gt;5. final 키워드&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;643&quot; data-start=&quot;594&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;616&quot; data-start=&quot;594&quot;&gt;final class: 상속 불가&lt;/li&gt;
&lt;li data-end=&quot;643&quot; data-start=&quot;617&quot;&gt;final method: 오버라이딩 불가&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250727_153501504.jpg&quot; data-origin-width=&quot;4875&quot; data-origin-height=&quot;3768&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/0ZOdY/btsPB8tpuUy/5VpHAqKS0SHf8Yyi2iWZ41/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/0ZOdY/btsPB8tpuUy/5VpHAqKS0SHf8Yyi2iWZ41/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/0ZOdY/btsPB8tpuUy/5VpHAqKS0SHf8Yyi2iWZ41/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0ZOdY%2FbtsPB8tpuUy%2F5VpHAqKS0SHf8Yyi2iWZ41%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;4875&quot; height=&quot;3768&quot; data-filename=&quot;KakaoTalk_20250727_153501504.jpg&quot; data-origin-width=&quot;4875&quot; data-origin-height=&quot;3768&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250727_153501504_01.jpg&quot; data-origin-width=&quot;5186&quot; data-origin-height=&quot;3865&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dSbvth/btsPB7OLFdh/gLjkqDVS3gmkljBkFhXOo1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dSbvth/btsPB7OLFdh/gLjkqDVS3gmkljBkFhXOo1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dSbvth/btsPB7OLFdh/gLjkqDVS3gmkljBkFhXOo1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdSbvth%2FbtsPB7OLFdh%2FgLjkqDVS3gmkljBkFhXOo1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;5186&quot; height=&quot;3865&quot; data-filename=&quot;KakaoTalk_20250727_153501504_01.jpg&quot; data-origin-width=&quot;5186&quot; data-origin-height=&quot;3865&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250727_153501504_02.jpg&quot; data-origin-width=&quot;5283&quot; data-origin-height=&quot;4039&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b0Fuw5/btsPB2UjrSx/JqvZD1MLx4310frjUwR7qK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b0Fuw5/btsPB2UjrSx/JqvZD1MLx4310frjUwR7qK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b0Fuw5/btsPB2UjrSx/JqvZD1MLx4310frjUwR7qK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb0Fuw5%2FbtsPB2UjrSx%2FJqvZD1MLx4310frjUwR7qK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;5283&quot; height=&quot;4039&quot; data-filename=&quot;KakaoTalk_20250727_153501504_02.jpg&quot; data-origin-width=&quot;5283&quot; data-origin-height=&quot;4039&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250727_153501504_03.jpg&quot; data-origin-width=&quot;5009&quot; data-origin-height=&quot;4118&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Fce5l/btsPCle1Om9/ykF0JHewB6Nvhrv3Krxh1k/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Fce5l/btsPCle1Om9/ykF0JHewB6Nvhrv3Krxh1k/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Fce5l/btsPCle1Om9/ykF0JHewB6Nvhrv3Krxh1k/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFce5l%2FbtsPCle1Om9%2FykF0JHewB6Nvhrv3Krxh1k%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;5009&quot; height=&quot;4118&quot; data-filename=&quot;KakaoTalk_20250727_153501504_03.jpg&quot; data-origin-width=&quot;5009&quot; data-origin-height=&quot;4118&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250727_153501504_04.jpg&quot; data-origin-width=&quot;5156&quot; data-origin-height=&quot;3922&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bDxSqM/btsPCjnWSDM/c0ypqngJThyu41klrYrv3K/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bDxSqM/btsPCjnWSDM/c0ypqngJThyu41klrYrv3K/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bDxSqM/btsPCjnWSDM/c0ypqngJThyu41klrYrv3K/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbDxSqM%2FbtsPCjnWSDM%2Fc0ypqngJThyu41klrYrv3K%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;5156&quot; height=&quot;3922&quot; data-filename=&quot;KakaoTalk_20250727_153501504_04.jpg&quot; data-origin-width=&quot;5156&quot; data-origin-height=&quot;3922&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250727_153501504_05.jpg&quot; data-origin-width=&quot;5085&quot; data-origin-height=&quot;4038&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/YmlzA/btsPz0qmkpo/DjgZEEQ7rvQmODRIW8Ltp0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/YmlzA/btsPz0qmkpo/DjgZEEQ7rvQmODRIW8Ltp0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/YmlzA/btsPz0qmkpo/DjgZEEQ7rvQmODRIW8Ltp0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FYmlzA%2FbtsPz0qmkpo%2FDjgZEEQ7rvQmODRIW8Ltp0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;5085&quot; height=&quot;4038&quot; data-filename=&quot;KakaoTalk_20250727_153501504_05.jpg&quot; data-origin-width=&quot;5085&quot; data-origin-height=&quot;4038&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250727_153501504_06.jpg&quot; data-origin-width=&quot;5033&quot; data-origin-height=&quot;3778&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/s58aS/btsPCobG78W/rAZOghkfXOq3s7jpqurzVK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/s58aS/btsPCobG78W/rAZOghkfXOq3s7jpqurzVK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/s58aS/btsPCobG78W/rAZOghkfXOq3s7jpqurzVK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fs58aS%2FbtsPCobG78W%2FrAZOghkfXOq3s7jpqurzVK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;5033&quot; height=&quot;3778&quot; data-filename=&quot;KakaoTalk_20250727_153501504_06.jpg&quot; data-origin-width=&quot;5033&quot; data-origin-height=&quot;3778&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-end=&quot;1198&quot; data-start=&quot;1172&quot; data-ke-size=&quot;size23&quot;&gt;07-2 타입 변환과 다형성&lt;/h3&gt;
&lt;p data-end=&quot;1198&quot; data-start=&quot;1172&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;1198&quot; data-start=&quot;1172&quot; data-ke-size=&quot;size18&quot;&gt;1. 타입 변환(Type Conversion)&lt;/p&gt;
&lt;p data-end=&quot;1198&quot; data-start=&quot;1172&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1198&quot; data-start=&quot;1172&quot;&gt;자동 타입 변환 (자동 형변환, Upcasting)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1198&quot; data-start=&quot;1172&quot;&gt;Animal animal = new Cat(); 가능&lt;/li&gt;
&lt;li data-start=&quot;225&quot; data-end=&quot;258&quot;&gt;자식 객체를 부모 타입으로 저장 가능&lt;/li&gt;
&lt;li data-start=&quot;259&quot; data-end=&quot;276&quot;&gt;상속 관계에서만 가능&lt;/li&gt;
&lt;li data-start=&quot;277&quot; data-end=&quot;326&quot;&gt;변수는 부모 타입이지만, 메서드는 자식 클래스에서 재정의된 것을 실행 (동적 바인딩)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-end=&quot;1198&quot; data-start=&quot;1172&quot;&gt;강제 타입 변환 (다운캐스팅, Downcasting) &amp;nbsp;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-start=&quot;370&quot; data-end=&quot;411&quot;&gt;부모 타입으로 저장된 객체를 다시 자식 타입으로 변환할 때 사용&lt;/li&gt;
&lt;li data-start=&quot;412&quot; data-end=&quot;442&quot;&gt;문법: 자식타입 변수 = (자식타입) 부모객체;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Parent&amp;nbsp;parent&amp;nbsp;=&amp;nbsp;new&amp;nbsp;Child(); &lt;br /&gt;Child&amp;nbsp;child&amp;nbsp;=&amp;nbsp;(Child)&amp;nbsp;parent;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;2. 다형성 (Polymorphism)&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;646&quot; data-start=&quot;579&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;623&quot; data-start=&quot;579&quot;&gt;같은 타입(부모 클래스)으로 다양한 자식 객체를 참조할 수 있는 성질&lt;/li&gt;
&lt;li data-end=&quot;646&quot; data-start=&quot;624&quot;&gt;실행 결과는 자식 클래스에 따라 다름&lt;/li&gt;
&lt;li data-end=&quot;817&quot; data-start=&quot;782&quot;&gt;필드는 부모 기준으로 접근 &amp;rarr; 자식 필드는 사용 불가&lt;/li&gt;
&lt;li data-end=&quot;857&quot; data-start=&quot;818&quot;&gt;메서드는 오버라이딩된 자식 메서드가 호출됨 (다형성의 핵심)&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Parent&amp;nbsp;parent&amp;nbsp;=&amp;nbsp;new&amp;nbsp;Child();&amp;nbsp;//&amp;nbsp;자동&amp;nbsp;타입&amp;nbsp;변환 &lt;br /&gt;parent.method();&amp;nbsp;//&amp;nbsp;Child에&amp;nbsp;오버라이딩된&amp;nbsp;메서드&amp;nbsp;실행됨&lt;/p&gt;
&lt;hr data-end=&quot;862&quot; data-start=&quot;859&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;3. 타입 변환 예시&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1066&quot; data-start=&quot;959&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;982&quot; data-start=&quot;959&quot;&gt;A a = new D(); (가능)&lt;/li&gt;
&lt;li data-end=&quot;1006&quot; data-start=&quot;983&quot;&gt;B b = new D(); (가능)&lt;/li&gt;
&lt;li data-end=&quot;1030&quot; data-start=&quot;1007&quot;&gt;C c = new E(); (가능)&lt;/li&gt;
&lt;li data-end=&quot;1066&quot; data-start=&quot;1031&quot;&gt;B b = new E(); (불가능: 상속 관계 X)&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250727_153501504_07.jpg&quot; data-origin-width=&quot;5094&quot; data-origin-height=&quot;3788&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/7ynyY/btsPAfVlya2/qKATRKpEpOTdSZKKSZCG30/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/7ynyY/btsPAfVlya2/qKATRKpEpOTdSZKKSZCG30/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/7ynyY/btsPAfVlya2/qKATRKpEpOTdSZKKSZCG30/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F7ynyY%2FbtsPAfVlya2%2FqKATRKpEpOTdSZKKSZCG30%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;5094&quot; height=&quot;3788&quot; data-filename=&quot;KakaoTalk_20250727_153501504_07.jpg&quot; data-origin-width=&quot;5094&quot; data-origin-height=&quot;3788&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250727_153501504_08.jpg&quot; data-origin-width=&quot;2093&quot; data-origin-height=&quot;3489&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cdUEn8/btsPCibvEmc/a3gSgGhZ2kwwAvVdo8yWKk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cdUEn8/btsPCibvEmc/a3gSgGhZ2kwwAvVdo8yWKk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cdUEn8/btsPCibvEmc/a3gSgGhZ2kwwAvVdo8yWKk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcdUEn8%2FbtsPCibvEmc%2Fa3gSgGhZ2kwwAvVdo8yWKk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2093&quot; height=&quot;3489&quot; data-filename=&quot;KakaoTalk_20250727_153501504_08.jpg&quot; data-origin-width=&quot;2093&quot; data-origin-height=&quot;3489&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250727_153501504_09.jpg&quot; data-origin-width=&quot;5115&quot; data-origin-height=&quot;4029&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/WknJF/btsPzWO3TX9/7fJxLLZyYCrxFdkX7GIyc0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/WknJF/btsPzWO3TX9/7fJxLLZyYCrxFdkX7GIyc0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/WknJF/btsPzWO3TX9/7fJxLLZyYCrxFdkX7GIyc0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FWknJF%2FbtsPzWO3TX9%2F7fJxLLZyYCrxFdkX7GIyc0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;5115&quot; height=&quot;4029&quot; data-filename=&quot;KakaoTalk_20250727_153501504_09.jpg&quot; data-origin-width=&quot;5115&quot; data-origin-height=&quot;4029&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250727_153501504_10.jpg&quot; data-origin-width=&quot;5110&quot; data-origin-height=&quot;3789&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c040xd/btsPCllLrC9/EzfcneDxLts2FgkQ8GFQ10/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c040xd/btsPCllLrC9/EzfcneDxLts2FgkQ8GFQ10/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c040xd/btsPCllLrC9/EzfcneDxLts2FgkQ8GFQ10/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc040xd%2FbtsPCllLrC9%2FEzfcneDxLts2FgkQ8GFQ10%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;5110&quot; height=&quot;3789&quot; data-filename=&quot;KakaoTalk_20250727_153501504_10.jpg&quot; data-origin-width=&quot;5110&quot; data-origin-height=&quot;3789&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-end=&quot;1111&quot; data-start=&quot;1073&quot; data-ke-size=&quot;size23&quot;&gt;07-3 추상 클래스 (Abstract Class)&lt;/h3&gt;
&lt;p data-end=&quot;1131&quot; data-start=&quot;1113&quot; data-ke-size=&quot;size18&quot;&gt;1. 추상 클래스란?&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1212&quot; data-start=&quot;1132&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1158&quot; data-start=&quot;1132&quot;&gt;실체가 없는 클래스, 객체 생성 불가&lt;/li&gt;
&lt;li data-end=&quot;1192&quot; data-start=&quot;1159&quot;&gt;공통 필드나 메서드를 정의하여 상속 전용으로 사용&lt;/li&gt;
&lt;li data-end=&quot;1212&quot; data-start=&quot;1193&quot;&gt;abstract 키워드 사용&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;public&amp;nbsp;abstract&amp;nbsp;class&amp;nbsp;Animal&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;abstract&amp;nbsp;void&amp;nbsp;sound();&amp;nbsp;//&amp;nbsp;추상&amp;nbsp;메서드 &lt;br /&gt;}&lt;/div&gt;
&lt;/div&gt;
&lt;h3 data-end=&quot;1334&quot; data-start=&quot;1318&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;p data-end=&quot;1334&quot; data-start=&quot;1318&quot; data-ke-size=&quot;size18&quot;&gt;2. 추상 메서드&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1381&quot; data-start=&quot;1335&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1353&quot; data-start=&quot;1335&quot;&gt;구현 없이 선언만 존재&lt;/li&gt;
&lt;li data-end=&quot;1381&quot; data-start=&quot;1354&quot;&gt;자식 클래스에서 반드시 오버라이딩 필요&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;public&amp;nbsp;class&amp;nbsp;Dog&amp;nbsp;extends&amp;nbsp;Animal&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@Override &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;void&amp;nbsp;sound()&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.out.println(&quot;멍멍&quot;); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;}&lt;/div&gt;
&lt;/div&gt;
&lt;h3 data-end=&quot;1540&quot; data-start=&quot;1520&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;p data-end=&quot;1540&quot; data-start=&quot;1520&quot; data-ke-size=&quot;size18&quot;&gt;3. 추상 클래스의 용도&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1629&quot; data-start=&quot;1541&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1561&quot; data-start=&quot;1541&quot;&gt;공통된 기능은 추상 클래스에 작성&lt;/li&gt;
&lt;li data-end=&quot;1582&quot; data-start=&quot;1562&quot;&gt;세부 기능은 자식 클래스에서 구현&lt;/li&gt;
&lt;li data-end=&quot;1629&quot; data-start=&quot;1583&quot;&gt;예: Animal &amp;rarr; Dog, Cat, Phone &amp;rarr; SmartPhone&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-end=&quot;1634&quot; data-start=&quot;1631&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-end=&quot;1658&quot; data-start=&quot;1636&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;1658&quot; data-start=&quot;1636&quot; data-ke-size=&quot;size18&quot;&gt;4. 추상 클래스 활용 예시&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;abstract&amp;nbsp;class&amp;nbsp;Phone&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;String&amp;nbsp;owner; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;Phone(String&amp;nbsp;owner)&amp;nbsp;{&amp;nbsp;this.owner&amp;nbsp;=&amp;nbsp;owner;&amp;nbsp;} &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;abstract&amp;nbsp;void&amp;nbsp;internetSearch(); &lt;br /&gt;} &lt;br /&gt;&lt;br /&gt;class&amp;nbsp;SmartPhone&amp;nbsp;extends&amp;nbsp;Phone&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;SmartPhone(String&amp;nbsp;owner)&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;super(owner); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@Override &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void&amp;nbsp;internetSearch()&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.out.println(&quot;인터넷&amp;nbsp;검색&amp;nbsp;중...&quot;); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;}&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250727_153501504_11.jpg&quot; data-origin-width=&quot;3084&quot; data-origin-height=&quot;4854&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/3wGzM/btsPAlHRwTF/qpXHAPHFbBxO5Ma7HcJNZK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/3wGzM/btsPAlHRwTF/qpXHAPHFbBxO5Ma7HcJNZK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/3wGzM/btsPAlHRwTF/qpXHAPHFbBxO5Ma7HcJNZK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3wGzM%2FbtsPAlHRwTF%2FqpXHAPHFbBxO5Ma7HcJNZK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3084&quot; height=&quot;4854&quot; data-filename=&quot;KakaoTalk_20250727_153501504_11.jpg&quot; data-origin-width=&quot;3084&quot; data-origin-height=&quot;4854&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250727_153501504_12.jpg&quot; data-origin-width=&quot;5102&quot; data-origin-height=&quot;3949&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b9A3ge/btsPB3lodZu/q0kX0694uoWBZTinpn09AK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b9A3ge/btsPB3lodZu/q0kX0694uoWBZTinpn09AK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b9A3ge/btsPB3lodZu/q0kX0694uoWBZTinpn09AK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb9A3ge%2FbtsPB3lodZu%2Fq0kX0694uoWBZTinpn09AK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;5102&quot; height=&quot;3949&quot; data-filename=&quot;KakaoTalk_20250727_153501504_12.jpg&quot; data-origin-width=&quot;5102&quot; data-origin-height=&quot;3949&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250727_153501504_13.jpg&quot; data-origin-width=&quot;4829&quot; data-origin-height=&quot;3717&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bxx92a/btsPBHQlfWw/Dqf3BUd7N8k65AWmZoGTZk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bxx92a/btsPBHQlfWw/Dqf3BUd7N8k65AWmZoGTZk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bxx92a/btsPBHQlfWw/Dqf3BUd7N8k65AWmZoGTZk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbxx92a%2FbtsPBHQlfWw%2FDqf3BUd7N8k65AWmZoGTZk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;4829&quot; height=&quot;3717&quot; data-filename=&quot;KakaoTalk_20250727_153501504_13.jpg&quot; data-origin-width=&quot;4829&quot; data-origin-height=&quot;3717&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;기본 숙제(필수) : 클래스의 타입 변환에는 어떤 것이 있는지 정리하고 공유하기&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-end=&quot;212&quot; data-start=&quot;187&quot; data-ke-size=&quot;size20&quot;&gt;1. 업캐스팅 (Upcasting)&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;309&quot; data-start=&quot;213&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;242&quot; data-start=&quot;213&quot;&gt;자식 클래스 &amp;rarr; 부모 클래스로 변환하는 것&lt;/li&gt;
&lt;li data-end=&quot;277&quot; data-start=&quot;243&quot;&gt;자동 형 변환이 일어남 (명시적 형변환 필요 없음)&lt;/li&gt;
&lt;li data-end=&quot;309&quot; data-start=&quot;278&quot;&gt;안전함, 자식 객체는 부모의 형태를 항상 가짐&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;div&gt;class&amp;nbsp;Animal&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void&amp;nbsp;sound()&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.out.println(&quot;동물이&amp;nbsp;소리를&amp;nbsp;냅니다.&quot;); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;} &lt;br /&gt;&lt;br /&gt;class&amp;nbsp;Dog&amp;nbsp;extends&amp;nbsp;Animal&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void&amp;nbsp;bark()&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.out.println(&quot;멍멍!&quot;); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;} &lt;br /&gt;&lt;br /&gt;public&amp;nbsp;class&amp;nbsp;Main&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;static&amp;nbsp;void&amp;nbsp;main(String[]&amp;nbsp;args)&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Dog&amp;nbsp;dog&amp;nbsp;=&amp;nbsp;new&amp;nbsp;Dog(); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Animal&amp;nbsp;ani&amp;nbsp;=&amp;nbsp;dog;&amp;nbsp;&amp;nbsp;//&amp;nbsp;업캐스팅&amp;nbsp;(자동&amp;nbsp;형변환) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ani.sound();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;OK &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;ani.bark();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;오류:&amp;nbsp;부모&amp;nbsp;타입으로는&amp;nbsp;자식의&amp;nbsp;기능&amp;nbsp;사용&amp;nbsp;불가 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;}&lt;/div&gt;
&lt;/div&gt;
&lt;hr data-end=&quot;747&quot; data-start=&quot;744&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h4 data-end=&quot;777&quot; data-start=&quot;749&quot; data-ke-size=&quot;size20&quot;&gt;2. 다운캐스팅 (Downcasting)&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;891&quot; data-start=&quot;778&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;807&quot; data-start=&quot;778&quot;&gt;부모 클래스 &amp;rarr; 자식 클래스로 변환하는 것&lt;/li&gt;
&lt;li data-end=&quot;826&quot; data-start=&quot;808&quot;&gt;명시적 형변환이 필요함&lt;/li&gt;
&lt;li data-end=&quot;850&quot; data-start=&quot;827&quot;&gt;실제로 자식 타입의 인스턴스여야 안전함&lt;/li&gt;
&lt;li data-end=&quot;891&quot; data-start=&quot;851&quot;&gt;잘못된 다운캐스팅은 ClassCastException 발생&lt;/li&gt;
&lt;li data-end=&quot;891&quot; data-start=&quot;851&quot;&gt;잘못된 다운캐스팅 예 :&lt;/li&gt;
&lt;li data-end=&quot;891&quot; data-start=&quot;851&quot;&gt;Animal&amp;nbsp;ani&amp;nbsp;=&amp;nbsp;new&amp;nbsp;Animal();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;실제로는&amp;nbsp;Animal&amp;nbsp;객체&lt;br /&gt;Dog&amp;nbsp;dog&amp;nbsp;=&amp;nbsp;(Dog)&amp;nbsp;ani;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;오류&amp;nbsp;발생:&amp;nbsp;ClassCastException&lt;br /&gt;dog.bark();&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;div&gt;Animal&amp;nbsp;ani&amp;nbsp;=&amp;nbsp;new&amp;nbsp;Dog();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;업캐스팅 &lt;br /&gt;Dog&amp;nbsp;dog&amp;nbsp;=&amp;nbsp;(Dog)&amp;nbsp;ani;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;다운캐스팅&amp;nbsp;(명시적으로&amp;nbsp;형변환) &lt;br /&gt;dog.bark();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;OK&lt;/div&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;hr data-end=&quot;1193&quot; data-start=&quot;1190&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h4 data-end=&quot;1232&quot; data-start=&quot;1195&quot; data-ke-size=&quot;size20&quot;&gt;3. instanceof 연산자 (다운캐스팅 전에 확인)&lt;/h4&gt;
&lt;p data-end=&quot;1291&quot; data-start=&quot;1233&quot; data-ke-size=&quot;size18&quot;&gt;다운캐스팅 시 예외를 방지하기 위해 instanceof로 객체의 실제 타입을 확인하는 것이 좋습니다.&lt;/p&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;if&amp;nbsp;(ani&amp;nbsp;instanceof&amp;nbsp;Dog)&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Dog&amp;nbsp;dog&amp;nbsp;=&amp;nbsp;(Dog)&amp;nbsp;ani; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dog.bark(); &lt;br /&gt;}&amp;nbsp;else&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.out.println(&quot;다운캐스팅&amp;nbsp;불가&quot;); &lt;br /&gt;}&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;추가 숙제(선택) : p.389 (07-3) 확인 문제 3번을 풀고 풀이 과정 설명하기&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;//&amp;nbsp;추상&amp;nbsp;클래스 &lt;br /&gt;public&amp;nbsp;abstract&amp;nbsp;class&amp;nbsp;HttpServlet&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;abstract&amp;nbsp;void&amp;nbsp;service(); &lt;br /&gt;} &lt;br /&gt;&lt;br /&gt;//&amp;nbsp;LoginServlet&amp;nbsp;클래스 &lt;br /&gt;public&amp;nbsp;class&amp;nbsp;LoginServlet&amp;nbsp;extends&amp;nbsp;HttpServlet&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@Override &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;void&amp;nbsp;service()&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.out.println(&quot;로그인&amp;nbsp;합니다.&quot;); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;} &lt;br /&gt;&lt;br /&gt;//&amp;nbsp;FileDownloadServlet&amp;nbsp;클래스 &lt;br /&gt;public&amp;nbsp;class&amp;nbsp;FileDownloadServlet&amp;nbsp;extends&amp;nbsp;HttpServlet&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@Override &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;void&amp;nbsp;service()&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.out.println(&quot;파일&amp;nbsp;다운로드&amp;nbsp;합니다.&quot;); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;} &lt;br /&gt;&lt;br /&gt;//&amp;nbsp;메인&amp;nbsp;클래스 &lt;br /&gt;public&amp;nbsp;class&amp;nbsp;HttpServletExample&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;static&amp;nbsp;void&amp;nbsp;main(String[]&amp;nbsp;args)&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;method(new&amp;nbsp;LoginServlet());&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;&quot;로그인&amp;nbsp;합니다.&quot;&amp;nbsp;출력 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;method(new&amp;nbsp;FileDownloadServlet());&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;&quot;파일&amp;nbsp;다운로드&amp;nbsp;합니다.&quot;&amp;nbsp;출력 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;static&amp;nbsp;void&amp;nbsp;method(HttpServlet&amp;nbsp;servlet)&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;servlet.service(); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;}&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-end=&quot;524&quot; data-start=&quot;511&quot; data-ke-size=&quot;size26&quot;&gt;풀이 과정 설명&lt;/h2&gt;
&lt;h3 data-end=&quot;547&quot; data-start=&quot;526&quot; data-ke-size=&quot;size23&quot;&gt;1. &lt;b&gt;추상 클래스 만들기&lt;/b&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;public&amp;nbsp;abstract&amp;nbsp;class&amp;nbsp;HttpServlet&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;abstract&amp;nbsp;void&amp;nbsp;service();&amp;nbsp;//&amp;nbsp;추상&amp;nbsp;메서드 &lt;br /&gt;}&lt;/div&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;737&quot; data-start=&quot;646&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;675&quot; data-start=&quot;646&quot;&gt;HttpServlet은 추상 클래스입니다.&lt;/li&gt;
&lt;li data-end=&quot;737&quot; data-start=&quot;676&quot;&gt;service()는 몸체가 없는 &lt;b&gt;추상 메서드&lt;/b&gt;로 선언되어, 자식 클래스가 반드시 구현해야 합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-end=&quot;742&quot; data-start=&quot;739&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-end=&quot;778&quot; data-start=&quot;744&quot; data-ke-size=&quot;size23&quot;&gt;2. &lt;b&gt;자식 클래스: LoginServlet 정의&lt;/b&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;public&amp;nbsp;class&amp;nbsp;LoginServlet&amp;nbsp;extends&amp;nbsp;HttpServlet&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@Override &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;void&amp;nbsp;service()&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.out.println(&quot;로그인&amp;nbsp;합니다.&quot;); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;}&lt;/div&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;982&quot; data-start=&quot;931&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;962&quot; data-start=&quot;931&quot;&gt;추상 메서드 service()를 오버라이딩합니다.&lt;/li&gt;
&lt;li data-end=&quot;982&quot; data-start=&quot;963&quot;&gt;출력문: &quot;로그인 합니다.&quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-end=&quot;987&quot; data-start=&quot;984&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-end=&quot;1030&quot; data-start=&quot;989&quot; data-ke-size=&quot;size23&quot;&gt;3. &lt;b&gt;자식 클래스: FileDownloadServlet 정의&lt;/b&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;public&amp;nbsp;class&amp;nbsp;FileDownloadServlet&amp;nbsp;extends&amp;nbsp;HttpServlet&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@Override &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;void&amp;nbsp;service()&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.out.println(&quot;파일&amp;nbsp;다운로드&amp;nbsp;합니다.&quot;); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;}&lt;/div&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1242&quot; data-start=&quot;1194&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1218&quot; data-start=&quot;1194&quot;&gt;역시 service()를 오버라이딩.&lt;/li&gt;
&lt;li data-end=&quot;1242&quot; data-start=&quot;1219&quot;&gt;출력문: &quot;파일 다운로드 합니다.&quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-end=&quot;1247&quot; data-start=&quot;1244&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-end=&quot;1274&quot; data-start=&quot;1249&quot; data-ke-size=&quot;size23&quot;&gt;4. &lt;b&gt;메인 클래스: 다형성 활용&lt;/b&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;public&amp;nbsp;class&amp;nbsp;HttpServletExample&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;static&amp;nbsp;void&amp;nbsp;main(String[]&amp;nbsp;args)&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;method(new&amp;nbsp;LoginServlet());&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;&amp;rarr;&amp;nbsp;&quot;로그인&amp;nbsp;합니다.&quot; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;method(new&amp;nbsp;FileDownloadServlet());&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;&amp;rarr;&amp;nbsp;&quot;파일&amp;nbsp;다운로드&amp;nbsp;합니다.&quot; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;static&amp;nbsp;void&amp;nbsp;method(HttpServlet&amp;nbsp;servlet)&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;servlet.service();&amp;nbsp;&amp;nbsp;//&amp;nbsp;다형성&amp;nbsp;적용:&amp;nbsp;실제&amp;nbsp;객체의&amp;nbsp;오버라이딩된&amp;nbsp;메서드&amp;nbsp;실행 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;}&lt;/div&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1754&quot; data-start=&quot;1624&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1754&quot; data-start=&quot;1624&quot;&gt;method()는 HttpServlet 타입을 매개변수로 받지만,&lt;br /&gt;실제로는 LoginServlet, FileDownloadServlet 객체를 전달하므로&lt;br /&gt;각각의 service() 구현이 실행됩니다.&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>혼공</category>
      <author>sm1118sm</author>
      <guid isPermaLink="true">https://sm021118.tistory.com/49</guid>
      <comments>https://sm021118.tistory.com/49#entry49comment</comments>
      <pubDate>Sun, 27 Jul 2025 15:39:24 +0900</pubDate>
    </item>
    <item>
      <title>[혼공자바 3주차] Chapter 06</title>
      <link>https://sm021118.tistory.com/48</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt; 혼자공부하는 자바 3주차 (p.234 ~ p.329)&amp;nbsp; &lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;06. 클래스&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;06-1 객체 지향 프로그래밍&lt;/b&gt;&lt;/h3&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;클래스&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;객체를 만들기 위한 설계도&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;객체&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;클래스로부터 생성된 실체, new 클래스이름(); 으로 생성&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;new 연산자&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;객체를 생성하고 생성자 호출, 객체 번지를 리턴&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;클래스 변수&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;클래스 타입으로 선언된 변수 (객체 참조 저장)&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;인스턴스&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;객체는 클래스의 인스턴스&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;클래스 멤버&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;클래스 내 선언된 필드, 메서드, 생성자&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250720_190937326.jpg&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;4032&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/baPGBx/btsPp6XT2hB/xktqxaFVfVZkPrjI48VBWK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/baPGBx/btsPp6XT2hB/xktqxaFVfVZkPrjI48VBWK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/baPGBx/btsPp6XT2hB/xktqxaFVfVZkPrjI48VBWK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbaPGBx%2FbtsPp6XT2hB%2FxktqxaFVfVZkPrjI48VBWK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3024&quot; height=&quot;4032&quot; data-filename=&quot;KakaoTalk_20250720_190937326.jpg&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;4032&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250720_190937326_01.jpg&quot; data-origin-width=&quot;3782&quot; data-origin-height=&quot;2936&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bF0UWQ/btsPqP2lSOH/MmFeLpd6P1IemMAiwF1xl0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bF0UWQ/btsPqP2lSOH/MmFeLpd6P1IemMAiwF1xl0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bF0UWQ/btsPqP2lSOH/MmFeLpd6P1IemMAiwF1xl0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbF0UWQ%2FbtsPqP2lSOH%2FMmFeLpd6P1IemMAiwF1xl0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3782&quot; height=&quot;2936&quot; data-filename=&quot;KakaoTalk_20250720_190937326_01.jpg&quot; data-origin-width=&quot;3782&quot; data-origin-height=&quot;2936&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250720_190937326_02.jpg&quot; data-origin-width=&quot;3622&quot; data-origin-height=&quot;2722&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kTlAs/btsPp46M44k/byLxoSIw6i4qHhKLMGJTSk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kTlAs/btsPp46M44k/byLxoSIw6i4qHhKLMGJTSk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kTlAs/btsPp46M44k/byLxoSIw6i4qHhKLMGJTSk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkTlAs%2FbtsPp46M44k%2FbyLxoSIw6i4qHhKLMGJTSk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3622&quot; height=&quot;2722&quot; data-filename=&quot;KakaoTalk_20250720_190937326_02.jpg&quot; data-origin-width=&quot;3622&quot; data-origin-height=&quot;2722&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;06-2 필드&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;필드 선언&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;클래스 중괄호 {} 안에서 선언. 생성자/메서드 내부에서는 ❌&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;필드 사용&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;클래스 내부에서는 바로 사용 가능, 외부에서는 객체 생성 후 접근 필요&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;figure data-ke-type=&quot;image&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; data-ke-style=&quot;alignCenter&quot;&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;div&gt;
&lt;div&gt;&lt;b&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;public&lt;/span&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&lt;span&gt;class&lt;/span&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&lt;span&gt;Car&lt;/span&gt;&lt;/span&gt;&lt;span&gt; { &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;&lt;b&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String model; &lt;/span&gt;&lt;span&gt;&lt;span&gt;// 필드&lt;/span&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;&lt;b&gt;&lt;span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250720_190937326_03.jpg&quot; data-origin-width=&quot;3772&quot; data-origin-height=&quot;2785&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/djNWH4/btsPpQugndg/ZZIV5iH6faBaGCZiC3NqX1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/djNWH4/btsPpQugndg/ZZIV5iH6faBaGCZiC3NqX1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/djNWH4/btsPpQugndg/ZZIV5iH6faBaGCZiC3NqX1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdjNWH4%2FbtsPpQugndg%2FZZIV5iH6faBaGCZiC3NqX1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3772&quot; height=&quot;2785&quot; data-filename=&quot;KakaoTalk_20250720_190937326_03.jpg&quot; data-origin-width=&quot;3772&quot; data-origin-height=&quot;2785&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250720_190937326_04.jpg&quot; data-origin-width=&quot;3752&quot; data-origin-height=&quot;2834&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/csvKs5/btsPqHpYIFh/M5c8h1JpmigKko1V4f6Izk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/csvKs5/btsPqHpYIFh/M5c8h1JpmigKko1V4f6Izk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/csvKs5/btsPqHpYIFh/M5c8h1JpmigKko1V4f6Izk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcsvKs5%2FbtsPqHpYIFh%2FM5c8h1JpmigKko1V4f6Izk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3752&quot; height=&quot;2834&quot; data-filename=&quot;KakaoTalk_20250720_190937326_04.jpg&quot; data-origin-width=&quot;3752&quot; data-origin-height=&quot;2834&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;06-3 생성자&amp;nbsp;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;기본 생성자&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;컴파일러가 자동 추가 (다른 생성자 없을 경우)&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;명시적 생성자&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;개발자가 직접 정의한 생성자. 선언하면 기본 생성자는 생성되지 않음&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;매개변수&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;생성자 호출 시 전달받는 값&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;객체 초기화&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;필드 초기화 or 메서드 호출로 설정&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;오버로딩&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;매개변수가 다른 생성자를 여러 개 선언&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;this()&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;자신의 다른 생성자를 호출할 때 사용&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;figure data-ke-type=&quot;image&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; data-ke-style=&quot;alignCenter&quot;&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-end=&quot;1060&quot; data-start=&quot;1055&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;&lt;b&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;public&lt;/span&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&lt;span&gt;class&lt;/span&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&lt;span&gt;Car&lt;/span&gt;&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;b&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String model;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;b&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Car() {&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;b&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this&lt;/span&gt;&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&lt;span&gt;&quot;기본 모델&quot;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;b&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;b&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Car(String model) {&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;b&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this&lt;/span&gt;&lt;/span&gt;&lt;span&gt;.model = model;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;b&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;&lt;b&gt;&lt;span&gt;&lt;span&gt; }&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250720_190937326_05.jpg&quot; data-origin-width=&quot;3834&quot; data-origin-height=&quot;2870&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lSOk3/btsPpxaDZyE/Cs4b68Ir1GATYgxtR1f2k0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lSOk3/btsPpxaDZyE/Cs4b68Ir1GATYgxtR1f2k0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lSOk3/btsPpxaDZyE/Cs4b68Ir1GATYgxtR1f2k0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlSOk3%2FbtsPpxaDZyE%2FCs4b68Ir1GATYgxtR1f2k0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3834&quot; height=&quot;2870&quot; data-filename=&quot;KakaoTalk_20250720_190937326_05.jpg&quot; data-origin-width=&quot;3834&quot; data-origin-height=&quot;2870&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250720_190937326_06.jpg&quot; data-origin-width=&quot;3900&quot; data-origin-height=&quot;2993&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d7C7Ro/btsPrsr6e4j/3Rp1HzIE4nkTncqckZn0Z0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d7C7Ro/btsPrsr6e4j/3Rp1HzIE4nkTncqckZn0Z0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d7C7Ro/btsPrsr6e4j/3Rp1HzIE4nkTncqckZn0Z0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd7C7Ro%2FbtsPrsr6e4j%2F3Rp1HzIE4nkTncqckZn0Z0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3900&quot; height=&quot;2993&quot; data-filename=&quot;KakaoTalk_20250720_190937326_06.jpg&quot; data-origin-width=&quot;3900&quot; data-origin-height=&quot;2993&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250720_190937326_07.jpg&quot; data-origin-width=&quot;3782&quot; data-origin-height=&quot;2880&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bihlkc/btsPrQfb8FS/5QgtlrvByDQu5kArOJmiw1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bihlkc/btsPrQfb8FS/5QgtlrvByDQu5kArOJmiw1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bihlkc/btsPrQfb8FS/5QgtlrvByDQu5kArOJmiw1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbihlkc%2FbtsPrQfb8FS%2F5QgtlrvByDQu5kArOJmiw1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3782&quot; height=&quot;2880&quot; data-filename=&quot;KakaoTalk_20250720_190937326_07.jpg&quot; data-origin-width=&quot;3782&quot; data-origin-height=&quot;2880&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250720_190937326_08.jpg&quot; data-origin-width=&quot;3685&quot; data-origin-height=&quot;2864&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bjbbOD/btsPrnxwIHt/hcChbgZHX0FqngpWOYOn8k/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bjbbOD/btsPrnxwIHt/hcChbgZHX0FqngpWOYOn8k/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bjbbOD/btsPrnxwIHt/hcChbgZHX0FqngpWOYOn8k/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbjbbOD%2FbtsPrnxwIHt%2FhcChbgZHX0FqngpWOYOn8k%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3685&quot; height=&quot;2864&quot; data-filename=&quot;KakaoTalk_20250720_190937326_08.jpg&quot; data-origin-width=&quot;3685&quot; data-origin-height=&quot;2864&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;06-4 메서드&amp;nbsp;&lt;/b&gt;&lt;/h3&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;선언부&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;리턴 타입, 메서드 이름, 매개변수 포함&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;void&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;리턴값이 없음을 의미&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;return 문&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;리턴 타입이 있을 경우 반드시 필요&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;호출&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;메서드이름(값, ...) 형태&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;오버로딩&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;동일한 이름의 메서드를 여러 개 선언. 조건: 매개변수 타입/개수/순서 다름&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;figure data-ke-type=&quot;image&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; data-ke-style=&quot;alignCenter&quot;&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;public&amp;nbsp;void&amp;nbsp;printInfo()&amp;nbsp;{ &lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.out.println(&quot;정보&amp;nbsp;출력&quot;); &lt;/b&gt;&lt;br /&gt;&lt;b&gt;} &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;public&amp;nbsp;void&amp;nbsp;printInfo(String&amp;nbsp;name)&amp;nbsp;{ &lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.out.println(&quot;이름:&amp;nbsp;&quot;&amp;nbsp;+&amp;nbsp;name); &lt;/b&gt;&lt;br /&gt;&lt;b&gt;} &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250720_190937326_09.jpg&quot; data-origin-width=&quot;2676&quot; data-origin-height=&quot;4230&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bV6mPm/btsPruXKGZx/7eA8OkYB8TOskIweFHGjDK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bV6mPm/btsPruXKGZx/7eA8OkYB8TOskIweFHGjDK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bV6mPm/btsPruXKGZx/7eA8OkYB8TOskIweFHGjDK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbV6mPm%2FbtsPruXKGZx%2F7eA8OkYB8TOskIweFHGjDK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2676&quot; height=&quot;4230&quot; data-filename=&quot;KakaoTalk_20250720_190937326_09.jpg&quot; data-origin-width=&quot;2676&quot; data-origin-height=&quot;4230&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250720_190937326_10.jpg&quot; data-origin-width=&quot;2538&quot; data-origin-height=&quot;3717&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bSwDdQ/btsPqPnJtzx/yrunmfaSACqjVcYuvBfB1k/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bSwDdQ/btsPqPnJtzx/yrunmfaSACqjVcYuvBfB1k/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bSwDdQ/btsPqPnJtzx/yrunmfaSACqjVcYuvBfB1k/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbSwDdQ%2FbtsPqPnJtzx%2FyrunmfaSACqjVcYuvBfB1k%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2538&quot; height=&quot;3717&quot; data-filename=&quot;KakaoTalk_20250720_190937326_10.jpg&quot; data-origin-width=&quot;2538&quot; data-origin-height=&quot;3717&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250720_190937326_11.jpg&quot; data-origin-width=&quot;3915&quot; data-origin-height=&quot;2962&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/p1TIh/btsPptF9NGV/VyHaiDpU3bday6VysuF5P1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/p1TIh/btsPptF9NGV/VyHaiDpU3bday6VysuF5P1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/p1TIh/btsPptF9NGV/VyHaiDpU3bday6VysuF5P1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fp1TIh%2FbtsPptF9NGV%2FVyHaiDpU3bday6VysuF5P1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3915&quot; height=&quot;2962&quot; data-filename=&quot;KakaoTalk_20250720_190937326_11.jpg&quot; data-origin-width=&quot;3915&quot; data-origin-height=&quot;2962&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250720_190937326_12.jpg&quot; data-origin-width=&quot;4141&quot; data-origin-height=&quot;3031&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nVcNC/btsPqTRfBns/GKGIPnpBxlmqBOGqw3h85k/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nVcNC/btsPqTRfBns/GKGIPnpBxlmqBOGqw3h85k/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nVcNC/btsPqTRfBns/GKGIPnpBxlmqBOGqw3h85k/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnVcNC%2FbtsPqTRfBns%2FGKGIPnpBxlmqBOGqw3h85k%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;4141&quot; height=&quot;3031&quot; data-filename=&quot;KakaoTalk_20250720_190937326_12.jpg&quot; data-origin-width=&quot;4141&quot; data-origin-height=&quot;3031&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250720_190937326_13.jpg&quot; data-origin-width=&quot;4119&quot; data-origin-height=&quot;3145&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/KWSYs/btsPrd9JNAM/O3sUR5PBKE5pWqA7RsgGq1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/KWSYs/btsPrd9JNAM/O3sUR5PBKE5pWqA7RsgGq1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/KWSYs/btsPrd9JNAM/O3sUR5PBKE5pWqA7RsgGq1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKWSYs%2FbtsPrd9JNAM%2FO3sUR5PBKE5pWqA7RsgGq1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;4119&quot; height=&quot;3145&quot; data-filename=&quot;KakaoTalk_20250720_190937326_13.jpg&quot; data-origin-width=&quot;4119&quot; data-origin-height=&quot;3145&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250720_190937326_14.jpg&quot; data-origin-width=&quot;3575&quot; data-origin-height=&quot;2771&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cUoZdL/btsPrPAzNfk/5q4lPnpl7kHqbsA7YQUY51/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cUoZdL/btsPrPAzNfk/5q4lPnpl7kHqbsA7YQUY51/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cUoZdL/btsPrPAzNfk/5q4lPnpl7kHqbsA7YQUY51/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcUoZdL%2FbtsPrPAzNfk%2F5q4lPnpl7kHqbsA7YQUY51%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3575&quot; height=&quot;2771&quot; data-filename=&quot;KakaoTalk_20250720_190937326_14.jpg&quot; data-origin-width=&quot;3575&quot; data-origin-height=&quot;2771&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250720_190937326_15.jpg&quot; data-origin-width=&quot;3859&quot; data-origin-height=&quot;2742&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qdCiP/btsPqU3Gjm8/kJRGDw00I3ujXvhXsvrDkk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qdCiP/btsPqU3Gjm8/kJRGDw00I3ujXvhXsvrDkk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qdCiP/btsPqU3Gjm8/kJRGDw00I3ujXvhXsvrDkk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqdCiP%2FbtsPqU3Gjm8%2FkJRGDw00I3ujXvhXsvrDkk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3859&quot; height=&quot;2742&quot; data-filename=&quot;KakaoTalk_20250720_190937326_15.jpg&quot; data-origin-width=&quot;3859&quot; data-origin-height=&quot;2742&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250720_190937326_16.jpg&quot; data-origin-width=&quot;4017&quot; data-origin-height=&quot;3156&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sPJVL/btsPrqgIwzN/KjSh57US5dIOdyykxLCZAk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sPJVL/btsPrqgIwzN/KjSh57US5dIOdyykxLCZAk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sPJVL/btsPrqgIwzN/KjSh57US5dIOdyykxLCZAk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsPJVL%2FbtsPrqgIwzN%2FKjSh57US5dIOdyykxLCZAk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;4017&quot; height=&quot;3156&quot; data-filename=&quot;KakaoTalk_20250720_190937326_16.jpg&quot; data-origin-width=&quot;4017&quot; data-origin-height=&quot;3156&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;06-5 인스턴스 멤버와 정적 멤버&lt;/b&gt;&lt;/h3&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;인스턴스 멤버&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;객체 생성 후 사용할 수 있는 멤버 (필드, 메서드)&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;this&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;인스턴스 자신을 가리키는 참조자&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;정적 멤버 (static)&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;클래스에 고정된 멤버. 객체 없이도 사용 가능&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;싱글톤&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;프로그램에서 단 하나만 생성되도록 보장되는 객체&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;final 필드&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;한 번 초기화되면 변경 불가&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;상수&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;final static으로 선언된 불변 값&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;figure data-ke-type=&quot;image&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; data-ke-style=&quot;alignCenter&quot;&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;public&amp;nbsp;class&amp;nbsp;Calculator&amp;nbsp;{ &lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;static&amp;nbsp;final&amp;nbsp;double&amp;nbsp;PI&amp;nbsp;=&amp;nbsp;3.14159;&amp;nbsp;&amp;nbsp;//&amp;nbsp;상수 &lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;final&amp;nbsp;int&amp;nbsp;id;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;final&amp;nbsp;필드 &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Calculator(int&amp;nbsp;id)&amp;nbsp;{ &lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.id&amp;nbsp;=&amp;nbsp;id; &lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;/b&gt;&lt;br /&gt;&lt;b&gt;} &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250720_190937326_17.jpg&quot; data-origin-width=&quot;4334&quot; data-origin-height=&quot;3360&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cgxlaG/btsPqSEQAmA/TpZKz5wtmCWvMKQlwIQ1MK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cgxlaG/btsPqSEQAmA/TpZKz5wtmCWvMKQlwIQ1MK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cgxlaG/btsPqSEQAmA/TpZKz5wtmCWvMKQlwIQ1MK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcgxlaG%2FbtsPqSEQAmA%2FTpZKz5wtmCWvMKQlwIQ1MK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;4334&quot; height=&quot;3360&quot; data-filename=&quot;KakaoTalk_20250720_190937326_17.jpg&quot; data-origin-width=&quot;4334&quot; data-origin-height=&quot;3360&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;06-6 패키지와 접근 제한자&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;패키지 선언&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;클래스 상단에 package 패키지명; 형태로 작성&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;import 문&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;다른 패키지의 클래스 사용 시 필요&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;접근 제한자&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;외부 접근 제어 목적. 클래스, 필드, 메서드, 생성자 등에 사용&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;figure data-ke-type=&quot;image&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; data-ke-style=&quot;alignCenter&quot;&gt;&lt;br /&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;package com.example.car;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;import&amp;nbsp;java.util.Scanner;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;접근 제한자 종류&lt;/b&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;public&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;모든 클래스에서 접근 가능&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;protected&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;같은 패키지 + 자식 클래스에서 접근&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;(default)&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;같은 패키지 내에서만 접근&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;private&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;해당 클래스 내부에서만 접근 가능&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Getter / Setter 예시 &lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;public&amp;nbsp;class&amp;nbsp;Member&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;private&amp;nbsp;String&amp;nbsp;name; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;String&amp;nbsp;getName()&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;this.name; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;void&amp;nbsp;setName(String&amp;nbsp;name)&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.name&amp;nbsp;=&amp;nbsp;name; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;} &lt;br /&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250720_190937326_18.jpg&quot; data-origin-width=&quot;4324&quot; data-origin-height=&quot;3100&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/G9v16/btsPp4eHWU2/XWHUhqyr5Za6HeJ8IJO8rK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/G9v16/btsPp4eHWU2/XWHUhqyr5Za6HeJ8IJO8rK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/G9v16/btsPp4eHWU2/XWHUhqyr5Za6HeJ8IJO8rK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FG9v16%2FbtsPp4eHWU2%2FXWHUhqyr5Za6HeJ8IJO8rK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;4324&quot; height=&quot;3100&quot; data-filename=&quot;KakaoTalk_20250720_190937326_18.jpg&quot; data-origin-width=&quot;4324&quot; data-origin-height=&quot;3100&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;기본 숙제(필수) : &lt;/b&gt;&lt;/span&gt;&lt;b&gt;어렵게나 중요하다고 생각하는 용어를 혼공용어 노트에 정리하고 공유하기&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250720_195455712.jpg&quot; data-origin-width=&quot;3910&quot; data-origin-height=&quot;2834&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bachX8/btsPqAqVb3k/FJQlLT5QeFK87RMToXa7D1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bachX8/btsPqAqVb3k/FJQlLT5QeFK87RMToXa7D1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bachX8/btsPqAqVb3k/FJQlLT5QeFK87RMToXa7D1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbachX8%2FbtsPqAqVb3k%2FFJQlLT5QeFK87RMToXa7D1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3910&quot; height=&quot;2834&quot; data-filename=&quot;KakaoTalk_20250720_195455712.jpg&quot; data-origin-width=&quot;3910&quot; data-origin-height=&quot;2834&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250720_195455712_01.jpg&quot; data-origin-width=&quot;3635&quot; data-origin-height=&quot;2803&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b07F6M/btsPrPAArFB/WAsyXUIEYam1Ox7ymVXl9K/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b07F6M/btsPrPAArFB/WAsyXUIEYam1Ox7ymVXl9K/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b07F6M/btsPrPAArFB/WAsyXUIEYam1Ox7ymVXl9K/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb07F6M%2FbtsPrPAArFB%2FWAsyXUIEYam1Ox7ymVXl9K%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3635&quot; height=&quot;2803&quot; data-filename=&quot;KakaoTalk_20250720_195455712_01.jpg&quot; data-origin-width=&quot;3635&quot; data-origin-height=&quot;2803&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20250720_195455712_02.jpg&quot; data-origin-width=&quot;3248&quot; data-origin-height=&quot;1924&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oda0y/btsPpQHOlSt/5sUm1r0TgyiEJ5wKjH21y0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oda0y/btsPpQHOlSt/5sUm1r0TgyiEJ5wKjH21y0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oda0y/btsPpQHOlSt/5sUm1r0TgyiEJ5wKjH21y0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Foda0y%2FbtsPpQHOlSt%2F5sUm1r0TgyiEJ5wKjH21y0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3248&quot; height=&quot;1924&quot; data-filename=&quot;KakaoTalk_20250720_195455712_02.jpg&quot; data-origin-width=&quot;3248&quot; data-origin-height=&quot;1924&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;추가 숙제(선택) :&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot;&gt;객체 지향 프로그래밍의 개념 정리하기&lt;/span&gt; &lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;객체 지향 프로그래밍 : 객체를 하나씩 조립해서 완성된 프로그램을 만드는 기법&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-end=&quot;146&quot; data-start=&quot;129&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;1. 필드&lt;/b&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;224&quot; data-start=&quot;147&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;164&quot; data-start=&quot;147&quot;&gt;&lt;b&gt;클래스에 선언된 변수&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;182&quot; data-start=&quot;165&quot;&gt;&lt;b&gt;객체의 속성(데이터)을 저장&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;224&quot; data-start=&quot;183&quot;&gt;&lt;b&gt;보통 private으로 선언하고 getter/setter로 접근&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;div&gt;&lt;b&gt;public&amp;nbsp;class&amp;nbsp;Person&amp;nbsp;{ &lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;private&amp;nbsp;String&amp;nbsp;name;&amp;nbsp;//&amp;nbsp;필드 &lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;private&amp;nbsp;int&amp;nbsp;age;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;필드 &lt;/b&gt;&lt;br /&gt;&lt;b&gt;} &lt;/b&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;hr data-end=&quot;328&quot; data-start=&quot;325&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;354&quot; data-start=&quot;330&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;2. 생성자&lt;/b&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;417&quot; data-start=&quot;355&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;380&quot; data-start=&quot;355&quot;&gt;&lt;b&gt;객체 생성 시 자동 호출되는 메서드&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;403&quot; data-start=&quot;381&quot;&gt;&lt;b&gt;클래스 이름과 같고, 리턴 타입 없음&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;417&quot; data-start=&quot;404&quot;&gt;&lt;b&gt;오버로딩 가능&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;div&gt;&lt;b&gt;public&amp;nbsp;class&amp;nbsp;Person&amp;nbsp;{ &lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;String&amp;nbsp;name; &lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;기본&amp;nbsp;생성자 &lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;Person()&amp;nbsp;{ &lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.name&amp;nbsp;=&amp;nbsp;&quot;홍길동&quot;; &lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;매개변수&amp;nbsp;있는&amp;nbsp;생성자 &lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;Person(String&amp;nbsp;name)&amp;nbsp;{ &lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.name&amp;nbsp;=&amp;nbsp;name; &lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;/b&gt;&lt;br /&gt;&lt;b&gt;} &lt;/b&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;hr data-end=&quot;635&quot; data-start=&quot;632&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;656&quot; data-start=&quot;637&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;3. 메서드&lt;/b&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;721&quot; data-start=&quot;657&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;672&quot; data-start=&quot;657&quot;&gt;&lt;b&gt;동작/기능을 정의&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;685&quot; data-start=&quot;673&quot;&gt;&lt;b&gt;객체의 행동을 구현&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;721&quot; data-start=&quot;686&quot;&gt;&lt;b&gt;returnType methodName(매개변수) { }&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;div&gt;&lt;b&gt;public&amp;nbsp;class&amp;nbsp;Calculator&amp;nbsp;{ &lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;int&amp;nbsp;add(int&amp;nbsp;a,&amp;nbsp;int&amp;nbsp;b)&amp;nbsp;{ &lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;a&amp;nbsp;+&amp;nbsp;b; &lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;/b&gt;&lt;br /&gt;&lt;b&gt;} &lt;/b&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;hr data-end=&quot;830&quot; data-start=&quot;827&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;865&quot; data-start=&quot;832&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;4. 인스턴스 멤버&lt;/b&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;923&quot; data-start=&quot;866&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;894&quot; data-start=&quot;866&quot;&gt;&lt;b&gt;객체가 생성되어야만 사용할 수 있는 멤버&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;923&quot; data-start=&quot;895&quot;&gt;&lt;b&gt;필드, 메서드 앞에 static이 없는 경우&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;b&gt;public&amp;nbsp;class&amp;nbsp;Car&amp;nbsp;{ &lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int&amp;nbsp;speed&amp;nbsp;=&amp;nbsp;0;&amp;nbsp;//&amp;nbsp;인스턴스&amp;nbsp;필드 &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void&amp;nbsp;run()&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;인스턴스&amp;nbsp;메서드 &lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.out.println(&quot;달립니다.&quot;); &lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;/b&gt;&lt;br /&gt;&lt;b&gt;} &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;//&amp;nbsp;사용 &lt;/b&gt;&lt;br /&gt;&lt;b&gt;Car&amp;nbsp;c&amp;nbsp;=&amp;nbsp;new&amp;nbsp;Car(); &lt;/b&gt;&lt;br /&gt;&lt;b&gt;c.run();&amp;nbsp;&amp;nbsp;//&amp;nbsp;인스턴스&amp;nbsp;메서드&amp;nbsp;호출 &lt;/b&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;hr data-end=&quot;1119&quot; data-start=&quot;1116&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;1150&quot; data-start=&quot;1121&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;5. 정적 멤버&lt;/b&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1206&quot; data-start=&quot;1151&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1171&quot; data-start=&quot;1151&quot;&gt;&lt;b&gt;클래스 자체에 속하는 멤버&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;1188&quot; data-start=&quot;1172&quot;&gt;&lt;b&gt;객체 생성 없이 사용 가능&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;1206&quot; data-start=&quot;1189&quot;&gt;&lt;b&gt;static 키워드 사용&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;div&gt;&lt;b&gt;public&amp;nbsp;class&amp;nbsp;MathUtil&amp;nbsp;{ &lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;static&amp;nbsp;double&amp;nbsp;PI&amp;nbsp;=&amp;nbsp;3.14;&amp;nbsp;//&amp;nbsp;정적&amp;nbsp;필드 &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;static&amp;nbsp;int&amp;nbsp;square(int&amp;nbsp;x)&amp;nbsp;{&amp;nbsp;//&amp;nbsp;정적&amp;nbsp;메서드 &lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;x&amp;nbsp;*&amp;nbsp;x; &lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;/b&gt;&lt;br /&gt;&lt;b&gt;} &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;//&amp;nbsp;사용 &lt;/b&gt;&lt;br /&gt;&lt;b&gt;double&amp;nbsp;p&amp;nbsp;=&amp;nbsp;MathUtil.PI; &lt;/b&gt;&lt;br /&gt;&lt;b&gt;int&amp;nbsp;result&amp;nbsp;=&amp;nbsp;MathUtil.square(5); &lt;/b&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;hr data-end=&quot;1422&quot; data-start=&quot;1419&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;1444&quot; data-start=&quot;1424&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;6. 패키지&lt;/b&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1505&quot; data-start=&quot;1445&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1471&quot; data-start=&quot;1445&quot;&gt;&lt;b&gt;관련 클래스들을 논리적으로 묶는 공간&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;1493&quot; data-start=&quot;1472&quot;&gt;&lt;b&gt;파일 상단에 package 선언&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;1505&quot; data-start=&quot;1494&quot;&gt;&lt;b&gt;폴더 구조와 연동&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;b&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;package&lt;/span&gt;&lt;/span&gt;&lt;span&gt; myapp.utils;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1598&quot; data-start=&quot;1566&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1598&quot; data-start=&quot;1566&quot;&gt;&lt;b&gt;import를 통해 다른 패키지의 클래스 사용 가능&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;b&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;import&lt;/span&gt;&lt;/span&gt;&lt;span&gt; myapp.utils.MyClass; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;hr data-end=&quot;1644&quot; data-start=&quot;1641&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;1678&quot; data-start=&quot;1646&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;7. 접근 제한자&lt;/b&gt;&lt;/h2&gt;
&lt;div&gt;&lt;br /&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-end=&quot;1952&quot; data-start=&quot;1680&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody data-end=&quot;1952&quot; data-start=&quot;1780&quot;&gt;
&lt;tr data-end=&quot;1826&quot; data-start=&quot;1780&quot;&gt;
&lt;td data-col-size=&quot;sm&quot; data-end=&quot;1793&quot; data-start=&quot;1780&quot;&gt;&lt;b&gt;public&lt;/b&gt;&lt;/td&gt;
&lt;td data-end=&quot;1826&quot; data-start=&quot;1793&quot; data-col-size=&quot;sm&quot;&gt;&lt;b&gt;어디서든 접근 가능&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;1866&quot; data-start=&quot;1827&quot;&gt;
&lt;td data-col-size=&quot;sm&quot; data-end=&quot;1840&quot; data-start=&quot;1827&quot;&gt;&lt;b&gt;protected&lt;/b&gt;&lt;/td&gt;
&lt;td data-end=&quot;1866&quot; data-start=&quot;1840&quot; data-col-size=&quot;sm&quot;&gt;&lt;b&gt;같은 패키지 + 상속받은 클래스에서 가능&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;1911&quot; data-start=&quot;1867&quot;&gt;
&lt;td data-col-size=&quot;sm&quot; data-end=&quot;1886&quot; data-start=&quot;1867&quot;&gt;&lt;b&gt;default (없을 경우)&lt;/b&gt;&lt;/td&gt;
&lt;td data-end=&quot;1911&quot; data-start=&quot;1886&quot; data-col-size=&quot;sm&quot;&gt;&lt;b&gt;같은 패키지 내에서만 접근 가능&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;1952&quot; data-start=&quot;1912&quot;&gt;
&lt;td data-col-size=&quot;sm&quot; data-end=&quot;1925&quot; data-start=&quot;1912&quot;&gt;&lt;b&gt;private&lt;/b&gt;&lt;/td&gt;
&lt;td data-end=&quot;1952&quot; data-start=&quot;1925&quot; data-col-size=&quot;sm&quot;&gt;&lt;b&gt;해당 클래스 내부에서만 접근 가능&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;&lt;b&gt;public&amp;nbsp;class&amp;nbsp;Person&amp;nbsp;{ &lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;String&amp;nbsp;name;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;어디서든&amp;nbsp;접근&amp;nbsp;가능 &lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;protected&amp;nbsp;int&amp;nbsp;age;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;같은&amp;nbsp;패키지&amp;nbsp;+&amp;nbsp;자식&amp;nbsp;클래스 &lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;String&amp;nbsp;address;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;default&amp;nbsp;(같은&amp;nbsp;패키지) &lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;private&amp;nbsp;String&amp;nbsp;password;&amp;nbsp;&amp;nbsp;//&amp;nbsp;클래스&amp;nbsp;내부만 &lt;/b&gt;&lt;br /&gt;&lt;b&gt;} &lt;/b&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>혼공</category>
      <author>sm1118sm</author>
      <guid isPermaLink="true">https://sm021118.tistory.com/48</guid>
      <comments>https://sm021118.tistory.com/48#entry48comment</comments>
      <pubDate>Sun, 20 Jul 2025 19:46:32 +0900</pubDate>
    </item>
    <item>
      <title>파이썬 자료구조 (3) 스택, 큐, dfs, bfs</title>
      <link>https://sm021118.tistory.com/47</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;2025.07.15 (화)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;12:00 ~ 15:00&lt;/b&gt;&lt;/p&gt;
&lt;blockquote data-end=&quot;222&quot; data-start=&quot;205&quot; data-ke-style=&quot;style1&quot;&gt;
&lt;p data-end=&quot;222&quot; data-start=&quot;207&quot; data-ke-size=&quot;size16&quot;&gt;백준 알고리즘 문제 풀이&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;10828번 (스택)&lt;/li&gt;
&lt;li&gt;9012번 (괄호)&lt;/li&gt;
&lt;li&gt;4949번 (균형잡힌 세상)&lt;/li&gt;
&lt;li&gt;1260번 (DFS와 BFS)&lt;/li&gt;
&lt;li&gt;1966번 (프린터 큐)&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;1260번 (DFS와 BFS)&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;: DFS는 재귀함수로, BFS는&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #188038;&quot;&gt;deque&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;를 사용해 구현했습니다. 노드를 오름차순으로 방문하기 위해 정렬을 추가했고, DFS와 BFS의 차이점과 특성을 체감하며 학습할 수 있는 좋은 기회였습니다.&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;1966번 (프린터 큐)&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;: 큐를 이용해 우선순위를 고려하여 특정 문서가 언제 출력되는지 계산하는 문제였습니다. 반복문 탈출 조건을 정확히 맞추는 것이 관건이었고, 큐의 순환 처리도 연습할 수 있었습니다.&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;10828번 (스택)&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;: 스택의 기본 동작을 구현하는 문제로, &lt;/span&gt;&lt;span style=&quot;color: #188038;&quot;&gt;push&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #188038;&quot;&gt;pop&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #188038;&quot;&gt;top&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 등의 기능을 구현하며 Python의 리스트 활용법을 다시 정리할 수 있었습니다.&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;9012번 (괄호), 4949번 (균형잡힌 세상)&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;: 여는 괄호와 닫는 괄호의 균형을 판단하는 문제였습니다. 스택 자료구조의 실전 활용을 익히는 데 도움이 되었고, 조건문에서의 흐름 제어에 대해 복습할 수 있었습니다.&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1260번 &amp;mdash; DFS와 BFS&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;핵심 정리&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;DFS: 재귀&lt;/li&gt;
&lt;li&gt;BFS: deque&lt;/li&gt;
&lt;li&gt;노드 방문 순서를 오름차순으로 하기 위해 정렬 필요&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;코드&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;940&quot; data-origin-height=&quot;1074&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bvwfBC/btsPkpJoMfr/GFpYKTkDTBKyEYz0uIiMXK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bvwfBC/btsPkpJoMfr/GFpYKTkDTBKyEYz0uIiMXK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bvwfBC/btsPkpJoMfr/GFpYKTkDTBKyEYz0uIiMXK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbvwfBC%2FbtsPkpJoMfr%2FGFpYKTkDTBKyEYz0uIiMXK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;850&quot; height=&quot;971&quot; data-origin-width=&quot;940&quot; data-origin-height=&quot;1074&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;결과&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;940&quot; data-origin-height=&quot;31&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bqJ2hV/btsPkD1Im4J/yoEijpgxgPU2wV7dfTvEm1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bqJ2hV/btsPkD1Im4J/yoEijpgxgPU2wV7dfTvEm1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bqJ2hV/btsPkD1Im4J/yoEijpgxgPU2wV7dfTvEm1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbqJ2hV%2FbtsPkD1Im4J%2FyoEijpgxgPU2wV7dfTvEm1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;602&quot; height=&quot;20&quot; data-origin-width=&quot;940&quot; data-origin-height=&quot;31&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1966번 &amp;mdash; 프린터 큐&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;핵심 정리&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;우선순위 큐 처리&lt;/li&gt;
&lt;li&gt;현재 문서가 언제 출력되는지 체크하는 흐름 익힘&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;코드&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;940&quot; data-origin-height=&quot;824&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/blVu8C/btsPi3HA7Jc/gIFmJOkxXiMnwg5q9pt7K1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/blVu8C/btsPi3HA7Jc/gIFmJOkxXiMnwg5q9pt7K1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/blVu8C/btsPi3HA7Jc/gIFmJOkxXiMnwg5q9pt7K1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FblVu8C%2FbtsPi3HA7Jc%2FgIFmJOkxXiMnwg5q9pt7K1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;840&quot; height=&quot;736&quot; data-origin-width=&quot;940&quot; data-origin-height=&quot;824&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;결과&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;939&quot; data-origin-height=&quot;30&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nYRKg/btsPiVvZubK/e8gtklknD6UEZS4XxoK3uK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nYRKg/btsPiVvZubK/e8gtklknD6UEZS4XxoK3uK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nYRKg/btsPiVvZubK/e8gtklknD6UEZS4XxoK3uK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnYRKg%2FbtsPiVvZubK%2Fe8gtklknD6UEZS4XxoK3uK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;602&quot; height=&quot;19&quot; data-origin-width=&quot;939&quot; data-origin-height=&quot;30&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;10828번 &amp;mdash; 스택&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;핵심 정리&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;스택 기본 기능 구현 (push, pop, size, empty, top)&lt;/li&gt;
&lt;li&gt;Python 리스트로 스택 구조 익히기&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;코드&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;940&quot; data-origin-height=&quot;933&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d6s1Yp/btsPiZLYv11/79eCm7xYRNGDS5LSEpGo41/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d6s1Yp/btsPiZLYv11/79eCm7xYRNGDS5LSEpGo41/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d6s1Yp/btsPiZLYv11/79eCm7xYRNGDS5LSEpGo41/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd6s1Yp%2FbtsPiZLYv11%2F79eCm7xYRNGDS5LSEpGo41%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;827&quot; height=&quot;821&quot; data-origin-width=&quot;940&quot; data-origin-height=&quot;933&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;결과&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;939&quot; data-origin-height=&quot;29&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vng4c/btsPkQmcWHS/A2APp0McHFZ4umdzRTOZrk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vng4c/btsPkQmcWHS/A2APp0McHFZ4umdzRTOZrk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vng4c/btsPkQmcWHS/A2APp0McHFZ4umdzRTOZrk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fvng4c%2FbtsPkQmcWHS%2FA2APp0McHFZ4umdzRTOZrk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;602&quot; height=&quot;19&quot; data-origin-width=&quot;939&quot; data-origin-height=&quot;29&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;9012번 &amp;mdash; 괄호&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;핵심 정리&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;괄호 짝이 맞는지 판별&lt;/li&gt;
&lt;li&gt;스택을 활용한 조건문 흐름 제어 학습&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;코드&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;940&quot; data-origin-height=&quot;525&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bHhFJq/btsPjIW35jY/e4FuImXyKxiByniQtneuSK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bHhFJq/btsPjIW35jY/e4FuImXyKxiByniQtneuSK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bHhFJq/btsPjIW35jY/e4FuImXyKxiByniQtneuSK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbHhFJq%2FbtsPjIW35jY%2Fe4FuImXyKxiByniQtneuSK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;925&quot; height=&quot;517&quot; data-origin-width=&quot;940&quot; data-origin-height=&quot;525&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;결과&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;940&quot; data-origin-height=&quot;29&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/9Q6kU/btsPjQtZXKm/OKC17XnWAiw2F28W9r3ekK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/9Q6kU/btsPjQtZXKm/OKC17XnWAiw2F28W9r3ekK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/9Q6kU/btsPjQtZXKm/OKC17XnWAiw2F28W9r3ekK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F9Q6kU%2FbtsPjQtZXKm%2FOKC17XnWAiw2F28W9r3ekK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;602&quot; height=&quot;19&quot; data-origin-width=&quot;940&quot; data-origin-height=&quot;29&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;4949번 &amp;mdash; 균형잡힌 세상&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;핵심 정리&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;다양한 괄호 형태 ((), []) 처리&lt;/li&gt;
&lt;li&gt;조건 분기와 예외 처리 중요&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;코드&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;940&quot; data-origin-height=&quot;845&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/s5pYW/btsPiX8o0qm/e6kjlcOfX2zUw5eg6s5s6K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/s5pYW/btsPiX8o0qm/e6kjlcOfX2zUw5eg6s5s6K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/s5pYW/btsPiX8o0qm/e6kjlcOfX2zUw5eg6s5s6K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fs5pYW%2FbtsPiX8o0qm%2Fe6kjlcOfX2zUw5eg6s5s6K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;821&quot; height=&quot;738&quot; data-origin-width=&quot;940&quot; data-origin-height=&quot;845&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;결과&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;940&quot; data-origin-height=&quot;31&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/D9feH/btsPk2GUv9l/kaK5MmyM7gr2Ltp5WQ5xr1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/D9feH/btsPk2GUv9l/kaK5MmyM7gr2Ltp5WQ5xr1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/D9feH/btsPk2GUv9l/kaK5MmyM7gr2Ltp5WQ5xr1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FD9feH%2FbtsPk2GUv9l%2FkaK5MmyM7gr2Ltp5WQ5xr1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;602&quot; height=&quot;20&quot; data-origin-width=&quot;940&quot; data-origin-height=&quot;31&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>파이썬 자료구조</category>
      <author>sm1118sm</author>
      <guid isPermaLink="true">https://sm021118.tistory.com/47</guid>
      <comments>https://sm021118.tistory.com/47#entry47comment</comments>
      <pubDate>Tue, 15 Jul 2025 20:29:57 +0900</pubDate>
    </item>
    <item>
      <title>[혼공자바 2주차] Chapter 04 ~ 05</title>
      <link>https://sm021118.tistory.com/42</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;혼자공부하는 자바 2주차 (p.156 ~ p.232)&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;04. 조건문과 반복문&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;04-1 조건문: if, switch&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;구문설명&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;if (조건) { 실행문; }&lt;/td&gt;
&lt;td&gt;조건이 참이면 블록 실행&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;if ... else&lt;/td&gt;
&lt;td&gt;조건이 거짓이면 else 블록 실행&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;if ... else if ... else&lt;/td&gt;
&lt;td&gt;다중 조건 분기 처리&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;switch (변수) { case 값: ... break; default: ... }&lt;/td&gt;
&lt;td&gt;변수의 값에 따라 분기 실행&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;예제 코드 (switch):&lt;/h4&gt;
&lt;pre class=&quot;angelscript&quot;&gt;&lt;code&gt;Scanner sc = new Scanner(System.in);
int a = sc.nextInt();

switch (a % 3) {
    case 1:
        System.out.println(1);
        break;
    case 2:
        System.out.println(2);
        break;
    default:
        System.out.println(3);
}&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;break&lt;/span&gt;&lt;span&gt; 문이 없으면 다음 case로 &quot;fall through&quot; 하니 주의!&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;04-2 반복문: for, while, do-while&lt;/h3&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;구문&lt;/td&gt;
&lt;td&gt;설명&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;for (초기식; 조건; 증감)&lt;/td&gt;
&lt;td&gt;반복 횟수가 정해졌을 때&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;while (조건)&lt;/td&gt;
&lt;td&gt;조건이 참일 동안 반복&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;do { ... } while (조건);&lt;/td&gt;
&lt;td&gt;최소 한 번은 실행 후 조건 검사&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;break: 반복문 강제 종료&lt;/li&gt;
&lt;li&gt;continue: 다음 반복으로 건너뜀&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;angelscript&quot;&gt;&lt;code&gt;for (int i = 0; i &amp;lt; 5; i++) {
    if (i == 3) continue;
    System.out.println(i); // 0 1 2 4
}&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;&lt;hr data-ke-style=&quot;style1&quot; /&gt;&lt;/div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;05. 참조 타입&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;05-1 참조 타입과 참조 변수&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-spread=&quot;false&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;기본 타입&lt;/b&gt;&lt;/span&gt;&lt;span&gt;: byte, short, char, int, long, float, double, boolean&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;참조 타입&lt;/b&gt;&lt;/span&gt;&lt;span&gt;: 배열, 클래스, 인터페이스, 열거형 등&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;메모리 구조&lt;/b&gt;&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-spread=&quot;false&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;메서드 영역: 클래스 정보, static&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;힙 영역: 객체 저장&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;스택 영역: 지역 변수 저장&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;참조 비교&lt;/b&gt;&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;==&lt;/span&gt;&lt;span&gt;은 주소(번지) 비교 &amp;rarr; 같은 객체 참조 여부 확인&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;null&lt;/b&gt;&lt;/span&gt;&lt;span&gt;: 객체가 없음을 의미하며, 이를 통해 NullPointerException 발생 가능&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;⚠️ null인 참조 변수로 메소드나 필드를 호출하면 예외 발생&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;05-2 배열&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;배열 선언&lt;/b&gt;: int[] arr;, String[] names;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;배열 생성&lt;/b&gt;:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;angelscript&quot;&gt;&lt;code&gt;int[] arr = {1, 2, 3};
String[] names = new String[3];&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;배열 길이&lt;/b&gt;: arr.length&lt;/li&gt;
&lt;li&gt;&lt;b&gt;다차원 배열&lt;/b&gt;:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;markdown&quot;&gt;&lt;code&gt;int[][] matrix = new int[2][3];
System.out.println(matrix.length);         // 2
System.out.println(matrix[0].length);      // 3&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;향상된 for문&lt;/b&gt;:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;less&quot;&gt;&lt;code&gt;for (int score : arr) {
    System.out.println(score);
}&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;  향상된 for문은 인덱스가 필요 없을 때 간결하게 사용 가능&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;05-3 열거 타입 (Enum)&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;선언&lt;/b&gt;:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;crystal&quot;&gt;&lt;code&gt;enum Week { MONDAY, TUESDAY, ..., SUNDAY }&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;사용&lt;/b&gt;:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;abnf&quot;&gt;&lt;code&gt;Week today = Week.FRIDAY;
System.out.println(today);&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-spread=&quot;false&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;특징&lt;/b&gt;&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-spread=&quot;false&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;타입 안정성 제공&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;코드 가독성 향상&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;열거형은 switch문과 함께 자주 사용됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;기본 숙제&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;p.142 직접 해보는 손코딩 실행 후 결과 화면 캡쳐하기&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1622&quot; data-origin-height=&quot;1525&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/n4moa/btsO5ts0BdJ/KPjnig6FcSZOSB02IBknHk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/n4moa/btsO5ts0BdJ/KPjnig6FcSZOSB02IBknHk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/n4moa/btsO5ts0BdJ/KPjnig6FcSZOSB02IBknHk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fn4moa%2FbtsO5ts0BdJ%2FKPjnig6FcSZOSB02IBknHk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1622&quot; height=&quot;1525&quot; data-origin-width=&quot;1622&quot; data-origin-height=&quot;1525&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;추가 숙제&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;p.223 하단 확인 문제 6번 풀고 정리하기&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2034&quot; data-origin-height=&quot;1919&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cGClHy/btsO7ipVC7c/Ij4dK3tjJhbaNnKei1Zkf0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cGClHy/btsO7ipVC7c/Ij4dK3tjJhbaNnKei1Zkf0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cGClHy/btsO7ipVC7c/Ij4dK3tjJhbaNnKei1Zkf0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcGClHy%2FbtsO7ipVC7c%2FIj4dK3tjJhbaNnKei1Zkf0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2034&quot; height=&quot;1919&quot; data-origin-width=&quot;2034&quot; data-origin-height=&quot;1919&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;809&quot; data-origin-height=&quot;1017&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bCYZWJ/btsO5VCxvp5/q38j3XnZnY7VZNRQWKzl10/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bCYZWJ/btsO5VCxvp5/q38j3XnZnY7VZNRQWKzl10/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bCYZWJ/btsO5VCxvp5/q38j3XnZnY7VZNRQWKzl10/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbCYZWJ%2FbtsO5VCxvp5%2Fq38j3XnZnY7VZNRQWKzl10%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;809&quot; height=&quot;1017&quot; data-origin-width=&quot;809&quot; data-origin-height=&quot;1017&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;전체 구조&lt;/h2&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;public&lt;/span&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&lt;span&gt;class&lt;/span&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&lt;span&gt;Main&lt;/span&gt;&lt;/span&gt;&lt;span&gt; { &lt;/span&gt;&lt;span&gt;&lt;span&gt;public&lt;/span&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&lt;span&gt;static&lt;/span&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&lt;span&gt;void&lt;/span&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&lt;span&gt;main&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;(String[] args)&lt;/span&gt;&lt;/span&gt;&lt;span&gt; { ... } } &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Main 클래스는 실행 진입점(main 메서드)을 가지고 있습니다.&lt;/li&gt;
&lt;li&gt;Scanner를 이용해 사용자 입력을 반복적으로 받아 처리합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;주요 변수 설명&lt;/h2&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;int&lt;/span&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&lt;span&gt;studentNum&lt;/span&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&lt;span&gt;=&lt;/span&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&lt;span&gt;0&lt;/span&gt;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;int&lt;/span&gt;&lt;/span&gt;&lt;span&gt;[] scores = {&lt;/span&gt;&lt;span&gt;&lt;span&gt;0&lt;/span&gt;&lt;/span&gt;&lt;span&gt;,};&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;Scanner&lt;/span&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&lt;span&gt;scanner&lt;/span&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&lt;span&gt;=&lt;/span&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&lt;span&gt;new&lt;/span&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&lt;span&gt;Scanner&lt;/span&gt;&lt;/span&gt;&lt;span&gt;(System.in); &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;변수명설명
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-end=&quot;541&quot; data-start=&quot;371&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody data-end=&quot;541&quot; data-start=&quot;402&quot;&gt;
&lt;tr data-end=&quot;446&quot; data-start=&quot;402&quot;&gt;
&lt;td data-col-size=&quot;sm&quot; data-end=&quot;417&quot; data-start=&quot;402&quot;&gt;studentNum&lt;/td&gt;
&lt;td data-end=&quot;446&quot; data-start=&quot;417&quot; data-col-size=&quot;sm&quot;&gt;학생 수를 저장하는 정수 변수 (초기값: 0)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;498&quot; data-start=&quot;447&quot;&gt;
&lt;td data-col-size=&quot;sm&quot; data-end=&quot;458&quot; data-start=&quot;447&quot;&gt;scores&lt;/td&gt;
&lt;td data-end=&quot;498&quot; data-start=&quot;458&quot; data-col-size=&quot;sm&quot;&gt;학생들의 점수를 저장할 정수형 배열 (초기엔 {0}으로 초기화됨)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;541&quot; data-start=&quot;499&quot;&gt;
&lt;td data-col-size=&quot;sm&quot; data-end=&quot;511&quot; data-start=&quot;499&quot;&gt;scanner&lt;/td&gt;
&lt;td data-end=&quot;541&quot; data-start=&quot;511&quot; data-col-size=&quot;sm&quot;&gt;사용자 입력을 받기 위한 Scanner 객체&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;메뉴 루프&lt;/h2&gt;
&lt;div&gt;
&lt;div&gt;while(true)&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.out.println(&quot;1.학생수&amp;nbsp;|&amp;nbsp;2.점수입력&amp;nbsp;|&amp;nbsp;3.점수리스트&amp;nbsp;|&amp;nbsp;4.분석&amp;nbsp;|&amp;nbsp;5.종료&quot;); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;... &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int&amp;nbsp;a&amp;nbsp;=&amp;nbsp;Integer.parseInt(scanner.nextLine());&lt;/div&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;무한 루프 (while(true))로 사용자가 5. 종료를 선택할 때까지 계속 실행&lt;/li&gt;
&lt;li&gt;사용자에게 메뉴를 보여주고, 숫자(1~5)를 입력 받음 &amp;rarr; int a&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;조건별 분기 처리&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1. a == 1 &amp;rarr; 학생 수 입력&lt;/h3&gt;
&lt;div&gt;
&lt;div&gt;studentNum&amp;nbsp;=&amp;nbsp;Integer.parseInt(scanner.nextLine());&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;scores&amp;nbsp;=&amp;nbsp;new&amp;nbsp;int[studentNum];&lt;/div&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;사용자로부터 학생 수 입력 받아 studentNum에 저장&lt;/li&gt;
&lt;li&gt;해당 크기만큼의 scores 배열 새로 생성 &amp;rarr; 이전 내용은 초기화됨&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2. a == 2 &amp;rarr; 점수 입력&lt;/h3&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;for&amp;nbsp;(int&amp;nbsp;i&amp;nbsp;=&amp;nbsp;0;&amp;nbsp;i&amp;nbsp;&amp;lt;&amp;nbsp;scores.length;&amp;nbsp;i++)&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.out.print&lt;a href=&quot;http://m.out.print(&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;(&lt;/a&gt;&quot;scores[&quot;&amp;nbsp;+&amp;nbsp;i&amp;nbsp;+&amp;nbsp;&quot;]&amp;gt;&amp;nbsp;&quot;); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;scores[i]&amp;nbsp;=&amp;nbsp;Integer.parseInt(scanner.nextLine()); &lt;br /&gt;}&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;학생 수만큼 반복하며 점수 입력 받음&lt;/li&gt;
&lt;li&gt;입력 받은 점수를 scores 배열에 저장&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3. a == 3 &amp;rarr; 점수 리스트 출력&lt;/h3&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;for&amp;nbsp;(int&amp;nbsp;i&amp;nbsp;=&amp;nbsp;0;&amp;nbsp;i&amp;nbsp;&amp;lt;&amp;nbsp;scores.length;&amp;nbsp;i++)&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.out.println(&quot;scores[&quot;&amp;nbsp;+&amp;nbsp;i&amp;nbsp;+&amp;nbsp;&quot;]&amp;gt;&amp;nbsp;&quot;&amp;nbsp;+&amp;nbsp;scores[i]); &lt;br /&gt;}&lt;/div&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;scores 배열에 저장된 점수들을 출력함&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;4. a == 4 &amp;rarr; 최고 점수 및 평균 분석&lt;/h3&gt;
&lt;div&gt;&lt;br /&gt;
&lt;div&gt;int&amp;nbsp;max&amp;nbsp;=&amp;nbsp;0; &lt;br /&gt;double&amp;nbsp;avg&amp;nbsp;=&amp;nbsp;0; &lt;br /&gt;&lt;br /&gt;for&amp;nbsp;(int&amp;nbsp;i&amp;nbsp;=&amp;nbsp;0;&amp;nbsp;i&amp;nbsp;&amp;lt;&amp;nbsp;scores.length;&amp;nbsp;i++)&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;(max&amp;nbsp;&amp;lt;&amp;nbsp;scores[i])&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;max&amp;nbsp;=&amp;nbsp;scores[i]; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;avg&amp;nbsp;+=&amp;nbsp;scores[i]; &lt;br /&gt;} &lt;br /&gt;System.out.println(&quot;최고&amp;nbsp;점수:&amp;nbsp;&quot;&amp;nbsp;+&amp;nbsp;max); &lt;br /&gt;System.out.println(&quot;평균&amp;nbsp;점수:&amp;nbsp;&quot;&amp;nbsp;+&amp;nbsp;avg&amp;nbsp;/&amp;nbsp;scores.length);&lt;/div&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;최고 점수(max)를 0부터 시작해서 갱신&lt;/li&gt;
&lt;li&gt;평균(avg)은 합계를 누적해서 마지막에 전체 인원수로 나눔&lt;/li&gt;
&lt;li&gt;max &amp;lt; scores[i] 조건으로 최댓값 탐색&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;5. 그 외 (else) &amp;rarr; 프로그램 종료&lt;/h3&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;span&gt;System.out.println(&lt;/span&gt;&lt;span&gt;&lt;span&gt;&quot;프로그램 종료&quot;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;); &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;break&lt;/span&gt;&lt;/span&gt;&lt;span&gt;; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;1~4 외의 숫자(예: 5)가 입력되면 종료 메시지를 출력하고 while 루프 탈출&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>혼공</category>
      <author>sm1118sm</author>
      <guid isPermaLink="true">https://sm021118.tistory.com/42</guid>
      <comments>https://sm021118.tistory.com/42#entry42comment</comments>
      <pubDate>Mon, 7 Jul 2025 22:34:17 +0900</pubDate>
    </item>
    <item>
      <title>[혼공자바 1주차] Chapter 01 ~ 03</title>
      <link>https://sm021118.tistory.com/41</link>
      <description>&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;혼자공부하는 자바 1주차 (p.28 ~ p.153)&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b55Gez/btsOQKzJs09/KPspGxyMEQhKnd7cbl38J0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b55Gez/btsOQKzJs09/KPspGxyMEQhKnd7cbl38J0/img.jpg&quot; data-origin-width=&quot;2504&quot; data-origin-height=&quot;3671&quot; data-is-animation=&quot;false&quot; data-filename=&quot;KakaoTalk_20250624_163319428.jpg&quot; data-widthpercent=&quot;50.04&quot; style=&quot;width: 49.4606%; margin-right: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b55Gez/btsOQKzJs09/KPspGxyMEQhKnd7cbl38J0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb55Gez%2FbtsOQKzJs09%2FKPspGxyMEQhKnd7cbl38J0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2504&quot; height=&quot;3671&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/djVJEl/btsOQeux5BX/eNDvA5p39mQAPF5jz5kpbk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/djVJEl/btsOQeux5BX/eNDvA5p39mQAPF5jz5kpbk/img.jpg&quot; data-origin-width=&quot;3402&quot; data-origin-height=&quot;4996&quot; data-is-animation=&quot;false&quot; data-filename=&quot;KakaoTalk_20250624_163319428_01.jpg&quot; style=&quot;width: 49.3766%;&quot; data-widthpercent=&quot;49.96&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/djVJEl/btsOQeux5BX/eNDvA5p39mQAPF5jz5kpbk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdjVJEl%2FbtsOQeux5BX%2FeNDvA5p39mQAPF5jz5kpbk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3402&quot; height=&quot;4996&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/v710m/btsOOJbdUJQ/yagCJ8UKO3KFNlDUmCvft0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/v710m/btsOOJbdUJQ/yagCJ8UKO3KFNlDUmCvft0/img.jpg&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;2262&quot; data-origin-height=&quot;1757&quot; data-filename=&quot;KakaoTalk_20250624_163319428_03.jpg&quot; style=&quot;width: 68.5364%; margin-right: 10px;&quot; data-widthpercent=&quot;69.34&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/v710m/btsOOJbdUJQ/yagCJ8UKO3KFNlDUmCvft0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fv710m%2FbtsOOJbdUJQ%2FyagCJ8UKO3KFNlDUmCvft0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2262&quot; height=&quot;1757&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/egQEpU/btsOPICFQCW/UHmK8IrifoPIHwTWZsjWg0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/egQEpU/btsOPICFQCW/UHmK8IrifoPIHwTWZsjWg0/img.jpg&quot; data-origin-width=&quot;1921&quot; data-origin-height=&quot;3375&quot; data-is-animation=&quot;false&quot; data-filename=&quot;KakaoTalk_20250624_163319428_02.jpg&quot; data-widthpercent=&quot;30.66&quot; style=&quot;width: 30.3008%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/egQEpU/btsOPICFQCW/UHmK8IrifoPIHwTWZsjWg0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FegQEpU%2FbtsOPICFQCW%2FUHmK8IrifoPIHwTWZsjWg0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1921&quot; height=&quot;3375&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/F4gHq/btsOQBbJO3e/UmjN52bvjU1bYUPkEPXFI1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/F4gHq/btsOQBbJO3e/UmjN52bvjU1bYUPkEPXFI1/img.jpg&quot; data-origin-width=&quot;2402&quot; data-origin-height=&quot;2237&quot; data-is-animation=&quot;false&quot; data-filename=&quot;KakaoTalk_20250624_163319428_04.jpg&quot; style=&quot;width: 65.4643%; margin-right: 10px;&quot; data-widthpercent=&quot;66.23&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/F4gHq/btsOQBbJO3e/UmjN52bvjU1bYUPkEPXFI1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FF4gHq%2FbtsOQBbJO3e%2FUmjN52bvjU1bYUPkEPXFI1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2402&quot; height=&quot;2237&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/k8WQj/btsOQlGXeAz/zuAuEInswGKuJkT1WKEug1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/k8WQj/btsOQlGXeAz/zuAuEInswGKuJkT1WKEug1/img.jpg&quot; data-origin-width=&quot;2108&quot; data-origin-height=&quot;3851&quot; data-is-animation=&quot;false&quot; data-filename=&quot;KakaoTalk_20250624_163319428_05.jpg&quot; style=&quot;width: 33.3729%;&quot; data-widthpercent=&quot;33.77&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/k8WQj/btsOQlGXeAz/zuAuEInswGKuJkT1WKEug1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fk8WQj%2FbtsOQlGXeAz%2FzuAuEInswGKuJkT1WKEug1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2108&quot; height=&quot;3851&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-pm-slice=&quot;1 3 []&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;01. 자바 시작하기&lt;/span&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span&gt;01-1 프로그래미닝 언어와 자바&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-spread=&quot;false&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&lt;b&gt;프로그래밍 언어란?&lt;/b&gt;&lt;/span&gt;&lt;span&gt; 사람이 이해할 수 있는 언어로, 기계어와 인간 언어의 중간 다리 역할. (C, Java, Python 등)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;파일 구성: &lt;/span&gt;&lt;span&gt;.java&lt;/span&gt;&lt;span&gt; (소스파일) &amp;rarr; &lt;/span&gt;&lt;span&gt;javac&lt;/span&gt;&lt;span&gt; 컴파일 &amp;rarr; &lt;/span&gt;&lt;span&gt;.class&lt;/span&gt;&lt;span&gt; 바이트코드 &amp;rarr; &lt;/span&gt;&lt;span&gt;java&lt;/span&gt;&lt;span&gt; 실행 (JVM 사용)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;JDK&lt;/b&gt;&lt;/span&gt;&lt;span&gt;: 자바 개발 키트. JRE + 컴파일러 + 디버깅 도구 포함.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;환경변수&lt;/b&gt;&lt;/span&gt;&lt;span&gt; 설정 필수: &lt;/span&gt;&lt;span&gt;JAVA_HOME&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;Path&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;&lt;b&gt;팁&lt;/b&gt;&lt;/span&gt;&lt;span&gt;: Windows 기준 &lt;/span&gt;&lt;span&gt;시스템 속성 &amp;gt; 고급 &amp;gt; 환경 변수&lt;/span&gt;&lt;span&gt; 에서 등록 가능.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span&gt;01-2 이클립스 개발 환경 구축&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-spread=&quot;false&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;Eclipse&lt;/b&gt;&lt;/span&gt;&lt;span&gt;: 오픈소스 IDE로 자동 완성, 디버깅, 프로젝트 관리 지원.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;워크스페이스&lt;/b&gt;&lt;/span&gt;&lt;span&gt;: 이클립스의 작업 폴더&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;뷰(View)&lt;/b&gt;&lt;/span&gt;&lt;span&gt;: 코드 편집, 콘솔 등 기능 창&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;퍼스펙티브(Perspective)&lt;/b&gt;&lt;/span&gt;&lt;span&gt;: 개발 유형에 맞춘 뷰 레이아웃 구성&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;b&gt;추천&lt;/b&gt;&lt;/span&gt;&lt;span&gt;: IntelliJ IDEA는 상용이지만 UI와 자동 완성이 더 뛰어남.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span&gt;01-3 자바 프&lt;/span&gt;&lt;span&gt;로그램 개발 과정&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-spread=&quot;false&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;클래스&lt;/b&gt;&lt;/span&gt;&lt;span&gt;: 자바의 기본 단위. &lt;/span&gt;&lt;span&gt;class 클래스이름 { ... }&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;main() 메소드&lt;/b&gt;&lt;/span&gt;&lt;span&gt;: 자바 프로그램의 실행 시작점&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;주석&lt;/b&gt;&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;// 한 줄&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;/* 여러 줄 */&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;실행문&lt;/b&gt;&lt;/span&gt;&lt;span&gt;: 변수 선언, 메소드 호출 등. &lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt; 필수!&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;arduino&quot;&gt;&lt;code&gt;public class Hello {
    public static void main(String[] args) {
        System.out.println(&quot;Hello, Java!&quot;);
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;&lt;hr data-ke-style=&quot;style1&quot; /&gt;&lt;/div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;02. 변수와 타입&lt;/span&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span&gt;02-1 변수&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-spread=&quot;false&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;변수란?&lt;/b&gt;&lt;/span&gt;&lt;span&gt; 메모리의 특정 위치에 이름을 붙인 것&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;변수 선언: &lt;/span&gt;&lt;span&gt;타입 변수명;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;변수 범위: 선언된 블록 내부에서만 유효&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span&gt;02-2 기본 타입&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;타입예시설명&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;int&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;int a = 10;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;정수형&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;float&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;float b = 1.5f;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;소수점 포함 실수&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;char&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;char c = 'A';&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;문자 하나&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;String&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;String s = &quot;Java&quot;;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;문자열 객체&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;boolean&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;boolean flag = true;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;참/거짓&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;char&lt;/span&gt;&lt;span&gt;은 &lt;/span&gt;&lt;span&gt;'&lt;/span&gt;&lt;span&gt; 사용, &lt;/span&gt;&lt;span&gt;String&lt;/span&gt;&lt;span&gt;은 &lt;/span&gt;&lt;span&gt;&quot;&lt;/span&gt;&lt;span&gt; 사용!&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span&gt;02-3 타입 변환&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-spread=&quot;false&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;자동 변환&lt;/b&gt;&lt;/span&gt;&lt;span&gt;: 작은 타입 &amp;rarr; 큰 타입 (데이터 손실 없음)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;angelscript&quot;&gt;&lt;code&gt;int a = 3;
double d = a; // 자동 변환&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-spread=&quot;false&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;강제 변환&lt;/b&gt;&lt;/span&gt;&lt;span&gt;: 큰 타입 &amp;rarr; 작은 타입 (데이터 손실 가능)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;angelscript&quot;&gt;&lt;code&gt;double d = 3.9;
int a = (int) d; // a는 3&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-spread=&quot;false&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;문자열 &amp;rarr; 숫자&lt;/b&gt;&lt;/span&gt;&lt;span&gt; 변환&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;reasonml&quot;&gt;&lt;code&gt;int n = Integer.parseInt(&quot;123&quot;);
double d = Double.parseDouble(&quot;3.14&quot;);&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span&gt;02-4 변수와 시스템 입출력&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-spread=&quot;false&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;출력&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;reasonml&quot;&gt;&lt;code&gt;System.out.println(&quot;Hello&quot;); // 줄바꿈
System.out.print(&quot;Hello&quot;);   // 줄바꿈 없음
System.out.printf(&quot;나이: %d&quot;, 25);&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-spread=&quot;false&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;입력 (Scanner 사용)&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;reasonml&quot;&gt;&lt;code&gt;Scanner sc = new Scanner(System.in);
int num = sc.nextInt();&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;nextLine()&lt;/span&gt;&lt;span&gt;은 한 줄 전체 읽기, &lt;/span&gt;&lt;span&gt;next()&lt;/span&gt;&lt;span&gt;는 단어 단위로 읽기&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div&gt;&lt;hr data-ke-style=&quot;style1&quot; /&gt;&lt;/div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;03. 연산자&lt;/span&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span&gt;03-1 연산자와 연산식&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-spread=&quot;false&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;연산자&lt;/b&gt;&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;-&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;*&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;/&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;%&lt;/span&gt;&lt;span&gt; (산술), &lt;/span&gt;&lt;span&gt;==&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;!=&lt;/span&gt;&lt;span&gt; (비교), &lt;/span&gt;&lt;span&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;||&lt;/span&gt;&lt;span&gt; (논리), &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;+=&lt;/span&gt;&lt;span&gt; (대입)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;연산 방향&lt;/b&gt;&lt;/span&gt;&lt;span&gt;: 대부분 왼&amp;rarr;오, 대입은 오&amp;rarr;왼&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;우선순위&lt;/b&gt;&lt;/span&gt;&lt;span&gt;: 괄호(&lt;/span&gt;&lt;span&gt;()&lt;/span&gt;&lt;span&gt;)로 명확히 정리 가능&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span&gt;03-2 연산자 종류&lt;/span&gt;&lt;/h3&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;종류&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;예시&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;설명&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;증감&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;i++&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;--j&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;값 1 증가/감소&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;비교&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;a == b&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;같은지 비교&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;논리&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;a &amp;amp;&amp;amp; b&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;!a&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;조건 결합&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;대입&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;x += 2&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;연산 후 대입&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;삼항&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;(조건) ? A : B&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;조건식 결과 분기&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;기본 숙제&amp;nbsp; &lt;/span&gt;-&amp;gt; &lt;/b&gt;JDK 설치 화면 인증하기&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처.PNG&quot; data-origin-width=&quot;1088&quot; data-origin-height=&quot;457&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pIw4D/btsOPVopWsx/eHZnK0GPvzFPD9NQYLSkhk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pIw4D/btsOPVopWsx/eHZnK0GPvzFPD9NQYLSkhk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pIw4D/btsOPVopWsx/eHZnK0GPvzFPD9NQYLSkhk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpIw4D%2FbtsOPVopWsx%2FeHZnK0GPvzFPD9NQYLSkhk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1088&quot; height=&quot;457&quot; data-filename=&quot;캡처.PNG&quot; data-origin-width=&quot;1088&quot; data-origin-height=&quot;457&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;bin : 개발할 대 필요한 도구들이 있습니다. 자바 컴파일러와 자바 실행 명령어가 이 폴더에 저장되어 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;conf : 자바 개발자, 배포자 및 최종 사용자가 편집할 수 있는 설정 파일들이 저장되어 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;include : 자바를 C언어로 작성된 프로그램과 통합하는데 필요한 파일이 저장되어 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;jmods : 컴파일된 자바 모듈들이 저장되어 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;legal : 저작권 및 라이선스 파일이 저장되어 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;lib : 자바 프로그램 실행 환경과 관련된 세부 정보 파일들이 저장되어 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기타 파일 : 라이선스 및 jdk 릴리즈 정보 등이 저장되어 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처2.PNG&quot; data-origin-width=&quot;930&quot; data-origin-height=&quot;261&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bk98hN/btsOPYFshot/Q1DFXCqlVoxWXtzo7A4Tm0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bk98hN/btsOPYFshot/Q1DFXCqlVoxWXtzo7A4Tm0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bk98hN/btsOPYFshot/Q1DFXCqlVoxWXtzo7A4Tm0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbk98hN%2FbtsOPYFshot%2FQ1DFXCqlVoxWXtzo7A4Tm0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;930&quot; height=&quot;261&quot; data-filename=&quot;캡처2.PNG&quot; data-origin-width=&quot;930&quot; data-origin-height=&quot;261&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처3.PNG&quot; data-origin-width=&quot;749&quot; data-origin-height=&quot;825&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rdyqh/btsON2vQiYz/iqrptNKPi84w22dlChmga0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rdyqh/btsON2vQiYz/iqrptNKPi84w22dlChmga0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rdyqh/btsON2vQiYz/iqrptNKPi84w22dlChmga0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Frdyqh%2FbtsON2vQiYz%2FiqrptNKPi84w22dlChmga0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;749&quot; height=&quot;825&quot; data-filename=&quot;캡처3.PNG&quot; data-origin-width=&quot;749&quot; data-origin-height=&quot;825&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처4.PNG&quot; data-origin-width=&quot;678&quot; data-origin-height=&quot;328&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/k70x1/btsOPHDKeOl/aeTdA8yv5ufGRZb8vVlqe1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/k70x1/btsOPHDKeOl/aeTdA8yv5ufGRZb8vVlqe1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/k70x1/btsOPHDKeOl/aeTdA8yv5ufGRZb8vVlqe1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fk70x1%2FbtsOPHDKeOl%2FaeTdA8yv5ufGRZb8vVlqe1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;678&quot; height=&quot;328&quot; data-filename=&quot;캡처4.PNG&quot; data-origin-width=&quot;678&quot; data-origin-height=&quot;328&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;추가 숙제&lt;/span&gt;&lt;/b&gt;&amp;nbsp; -&amp;gt;&amp;nbsp; p.110 확인 문제 9번에 들어갈 코드를 2가지 이상 작성해보기&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;9. var1부터 var4까지 + 연산을 수행해서 int 타입 result 변수에 9가 저장되도록 코드를 작성해보세요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;long var1 = 2L;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;float var2 = 1.8f;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;double var3 = 2.5;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;String var4 = &quot;3.9&quot;;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;int result = (int) var1 + 이 부분 채우기;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;System.out.println(result);&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나의 답&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. (int) (var1 + var2 + var3 + (int) Double.parseDouble(var4))&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. (int) var1 + (int) var2 + (int) (var3 + Double.parseDouble(var4))&lt;/p&gt;</description>
      <category>혼공</category>
      <category>혼공자</category>
      <category>혼공학습단</category>
      <category>혼자공부하는자바</category>
      <author>sm1118sm</author>
      <guid isPermaLink="true">https://sm021118.tistory.com/41</guid>
      <comments>https://sm021118.tistory.com/41#entry41comment</comments>
      <pubDate>Tue, 1 Jul 2025 17:26:52 +0900</pubDate>
    </item>
    <item>
      <title>파이썬 자료구조 (2) 투 포인터</title>
      <link>https://sm021118.tistory.com/46</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;투 포인터 알고리즘 : 리스트에 순차적으로 접근해야 할 때 두 개의 점의 위치를 기록하면서 처리하는 알고리즘을 의미합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;흔히 2, 3, 4, 5, 6, 7번 학생을 지목해야 할 때 간단히 2번부터 7번까지의 학생이라고 부르곤 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;리스트에 담긴 데이터에 순차적으로 접근해야 할 때는 시작점과 끝점 2개의 점으로 접근할 데이터의 범위를 표현할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;투 포인터를 활용하여 다음과 같은 알고리즘으로 문제를 해결할 수 있습니다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;시작점과 끝점이 첫 번째 원소의 인덱스를 가리키도록 합니다.&lt;/li&gt;
&lt;li&gt;현재 부분 합이 M과 같다면, 카운트합니다&lt;/li&gt;
&lt;li&gt;현재 부분 합이 M보다 작다면, end를 1 증가시킵니다&lt;/li&gt;
&lt;li&gt;현재 부분 합이 M보다 크거나 같다면, start를 1 증가시킵니다&lt;/li&gt;
&lt;li&gt;모든 경우를 확인할 때까지 2번부터 4번까지의 과정을 반복합니다&lt;/li&gt;
&lt;/ol&gt;
&lt;table style=&quot;border-collapse: collapse; width: 66.977%; height: 107px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 20%; text-align: center;&quot;&gt;&lt;b&gt;1&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 20%; text-align: center;&quot;&gt;&lt;b&gt;2&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 20%; text-align: center;&quot;&gt;&lt;b&gt;4&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 20%; text-align: center;&quot;&gt;&lt;b&gt;3&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 20%; text-align: center;&quot;&gt;&lt;b&gt;1&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;예제 1) 수들의 합 5 (백준 2018번)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/2018&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.acmicpc.net/problem/2018&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파이썬 코드&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;import&amp;nbsp;sys &lt;br /&gt;input = sys.stdin.readline&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;num = int(input())&lt;br /&gt;start&amp;nbsp;=&amp;nbsp;1 &lt;br /&gt;end&amp;nbsp;=&amp;nbsp;1 &lt;br /&gt;count&amp;nbsp;=&amp;nbsp;1 &lt;br /&gt;sumValue&amp;nbsp;=&amp;nbsp;1 &lt;br /&gt;&lt;br /&gt;while&amp;nbsp;end&amp;nbsp;!=&amp;nbsp;num: &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;sumValue&amp;nbsp;==&amp;nbsp;num: &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;count&amp;nbsp;+=&amp;nbsp;1 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end&amp;nbsp;+=&amp;nbsp;1 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sumValue&amp;nbsp;+=&amp;nbsp;end &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;elif&amp;nbsp;sumValue&amp;nbsp;&amp;lt;&amp;nbsp;num: &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end&amp;nbsp;+=&amp;nbsp;1 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sumValue&amp;nbsp;+=&amp;nbsp;end &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else: &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sumValue&amp;nbsp;-=&amp;nbsp;start &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;start&amp;nbsp;+=&amp;nbsp;1 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;br /&gt;print(count) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;예제 2) 주몽 (백준 1940번)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/1940&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.acmicpc.net/problem/1940&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파이썬 코드&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;import&amp;nbsp;sys &lt;br /&gt;&lt;br /&gt;input&amp;nbsp;=&amp;nbsp;sys.stdin.readline &lt;br /&gt;&lt;br /&gt;n&amp;nbsp;=&amp;nbsp;int(input()) &lt;br /&gt;m&amp;nbsp;=&amp;nbsp;int(input()) &lt;br /&gt;list1&amp;nbsp;=&amp;nbsp;list(map(int,&amp;nbsp;input().split())) &lt;br /&gt;&lt;br /&gt;list1.sort() &lt;br /&gt;&lt;br /&gt;count&amp;nbsp;=&amp;nbsp;0 &lt;br /&gt;front&amp;nbsp;=&amp;nbsp;0 &lt;br /&gt;end&amp;nbsp;=&amp;nbsp;n&amp;nbsp;-&amp;nbsp;1 &lt;br /&gt;&lt;br /&gt;while&amp;nbsp;front&amp;nbsp;&amp;lt;&amp;nbsp;end: &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;list1[front]&amp;nbsp;+&amp;nbsp;list1[end]&amp;nbsp;&amp;lt;&amp;nbsp;m: &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;front&amp;nbsp;+=&amp;nbsp;1 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;elif&amp;nbsp;list1[front]&amp;nbsp;+&amp;nbsp;list1[end]&amp;nbsp;&amp;gt;&amp;nbsp;m: &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end&amp;nbsp;-=&amp;nbsp;1 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else: &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;count&amp;nbsp;+=&amp;nbsp;1 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;front&amp;nbsp;+=&amp;nbsp;1 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end&amp;nbsp;-=&amp;nbsp;1 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;print(count)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>파이썬 자료구조</category>
      <author>sm1118sm</author>
      <guid isPermaLink="true">https://sm021118.tistory.com/46</guid>
      <comments>https://sm021118.tistory.com/46#entry46comment</comments>
      <pubDate>Wed, 25 Jun 2025 21:37:52 +0900</pubDate>
    </item>
    <item>
      <title>파이썬 자료구조 (1) 구간 합</title>
      <link>https://sm021118.tistory.com/45</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;구간 합&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;합 배열 S 정의
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;S[ i ] = A [ 0 ] + A [ 1 ] + A [ 2 ] + ... +&amp;nbsp; A [ i - 1 ] + A [ i ]&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;합 배열 S를 만드는 공식
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;S[ i ] = S[ i - 1 ] + A[ i ]&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;구간 합을 구하는 공식
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;S[ j ] - S[ i - 1 ]&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;예제 1) 구간 합 구하기 4 (백준 11659번)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/11659&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.acmicpc.net/problem/11659&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파이썬 코드&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;import sys&lt;br /&gt;input = sys.stdin.readline&lt;br /&gt;a, b = map(int, input().split())&lt;br /&gt;num = list(map(int, input().split()))&lt;br /&gt;sumList = [0]&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;for&amp;nbsp;i&amp;nbsp;in&amp;nbsp;range(a): &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sumList.append(num[i] + sumList[i])&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;for&amp;nbsp;i&amp;nbsp;in&amp;nbsp;range(b): &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;k,&amp;nbsp;q&amp;nbsp;=&amp;nbsp;map(int,&amp;nbsp;input().split()) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print(sumList[q]&amp;nbsp;-&amp;nbsp;sumList[k-1])&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;예제 2) 구간 합 구하기 5 (백준 11660번)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/11660&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.acmicpc.net/problem/11660&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파이썬 코드&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;import sys&lt;br /&gt;input = sys.stdin.readline&lt;br /&gt;n, m = map(int, input().split())&lt;br /&gt;a&amp;nbsp;=&amp;nbsp;[[0]&amp;nbsp;*&amp;nbsp;(n+1)] &lt;br /&gt;d&amp;nbsp;=&amp;nbsp;[[0]&amp;nbsp;*&amp;nbsp;(n+1)&amp;nbsp;for&amp;nbsp;_&amp;nbsp;in&amp;nbsp;range(n+1)] &lt;br /&gt;&lt;br /&gt;for&amp;nbsp;i&amp;nbsp;in&amp;nbsp;range(n): &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;row&amp;nbsp;=&amp;nbsp;[0]&amp;nbsp;+&amp;nbsp;[int(x)&amp;nbsp;for&amp;nbsp;x&amp;nbsp;in&amp;nbsp;input().split()] &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;a.append(row) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;for&amp;nbsp;i&amp;nbsp;in&amp;nbsp;range(1,&amp;nbsp;n+1): &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for&amp;nbsp;j&amp;nbsp;in&amp;nbsp;range(1,&amp;nbsp;n+1): &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;d[ i ][ j ] = d[ i-1 ][ j ] + d[ i ][ j-1 ] - d[ i-1 ][ j-1 ] + a[ i ][ j ] &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;for&amp;nbsp;k&amp;nbsp;in&amp;nbsp;range(m): &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;x1,&amp;nbsp;y1,&amp;nbsp;x2,&amp;nbsp;y2&amp;nbsp;=&amp;nbsp;map(int,&amp;nbsp;input().split()) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;result = d[ x2 ][ y2 ] - d[ x1-1 ][ y2 ] - d[ x2 ][ y1-1 ] + d[ x1-1 ][ y1-1 ] &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print(result)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;합 배열과 구간 합 공식을 적재적소에 활용하면 코딩 테스트에서 시간 복잡도를 줄이는 데 많은 도움이 될 것입니다.&lt;/p&gt;</description>
      <category>파이썬 자료구조</category>
      <author>sm1118sm</author>
      <guid isPermaLink="true">https://sm021118.tistory.com/45</guid>
      <comments>https://sm021118.tistory.com/45#entry45comment</comments>
      <pubDate>Wed, 25 Jun 2025 19:31:29 +0900</pubDate>
    </item>
    <item>
      <title>시간복잡도</title>
      <link>https://sm021118.tistory.com/44</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;시간복잡도&lt;/b&gt; : 주어진 문제를 해결하기 위한 연산 횟수, 일반적으로 파이썬은 2000 만번 ~ 1억 번의 연산을 1초의 수행 시간으로 예측할 수 있습니다.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;시간 복잡도 유형
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;빅-오메가 ( &amp;Omega;(n) ) : 최선일 때의 연산 횟수를 나타낸 표기법&lt;/li&gt;
&lt;li&gt;빅-세타 ( &amp;Theta;(n) ) : 보통(평균) 일 때의 연산 횟수를 나타낸 표기법&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;빅-오 ( O(n) )&lt;/b&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;: 최악일 때의 연산 횟수를 나타낸 표기법 -&amp;gt; 가장 많이 사용함&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;코딩 테스트에서는 어떤 시간 복잡도 유형을 사용해야 할까?&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;-&amp;gt; 코딩 테스트에서는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;빅-오 표기법 ( O(n) )&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;기준으로 수행 시간을 계산하는 것이 좋습니다.&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt; &lt;b&gt;빅-오 표기법 ( O(n) )&lt;/b&gt; 의 주요 시간 복잡도 종류&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;image.png&quot; data-origin-width=&quot;2174&quot; data-origin-height=&quot;1014&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/RRs3p/btsOQAyXZzC/JCMLmY1AxRhutCn7zcnk2k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/RRs3p/btsOQAyXZzC/JCMLmY1AxRhutCn7zcnk2k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/RRs3p/btsOQAyXZzC/JCMLmY1AxRhutCn7zcnk2k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRRs3p%2FbtsOQAyXZzC%2FJCMLmY1AxRhutCn7zcnk2k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;652&quot; height=&quot;304&quot; data-filename=&quot;image.png&quot; data-origin-width=&quot;2174&quot; data-origin-height=&quot;1014&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot;&gt;O(N) : 5N+3, 2N+10logN, 10N&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot;&gt;O(N^2) : N^2+2n+4, 6N^2+12logN&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot;&gt;O(NlogN) : NlogN + 30N+ 10, 3NlogN&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot;&gt;O(logN) : 3logN, logN+3&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot;&gt;O(1): 5, 16, 46&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;상수 시간&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;O(1)&lt;/td&gt;
&lt;td&gt;입력 크기와 상관없이 항상 일정한 시간 ex) 배열에서 인덱스로 값 찾기&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;로그 시간&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;O(log n)&lt;/td&gt;
&lt;td&gt;입력이 커질수록 느리게 증가 ex) 이진 탐색&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;선형 시간&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;O(n)&lt;/td&gt;
&lt;td&gt;입력 크기에 비례 ex) 배열 전체 순회&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;로그-선형&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;O(n log n)&lt;/td&gt;
&lt;td&gt;정렬 알고리즘에서 자주 등장 ex) 머지 정렬, 퀵 정렬 평균&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;제곱 시간&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;O(n&amp;sup2;)&lt;/td&gt;
&lt;td&gt;중첩 반복문 등 ex) 버블 정렬, 삽입 정렬&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;지수 시간&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;O(2^n)&lt;/td&gt;
&lt;td&gt;매우 느림. 입력이 조금만 커져도 실행 시간이 급증 ex) 부분집합, 재귀 백트래킹&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;팩토리얼 시간&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;O(n!)&lt;/td&gt;
&lt;td&gt;극도로 느림. ex) 순열 계산, 완전탐색(브루트포스)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>파이썬 자료구조</category>
      <author>sm1118sm</author>
      <guid isPermaLink="true">https://sm021118.tistory.com/44</guid>
      <comments>https://sm021118.tistory.com/44#entry44comment</comments>
      <pubDate>Wed, 25 Jun 2025 19:12:03 +0900</pubDate>
    </item>
  </channel>
</rss>