- Java ์ธ์ด์ ํน์ง
C/C++๊ณผ ์ ์ฌํ๋ ๋จ์ํจ
ํ๋ซํผ์ ๋ ๋ฆฝ์ : Java ํ๋ซํผ๋ง ์๋ค๋ฉด ์ด์์ฒด์ ์ ๋ฌด๊ดํ๊ฒ ์์ ํ์ง ์๊ณ ์คํ์ด ๊ฐ๋ฅํ๋ค๋ ์๋ฏธ-์คํํ๊ฒฝ์ Java ์ธ์ด๊ฐ ํฌํจํ๊ณ ์๋ค๋ ๋ป์ด๊ธฐ๋ ํจ
์์ ํ ๊ฐ์ฒด์งํฅ ์ธ์ด: C++์ ๊ฒฝ์ฐ ํ์ด๋ธ๋ฆฌ๋ ๊ฐ์ฒด์งํฅ ์ธ์ด๋ก ๊ฐ์ฒด์งํฅ ์คํ์ผ๋ก๋, ์ ์ฐจ์ ์คํ์ผ๋ก๋ ํ๋ก๊ทธ๋๋ฐํ ์ ์๋ ๋ฐ๋ฉด Java์ ๊ฒฝ์ฐ ๊ฐ์ฒด์งํฅ ์คํ์ผ๋ก๋ง ์ฝ๋๋ฅผ ์์ฑํ ์ ์์. ์ฆ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์์์ ์ฃผ์ ๊ฐ๋ ์ ์ดํดํ๊ณ ์์ด์ผ ํจ
→ objective programming์ด๋?
์น/๋คํธ์ํฌ ํ๋ก๊ทธ๋๋ฐ์ด ์ฉ์ด: ํด๋ผ์ด์ธํธ ์๋ฒ ํ๋ก๊ทธ๋จ ๋ฑ์ ์์ฑํ๊ณ ์ ํ ๋ ์ ์ฉํ ํ๋ถํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ๊ณต
์๊ฒฉํ ์๋ฃํ ๊ฒ์ฌ: ๋ณ์๋ฅผ ์ฌ์ฉํ๊ณ ์ ํ ๋ ์๋ฃํ ๋ถ์ผ์น๋ก ์ธํ ์ค๋ฅ์ ๋ฐ์ ์์ง๋ฅผ ๋ฏธ์ฐ์ ์ฐจ๋จํ ์ ์๋ค๋ ์ด์
์์ธ์ฒ๋ฆฌ ๊ธฐ๋ฅ ์ ๊ณต: ์์ธ๋ ๋ณต๊ตฌ ๊ฐ๋ฅํ ๊ฒฝ๋ฏธํ ์๋ฌ๋ฅผ ๊ฐ๋ฆฌํค๋ฏ๋ก, ์ด๋ ์์ธ์ฒ๋ฆฌ ๊ธฐ๋ฅ์ด๋ ์์ธ๊ฐ ๋ฐ์ํ๋๋ผ๋ ์ ์ ์ํ๋ก ๋๋ ค ๋ฌธ์ ์์ด ์คํ ๊ฐ๋ฅํ ๊ธฐ๋ฅ์ ๊ฐ๋ฆฌํด
๋ฉํฐ ์ค๋ ๋ฉ ์ง์: ํ๋์ ํ๋ก์ธ์ค ๋๋ ํ๋ก๊ทธ๋จ ์์ ์กด์ฌํ๋ ๋ ๋ฆฝ์ ์ธ ์์ ํ๋ฆ์ ์ค๋ ๋๋ผ๊ณ ํ๋ฉฐ, ์๋ฐ์์๋ ์ฌ๋ฌ ๊ฐ์ ๋ ๋ฆฝ์ ํ๋ฆ์ ๋์์ ์คํํ ์ ์์
- ๋ฐ์ดํธ ์ฝ๋(ํด๋์ค ํ์ผ, .class)
Java ์์ค๋ฅผ ์ปดํ์ผํ ๊ฒฐ๊ณผ๋ฌผ
Java ํ๋ซํผ์ Java VM(๊ฐ์๋จธ์ )์์ ์คํ ๊ฐ๋ฅํ ์ฝ๋์ด์ง๋ง, ์ด์์ฒด์ ์์ ์์ฑ๋๋ ์ฝ๋๋ ์๋๋ฏ๋ก ์๊ฒฉํ ์๋ฏธ์์ ๊ธฐ๊ณ์ด๋ ์๋๋ค - write once, run anywhere
ํด๋์ค ํ์ผ: Java๋ ์์ ํ ๊ฐ์ฒด์งํฅ ์ธ์ด์ด๋ฏ๋ก Java๋ก ์ฝ๋ฉํ๋ค๋ ๊ฒ์ ๊ณง ํด๋์ค๋ฅผ ๋ง๋๋ ๊ฒ
- ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ์ ํ๋ฆฟ
์ ํ๋ฆฌ์ผ์ด์ : Java ํ๋ซํผ์์ ์คํ๋๋ ํ๋ก๊ทธ๋จ์ผ๋ก ์คํ์ ์ํด main() ํจ์๊ฐ ํ์ํจ
์ ํ๋ฆฟ: THML ์น ํ์ด์ง์ ํฌํจ๋์ด ๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด ์คํ
<APPLET CODE = "HelloApplet.class" WIDTH = 200 HEIGHT = 100> </APPLET>
๋ง์ฝ ์์ ๊ฐ์ ์ฝ๋๊ฐ ํฌํจ๋ html ํ์ผ์ด ์๋ค๋ฉด ์ฝ๋ ์ .class ํ์ผ๋ ์ปดํ์ผํจ. ๋ค๋ง ์ ํ๋ฆฟ์ ์ต๊ทผ์๋ ์ ์ฐ์ด์ง ์๋ ๋ฐฉ์์ผ๋ก, ์ต์คํ๋ก๋ฌ ์ธ์ ๋ธ๋ผ์ฐ์ ์์๋ ์ง์ํ์ง ์๊ฒ ๋์์
- Java ํ๋ซํผ
ํ๋ซํผ์ด๋ ํ๋ก๊ทธ๋จ์ ์คํํ๊ณ ์ ํ๋ HW/SW ํ๊ฒฝ์ด๋ฏ๋ก Java ํ๋ซํผ์ Java ํ๋ก๊ทธ๋จ์ ๊ฐ๋ฐ/์คํํ๊ธฐ ์ํ ํ๊ฒฝ
์ด์์ฒด์ ์ ๋ง๋ Java platform์ ์ค์นํ์ฌ์ผ ํจ
ํ๋ซํผ ๊ตฌ์ฑ์ Java VM + Java API
Java VM: Java ํ๋ก๊ทธ๋จ์ ์คํํ๊ฒฝ์ ์ ๊ณตํ๋ ๊ฐ์๋จธ์ ์ผ๋ก, ํ๋ก๊ทธ๋จ์ ๊ตฌ๋ํ๊ธฐ ์ํ ์์ง์ด๋ผ๊ณ ๋ณผ ์ ์์. ์คํ์ ํ์ํ ๋ชจ๋ ์ฌํญ์ ๊ด๋ฆฌ ๋ฐ ์ง์ํ๊ณ , GC(garbage collection)๋ฅผ ์๋์ผ๋ก ์ํํจ(C์์์ malloc๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ VM์ด ํด ์ฃผ๊ณ ์์ผ๋ฏ๋ก ๊ฐ๋ฐ ์์ ์ ํฌ๊ฒ ์ ๊ฒฝ์ฐ์ง ์์๋ ๋๋ ๊ฒ์ด ์ฅ์ )
Java API: ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ์ ํ์ํ ํด๋์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก, ํด๋์ค์ ๋ฌถ์(ํจํค์ง)์ด ๊ณ์ธต ๊ตฌ์กฐ๋ก ๋ถ๋ฅ๋์ด ์์
→ ๋ ์์ง๋ API์ ๊ฐ๋ ์ ์ ํํ๊ฒ ๋ชจ๋ฅด๊ฒ ์
- JDK์ eclipse
Java ํํ์ด์ง์์ ๋ค์ด๋ก๋๋ฐ์ ์ค์น → ํ๊ฒฝ๋ณ์ ๊ฒฝ๋ก ์์ → ํ๊ฒฝ๋ณ์ JAVA_HOME ์์ฑ
#path ์์ c:/Program Files/Java/jdk-ver./bin ์ถ๊ฐ #java_home ์์ฑ c:/Program Files/Java/jdk-ver. ๋์
eclipse: ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ Java ๊ฐ๋ฐ ํด
- main()์ ํ์
public class Hello { //public class๋ ํ์ผ์ ์ต๋ 1๊ฐ๊น์ง ์กด์ฌ public static void main(String[] args) { //main method์ ํ์ /* ์ฌ๋ฌ ์ค๋ก ์ฃผ์ ์ฒ๋ฆฌ๋ฅผ ํ ์ ์์ */ System.out.printIn("Hello, World!"); } }
/** ์ด ์์ ๋ด์ฉ์ ์์ฑํด์ javadoc์ ์ด์ฉํ API ๋ฌธ์๋ฅผ ๋ง๋ค ์ ์์*/
- ํด๋์ค: ํผ๋ธ๋ฆญ ํด๋์ค/ํผ๋ธ๋ฆญ์ด ์๋ ํด๋์คpublic class๋ ํ์ผ์ ์ต๋ 1๊ฐ๋ก, ํผ๋ธ๋ฆญ ํด๋์ค๊ฐ ์กด์ฌํ๋ค๋ฉด ํด๋น ํ์ผ์ ๋ค๋ฅธ ์ด๋ฆ์ผ๋ก๋ ์ ์ฅํ ์ ์๊ณ ๋ฐ๋์ ‘PublicClassName.java’ ํ์ผ๋ช ์ผ๋ก๋ง ์ ์ฅํ ์ ์์
- ์ถ๋ ฅ๊ณผ ์คํํ์ค์ถ๋ ฅ System.out ํ์ค์ถ๋ ฅ์ ๋ด๋นํ๋ ๊ฐ์ฒด๋ก, print() ๋๋ printIn()์ ์ํํจ. ๋ฐ๋์ System.out.print(”strings”); ํํ๋ก ์ฐ์ฌ์ผ ํจ์ปดํ์ผ ๋ช ๋ น์ด
- ์ด๋ ํ ๊ฐ์ฒด๋ฅผ ํตํด ํจ์๊ฐ ์คํ๋๋์ง๋ฅผ ๋ฐํ ์ฃผ์ด์ผ ํ๊ธฐ ๋๋ฌธ
//Hello.java๋ก ์ ์ฅ javac Hello.java ‘ClassName.java’๊ฐ ๋ง๋ค์ด์ง. java Hello // Hello class์์ main() ๋ฉ์๋๊ฐ ์คํ๋จ
- ํด๋์ค์ ๊ฐ์ฒด
์ถ์ํ ์ ํ์ ์ด๊ณ ํ์ํ ์ผ๋ถ๋ง์ ๋ฐ์ทํ์ฌ ์ฌ๋ฌผ์ ์ดํด, ํํํ๋ ๊ฒ
ํด๋์ค ๊ฐ์ฒด๋ฅผ ๋ง๋ค๊ธฐ ์ํ ๋ชจํ์ด๋ ํ. ๋ฌธ์ ์์ญ ์์ ์กด์ฌํ๋ ์ฌ๋ฌ ๊ฐ์ฒด๋ฅผ ๊ณตํต์ ํน์ง์ ๊ฐ์ง๋ ์ข ๋ฅ๋ณ๋ก ๋ถ๋ฅํ ๋ค์ ์ถ์ํํ๊ณ ์ ํ๋ ์๋จ์ ํด๋์ค๋ผ๊ณ ํจ
๊ฐ์ฒด์ ์ํ๋ ํ๋(๋ฐ์ดํฐ)๋ก, ํ์๋ ๋ฉ์๋๋ก ๊ตฌํ(ํด๋์ค์ ์บก์ํ)๋จ. ์ฆ ์ํ:ํ์ = ํ๋(๋ฐ์ดํฐ):๋ฉ์๋ - ‘์ด ๋ฐ์ดํฐ๋ ์ด๋ค ๋์์ ํ ์ ์๋๊ฐ?’
๊ฐ์ฒด๋ ํน์ ํด๋์ค์ ์ธ์คํด์ค(ํด๋์ค๊ฐ ์ค์ฒดํํ ๊ฒ์ ์ธ์คํด์ค๋ผ ํจ)
๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ์์๋ ํด๋์ค ์ ์๋ก๋ถํฐ ๊ฐ์ฒด๋ค์ด ๋ง๋ค์ด์ง๊ณ , ํ๋ก๊ทธ๋จ์ ์ด ๊ฐ์ฒด๋ค ๊ฐ์ ์ํธ์์ฉ์ผ๋ก ๋์
//C๋ ์ ์ฐจ์ ํ๋ก๊ทธ๋ฐ ์ธ์ด //ํ๋ก๊ทธ๋จ์ ๊ธฐ๋ณธ ๊ตฌ์ฑ ๋จ์๋ ํจ์ //์ ์ญ๋ณ์ ์ ์ธ int e[2]; //english int m[2]; //mathmatics //main function: ๋ ํ์์ ์์ด, ์ํ ์ฑ์ ์ ์
๋ ฅ๋ฐ์ void input_grade(){ e[0] = 90; e[1] = 80; e[0] = 85; m[1] = 80; } void output_grade(){ printf("%d, %d", e[0] + m[0], e[1]+m[1]); } void main(void){ input_grade(); output_grade(); }
//Java๋ ๊ฐ์ฒด์งํฅ ์ธ์ด //๋ฐ๋ผ์ ๋จผ์ class๋ฅผ ์ ์ธ class Grade { int e; int m; void output_grade() { System.out.printIn(e+m); } } public class GradeOutput{ public static void main(String args[]){ Grade g1, g2; g1 = new Grade(); // ๊ฐ์ฒด ์์ฑ g2 = new Grade(); g1.e = 90; g1.m = 85; // ๊ฐ ๊ฐ์ฒด์ ์ ์๋ฅผ ๋์
g2.e = 90; g2.m = 80; g1.output_grade(); g2.output_grade(); } }
Uploaded by Notion2Tistory v1.1.0