์ฌ๋ฌ๊ฐ์ง ๊ธฐ๋ฅ์ฌ์ฉ, ๊ตฌํ์ ๊ธ๊ธํด์ MVCํจํด๊ณผ ๊ฐ์ ๊ธฐ๋ฒ์ ์ ์ฉ์ํค์ง ์๊ณ , class๋ ๊ตฌ๋ถํ์ง ์์ ๋ง์ด ๋ณต์กํ ์ฝ๋๋ก ๋ณด์ธ๋ค. ์ดํ๋ก๋ ๋
์๋ฅผ ํตํด ๋ค์ Java์ ๋ํ ์ง์์ ๋ช
ํํ๊ฒ ์ก์์ผ๊ฒ ๋ค. Main.java package calculator; public class Main { public static void main(String[] args) { CalculatorFrame mainFrame = new CalculatorFrame(); } } CalculatorFrame.java package calculator; import java.awt.*; import javax.swing.*; import java.awt.event.*; import java.util.StringTokeniz..
๐ฌ Language
์ง๋ ํฌํธํ
์์ Split ํจ์๋ฅผ ํตํ Tokenizer ๋ฐฉ๋ฒ์ ๊ธฐ์ ํ๋ค. Java์์๋ StringTokenizer๋ผ๋ ํจ์๋ ์กด์ฌํ๋ค. ๋์ ์๋ฆฌ๋ C์ธ์ด์์ ์ฌ์ฉํ๋ strtok ํจ์์ ๋น์ทํ๊ฒ ๋ณผ ์ ์๋ค. ์์ฑ์(Constructor) StringTokenizer(String str) ํด๋น ๋ฌธ์์ด์ ๋ํด ๋ฌธ์์ด ํ ํฐํ ๊ตฌ์ฑ StringTokenizer(String str, String delim) ํด๋น ๋ฌธ์์ด์ ๋ํด ๋ฌธ์์ด ํ ํฐํ ๊ตฌ์ฑ StringTokenizer(String str, String delim, boolean returnDelims) ํด๋น ๋ฌธ์์ด์ ๋ํด ๋ฌธ์์ด ํ ํฐํ ๊ตฌ์ฑ ํจ์(Method) countTokens() ์์ผ๋ก ํธ์ถํ ์ ์๋ ํ์๋ฅผ ๋ฐํํ๋ค. hasMoreElemen..
EventHandler๋ฅผ ์์ฑํ๊ณ ์ ์ฌ๋ฌ ๋ฌธ์๋ค์ ์ฐธ์กฐํ๊ณ ๋ค๋
๋๋ฐ ๋ถ๋ชจ ํด๋์ค๋ฅผ ์์๋ฐ์ ๋ extends ํน์ implements๋ฅผ ์ฌ์ฉํ๋ ๋ชจ์ต์ ๋ณผ ์ ์์๋ค. extends, implements์ ๋ํ ์ฐจ์ด๋ฅผ ๋งํ๊ธฐ ์ ์ ์ถ์ํด๋์ค์ ์ธํฐํ์ด์ค์ ์ฐจ์ด๋ฅผ ์ดํดํด์ผ ํ ๊ฒ ๊ฐ๋ค. [์ถ์ํด๋์ค vs ์ธํฐํ์ด์ค] ์ถ์ํด๋์ค - ํ๋ ์ด์์ ์ถ์๋ฉ์๋๋ฅผ ํฌํจํ๊ฑฐ๋ abstract๋ก ์ ์๋๋ค. - ์ถ์ํด๋์ค๋ ํด๋น ์ถ์ํด๋์ค์ ๊ธฐ๋ฅ์ ์ด์ฉํ๊ณ , ํ์ฅํ๊ธฐ ์ํด ์ฌ์ฉํ๋ค. - ๊ฐ์ ์ข
๋ฅ๋ ํ๋๋ค์ ๊ตฌํํ ๊ฒ ๋ง์๋ ์ฌ์ฉํ๋ค. - ์์์ ๋ํ ๊ณ์ธต๊ตฌ์กฐ๋ฅผ ๋ช
ํํ ํํํ ๋ ์ถ์ํด๋์ค๋ฅผ ์ด์ฉํ๋ค. ์ธํฐํ์ด์ค - ๋ชจ๋ ๋ฉ์๋๊ฐ ์ถ์๋ฉ์๋์ด๋ค. - ํจ์์ ๊ตฌํ์ ๊ฐ์ ํ๊ธฐ ์ํด ์ฌ์ฉํ๋ค. - final์ ๋ถ์ผ ์ ์์ผ๋ฉฐ, ..
Calculator๋ฅผ ๋ง๋ค๋ฉด์ ๋ฒํผ์ ํด๋ฆญํ๋ฉด ํ๋ฉด์ ๊ธ์๊ฐ ์์ฑ๋๊ฒ ํ๊ณ ์ถ์๋ค. ์ด๋ฅผ ์ํด ํ์ํ ๊ฐ๋
์ธ Event์ ๋ํด์ ๊ฐ๋ตํ๊ฒ ์ ๋ฆฌํ๊ณ ์ ํ๋ค. Event - GUI ์ปดํฌ๋ํธ์์ ๋ฐ์๋๋ ํ์๋ฅผ ์๋ฏธํ๋ค. ex) ๋ฒํผ ํด๋ฆญ, ๋ฆฌ์คํธ ์ ํ, ์ฒดํฌ๋ฐ์ค ์ฒดํฌ ๋ฑ ๋ชจ๋ ์ด๋ฒคํธ ํด๋์ค๋ java.util.EventObjectํด๋์ค๋ก๋ถํฐ ์์๋ฐ๋๋ค. ํด๋น ํด๋์ค์๋ ์ด๋ฒคํธ๋ฅผ ๋ฐ์์ํจ ๊ฐ์ฒด๋ฅผ ์๋ ค์ฃผ๋ getSource() ๋ฉ์๋๊ฐ ์กด์ฌํ๋ค. // EventObject ํด๋์ค ์ฃผ์ ๋ฉ์๋ Object getSource() // ์ด๋ฒคํธ๋ฅผ ๋ฐ์์ํจ ๊ฐ์ฒด ๋ฐํ String toString() // ์ด๋ฒคํธ ์ด๋ฆ์ ๋ฌธ์์ด๋ก ๋ฐํ Event 3๋ ์์ฑ 1. Event Source - ์ด๋ฒคํธ๊ฐ ๋ฐ์๋๋ ์ปดํฌ๋ํธ ex) ๋ฒ..
๊ณ์ฐ๊ธฐ ๋ง๋ค๊ธฐ ํ๋ก์ ํธ๋ฅผ ๋ณธ๊ฒฉ์ ์ผ๋ก ์งํํ๊ธฐ์ ์์ Console ๋จ์์ ์
์ถ๋ ฅ์ ์งํํ๊ธฐ์๋ ํ๋ก์ ํธ์ ์์ฑ๋๊ฐ ๋จ์ด์ง ๊ฒ ๊ฐ๋ค๋ ์๊ฐ์ด ๋ค์๋ค. ์ค์ ๊ณ์ฐ๊ธฐ ํ๋ก๊ทธ๋จ๋ค ์ฒ๋ผ GUI๋ก ํํํด๋ณด๋ฉด์ Java์ ์ฌ๋ฌ ๊ธฐ๋ฅ๋ค์ ์ตํ๋ณด๊ณ ์ํ๋ค. Java๋ก GUI๋ฅผ ํํํ๋ ๋ฐฉ๋ฒ์ผ๋ก๋ AWT, Swing ์ด ๋๊ฐ์ง ํจํค์ง๊ฐ ๋ํ์ ์ด๋ผ๊ณ ๋ณผ ์ ์๋ค. 1. AWT(Abstract Window Toolkit) Package OS์ ์์์ ์ด์ฉํด ํ๋ฉด์ ๊ตฌ์ฑํ๋ค. (์ด์์ฒด์ ๋ณ๋ก UI๊ฐ ๋ค๋ฅด๋ค) java.awt.* ex) Frame, Button, TextField, ... 2. Swing Package UI์ ์ธ ์ธก๋ฉด์์ ๊ฐ์ข
์์คํ
์ด ๊ณตํต์ ์ผ๋ก ์ ๊ณต๋ฐ์ ์ ์๋๋ก Java์์ญ์์ ์ฌ์ฉํ๋ ๊ธฐ๋ฅ์ ์ ์ฉ๋ฐ๋๋ค. java..
๊ณ์ฐ๊ธฐ๋ฅผ ๊ตฌํํ๋ฉด์ ๋ฌธ๋ ํ ๋ฌธ์์ด์์ Tokenization์ ํตํด ์ฌ์น์ฐ์ฐ์ ์ ์ธํ ๋ฌธ์๋ค์ ๊ฑท์ด๋ด๊ณ ์ถ์๋ค. ์ฝ๋๋ฅผ ์ง๋ ์ด๋ฐ์ด๋ผ Tokenization์ ์ด๋ป๊ฒ ํ ๊น ๊ณ ๋ฏผํ๋ฉด์ ๊ตฌ๊ธ๋ง์ผ๋ก ์ฌ๋ฌ ์๋ฃ๋ฅผ ์ฐพ์๋ณด๋ค๊ฐ Splitํจ์๋ฅผ ์๊ฒ๋์๋ค. ์๋ ๊ตฌ๋ฌธ์ ํฌํจํ ์ฝ๋๋ฅผ ์คํํ์ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค. // Initial Code Scanner input = new Scanner(System.in); String str = input.next(); String[] p = str.split("+"); //error split ํจ์์ ๊ตฌ์กฐ๋ฅผ ๋ค์ ์ดํด๋ณด๋ ํด๋น ํจ์๋ ์ ๊ทํํ์์ ํตํด ๋ฌธ์๋ฅผ ์ธ์ํ๋ค๊ณ ํ๋ค. ์ ๊ทํํ์์ ๋ฐ๋ฅด๋ฉด +๊ฐ ์๋ฏธํ๋ ๋ฐ๋ "์ ๋ฌธ์๊ฐ 1๊ฐ ์ด์ ์กด์ฌํ ์ ์๋ค." ๋ผ๋ ๋ป์ด๋ผ๊ณ ํ๋ค...