자바소개 이충기 명지대학교컴퓨터공학과
자바 (Java) 의정의 C++ 에기초한선 (Sun) 사에의해개발된프로그래밍언어 객체지향언어 인터넷과웹을위한프로그래밍언어 2
자바의재정의 최초의범용소프트웨어플랫폼 언어, 자바가상컴퓨터와클래스라이브러리와 API 들의집합으로구성 인터넷컴퓨팅을위한플랫폼 - 하드웨어와독립 - 확장성이있음 - 개방적임 3
자바의현재 널리채택되고보편적언어가됨 안정이되고신뢰성이높아짐 자바기술이공개되고출판됨 일반응용프로그래밍언어로확장됨 많은개발도구들이나옴 개발자, 사용자, 관리자모두에게혜택을줌 이동컴퓨팅플랫폼으로자리잡음 4
자바 2 플랫폼 표준형플랫폼 (J2SE) - 자바언어와연관된도구들의주류플랫폼 기업용플랫폼 (J2EE) - 기업용프로그램을개발하기위한플랫폼 소형용플랫폼 (J2ME) - 소비자 / 임베디드장비용프로그램을개발하기위한플랫폼 5
자바프로그램구조 자바프로그램의구조는다음과같다 : 자바프로그램은클래스들 (classes) 로구성된다. 클래스는하나이상의메소드 (methods) 들을포함한다. 메소드는프로그램문들 (statements) 을포함한다. 이용어들은자세히다루어질것이다. 모든자바응용들은 main 메소드를가진다. 6
자바프로그램구조 // 클래스에대한설명문들 public class SimpleProgram { 클래스머리부 (header) 클래스몸체 (body) } 설명문들 (comments) 은거의모든곳에추가될수있다 7
자바프로그램구조 // 클래스에대한설명문들 public class SimpleProgram { // 메소드에대한설명문들 public static void main (String[] args) { } 메소드몸체 메소드머리부 } 8
예제프로그램 // 파일이름 : Hello.java // 목적 : 자바응용프로그램의기본구조를보여준다 public class Hello { // ' 안녕하세요 ' 를출력한다 public static void main(string[] args) { System.out.println(" 안녕하세요 "); } } 9
설명문 (Comment) 설명문은프로그램내의문서화를제공한다. 설명문은프로그램의동작에영향을끼치지않는다. 세가지종류의설명문 : // 이설명문은이줄의끝까지계속될수있다 /* 이설명문은여러줄에걸쳐계속될수있다 */ /** 이것은 javadoc 설명문이다이설명문은여러줄에걸쳐계속될수있다 */ 10
식별자 (Identifier) 식별자는프로그래머가프로그램에서구성요소들을나타내기위해사용하는단어이다. 식별자는대문자들, 소문자들, 숫자들, 밑줄문자 (_) 와달러기호 ($) 의조합이어야한다. 식별자는숫자로시작할수없다. 자바는대문자와소문자를구별한다. 11
식별자 세가지유형의식별자들 프로그래머가선택한단어들 다른프로그래머가선택한단어들 예약어들 (reserved words): 특별한식별자들 식별자이름은나타내고자하는것을잘기술해야하고읽기가쉬워야한다. 12
흰색공간 (White Space) 흰색공간은빈칸 (blank), 빈줄 (newline), 탭 (tab) 을포함한다. 흰색공간은프로그램안에있는단어들 (words) 과기호들 (symbols) 을분리하기위해사용한다. 우리는프로그램을여러가지방법으로쓸수있다. 프로그램은흰색공간과설명문을적절히사용하여읽기쉽게작성해야한다. 예 : 예제프로그램 13
프로그래밍언어 (Programming Language) 프로그램은실행되기위해컴퓨터가이해할수있는기계어 (machine language) 로바꾸어야한다. 컴파일러 (compiler) 는원시프로그램 (source code) 을기계어로된목적프로그램 (object code) 으로바꾸어주는소프트웨어이다. 자바컴파일러는자바원시프로그램을중간언어인바이트코드 (bytecode) 로바꾸어준다. 자바해석기 (interpreter) 가바이트코드를한문장씩읽고특정컴퓨터에서실행한다. 따라서자바컴파일러는특정컴퓨터에묶여있지않다. 14
자바프로그램의번역 (compilation) 및실행 (execution) 과정 자바원시코드 자바바이트코드 자바컴파일러 자바해석기 바이트코드컴파일러 목적프로그램 15
통사론 (Syntax) 과의미론 (Semantics) 프로그래밍언어의통사론규칙들 (syntax rules) 은언어의요소들 (elements) 이프로그램문들을만들기위해어떻게결합될수있는지를명확하게기술한다. 이규칙들은프로그램을작성하기위해서반드시따라야한다. 프로그램이규칙 ( 들 ) 을따르지않는다면컴파일러는오류메시지 (error message) 를만들어낸다. 프로그램문의의미론은그문이실행될때일어나는것을정의한다. 16
오류 (Error) 오류는세가지유형으로나눌수있다 : 번역오류 (compile-time error) 실행오류 (run-time error) 논리오류 (logical error) 번역오류는자바의통사론규칙을따르지않아서발생하는오류이다. 실행오류는프로그램실행중에발생하는오류이다. 논리오류는프로그램의실행결과가틀린경우이다. 17
기본적인프로그램개발과정 프로그램을편집 (edit) 하고저장한다 오류들 오류들 프로그램을번역한다 프로그램을실행하고결과들을평가한다 18
자바에대해배워야할두가지 자바언어그자체를배워야함 -- 필요한클래스들과메소드들을여러분자신이프로그램할수있기위해 자바클래스라이브러리 (library) 에있는클래스들과메소드들을사용하는방법을배워야함 -- 프로그램성능과이식성 (portability) 을개선하기위해 -- 많은다양한클래스라이브러리가인터넷상에있다. 19
자바개발환경 TextPad: 자바지원텍스트편집기, 사용하기쉬움 Sun s JDK: 명령어방식인터페이스 최신버전 : JDK 6 Update 18 (Sun 의웹사이트 : http://www.java.com/ko/) 소프트웨어업체들이많은자바개발환경 (IDE) 소프트웨어를출시 이클립스컨소시움의 Eclipse Microsoft 의 Visual J++ Sun 의 NetBeans jgrasp DrJava BlueJ 20
자바프로그램의분류 응용프로그램 (Java Application, 보통프로그램 ): 브라우저와무관하게실행되는독립적프로그램 애플릿 (Java Applet, 웹을통해전송가능 ): 자바를지원하는브라우저 (browser) 에서실행되는자바프로그램 (HTML 페이지에포함 ) 21
응용프로그램의구조 각프로그램은여러클래스들로구성된다. 호출되는첫번째메소드는 main 메소드 : public static void main(string[] argv) ( 복잡해보일지모르나추후설명!) main 메소드가프로그램의흐름 (flow) 을통제한다. 22
애플릿의구조 응용과비슷하나실행되는첫번째메소드가 init 이다 : public void init() 애플릿의나머지는사용자행위등과같은사건들에대응하는일련의사건처리기 (event handler) 이다. 브라우저나애플릿뷰어 (applet viewer) 에서실행되는자바해석기에의해실행된다. 23
응용프로그램의작성및실행 TextPad 와같은편집기를사용하여자바원시프로그램을작성한다. 원시프로그램을자바컴파일러를사용하여바이트코드로번역한다. 바이트코드를자바해석기를사용하여실행한다. 24
응용프로그램의작성 아래와같은 Hello.java 라는파일을만든다 : // 파일이름 : Hello.java // 목적 : 자바응용프로그램의기본구조를보여준다 public class Hello { // ' 안녕하세요 ' 를출력한다 public static void main(string[] args) { System.out.println(" 안녕하세요 "); } } 25
응용프로그램의번역 명령프롬프트에서다음명령어를입력한다 : javac Hello.java TextPad 사용시 TextPad 를시작한다 File 메뉴의 Open 메뉴항목을선택한후 Hello.java 원시코드를불러들인다 Tools 메뉴의 External Tools 메뉴항목중 Compile Java 를선택한다 주 : 컴파일이성공하면컴파일러는 Hello.class 라는 ( 바이트코드 ) 파일을생성한다 26
응용프로그램의실행 명령프롬프트에서다음명령어를입력한다 : java Hello 화면상에 안녕하세요 라는문구가보여야한다 TextPad 사용시 Tools 메뉴의 External Tools 메뉴항목중 Run Java Application 을선택한다 -- 출력을위해또다른창을띄운다 -- 그창위에 안녕하세요 라는문구가보여야한다 27
애플릿의작성및실행 애플릿원시프로그램을작성한다. 원시프로그램을번역한다. 애플릿을포함하는 HTML 파일을만든다. HTML 파일을애플릿뷰어나브라우저안으로불러들인다. 28
애플릿의작성 아래와같은 HelloWorld.java 라는파일을만든다 : import javax.swing.japplet; import java.awt.*; public class HelloWorld extends JApplet { } public void paint(graphics g) { } g.drawstring( 안녕하세요, 50, 25); 29
HTML 파일의생성 아래와같은 HelloWorld.html 라는파일을만든다 (HelloWorld.class 를포함하는디렉토리와같은위치에 ): <HTML> <HEAD> <TITLE>Hello to Everyone! </TITLE> </HEAD> <BODY> 애플릿의출력결과 : <APPLET CODE= HelloWorld.class WIDTH=150 HEIGHT=25> </APPLET> </BODY> </HTML> 30
HTML 파일불러들이기 브라우저안으로 HTML 파일을불러들인다 브라우저의위치에당신이만든 HTML 파일의 URL 을입력한다 예 : 내 C 드라이브에있는파일의경우다음과같이입력 file:///cl/myhome/helloworld.html 혹은, HTML 파일을 JDK 안에제공된애플릿뷰어안으로불러들인다 명령프롬프트에서다음명령어를입력한다 : appletviewer HelloWorld.html 주 : 여러분은브라우저나애플릿뷰어에서다음과같은것을보아야한다 : 애플릿의출력결과 : 안녕하세요 31
요약 자바정의 자바프로그램구조 프로그램의번역및실행과정 자바개발환경 자바프로그램의작성및실행 32