1 / 36

자바프로그래밍

자바프로그래밍. 2011 년 가을학기 강원대학교 컴퓨터학부 담당교수 : 정충교. 강사진. 담당교수 : 정충교 연구실 : 공대 6 호관 503 호 전화 : 033-250-6325 이메일 : ckjeong@kangwon.ac.kr 조교 : 1 분반 조교 : 김문찬 연구실 : 6-518 호 , 010-9487-6035, kimc1905@naver.com 2 분반 조교 : 조민구 연구실 : 6-518 호 , 010-4538-1722, whalsrn0710@nate.com.

Download Presentation

자바프로그래밍

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 자바프로그래밍 2011년 가을학기 강원대학교 컴퓨터학부 담당교수: 정충교 강원대학교

  2. 강사진 • 담당교수: 정충교 • 연구실: 공대 6호관 503호 • 전화: 033-250-6325 • 이메일: ckjeong@kangwon.ac.kr • 조교: 1분반 조교: 김문찬 연구실: 6-518호, 010-9487-6035, kimc1905@naver.com 2분반 조교: 조민구 연구실: 6-518호, 010-4538-1722, whalsrn0710@nate.com 강원대학교

  3. 강의 목표와 지향 • 자바 언어를 통해 객체지향프로그래밍 기초 능력을 기른다. • 매일 실습이 있으며 실제 프로그램 개발 능력 배양에 역점을 둔다. 강원대학교

  4. 평가 • 중간고사(이론+실습)25% • 기말고사 (이론+실습) 35% • 실습 30% • 출석 (강의+실습)10% 강원대학교

  5. 수강조건 • C 언어를 알고 있어야 함 • 특히 자료형, 변수, 상수, 제어문, 함수호출 등을 알고 있어야 함 • 이 강의에서는 위 내용에 대해 간략하게만 설명하고 객체지향 개념과 응용에 집중함 강원대학교

  6. 교재 • 주교재 • Big Java, 제 2판, Cay Horstmann 저, 오세만 등 공역, 생능출판사 (번역서) • 부교재 • 자바프로그래밍 기초부터 하나씩, Ralph Bravaco, Shai Simonson 지음, 김응성 등 역, ITC 2010년 • 소설같은 자바 (http://www.jabook.org/) 강원대학교

  7. 제 1주소개 • 제 1주 강의 목표 • 자바 언어의 특징을 이해함 • 자바 프로그램을 작성하고 컴파일하여 실행하는 과정을 배움 • 간단한 프로그램을 스스로 작성하여 실행할 수 있게 됨 • 자바 개발 환경을 스스로 구축할 수 있게 됨 강원대학교

  8. 자바언어의 특징 • 단순 (simple) • C나 C++에서 프로그래머에게 많은 혼란을 주는 요소들을 제거 • 포인터, 구조체 등을 사용하지 않음 • 자동적인 쓰레기 수집(garbage collection) 기능을 제공 • 객체지향 (Object-Oriented) • 소프트웨어의 재사용과 정보의 캡슐화 등 장점을 제공 • Object • 보거나 만질 수 있는 모든 사물 • 우리말로는 객체 혹은 개체로 번역되고 있음 • 객체 (客體): 목적물, 작용의 대상 • 개체 (個體): 따로따로 떨어진 낱낱의 물체 강원대학교

  9. 자바언어의 특징 • 인터프리터(Interpreter)에 의해 실행 • 자바 소스코드는 컴파일을 통해 바이트 코드로 번역됨 • 바이트 코드를 실행시키면 바이트 코드 해석기(interpreter)에 의해 기계어 코드가 만들어지면서 이 기계어 코드가 실행됨 Java program 인터프리터 컴파일 실행 컴파일러 기계어코드 컴퓨터하드웨어 바이트코드 강원대학교

  10. C 언어의 경우: 소스코드가 기계어로 바로 번역됨 • 프로그램을 실행할 컴퓨터(target machine)에 따라 컴파일러가 달라지고 다른 기계어코드가 생성됨 C program 컴파일 컴파일러 컴퓨터하드웨어 실행 기계어코드 강원대학교

  11. 자바언어의 특징 • 구조중립적(architecture neutral)이고 이식성(portable)이 높음 • 바이트코드 인터프리터를 중심으로 몇가지 부가기능을 갖춘 소프트웨어를 자바가상기계(JVM)라고 부름 • 자바프래그램은 한번 작성/컴파일되면 JVM이 설치된 모든 종류의 컴퓨터에서 실행 가능 • 시스템 구조 중립적으로 설계됨 (int는 항상 32비트) 강원대학교

  12. 프로그램을 실행할 컴퓨터 기종과 무관한 바이트코드가 생성됨 프로그램을 실행할 컴퓨터 기종과 무관한 컴파일러(번역기) 한 종류만 존재함 클라이언트(JVM) 서버 해 석 기 실행결과 바이트 코드 *.class 번 역 기 소스코드 *.java 인터넷 윈도PC 해 석 기 실행결과 자바 바이트코드는 자바 가상기계가 설치된 어떤 컴퓨터에서도 실행 가능하며 네트워크를 통해 쉽게 배포할 수 있다. 핸드폰 interpreter 강원대학교

  13. 자바 프로그램 컴파일러 개발환경 바이트 코드 인터프리터 실행환경 인터프리터 인터프리터 핸드폰 Macintosh 컴퓨터 Windows PC 강원대학교

  14. 자바언어의 특징 • 견고함(Robust) –프로그램 오작동하거나 죽을 가능성 낮음 • No pointer • Strict type checking • Automatic garbage collection 강원대학교

  15. 자바 플랫폼 (Platform) • 플랫폼 : 하드웨어와 소프트웨어 환경 • 기존의 컴퓨터에 자바 플랫폼을 구축하기 위해서는 자바 소프트웨어(JDK)를 설치함 (JDK: Java Development Kit) 자바 프로그램 자바 API 자바 플랫폼 자바 가상 기계 (JVM) 하드웨어 플랫폼 강원대학교

  16. JDK (개발도구 + JRE) JDK: Java Development Kit JRE: Java Runtime Environment 강원대학교

  17. 자바 플랫폼 (Platform) • 자바 API (Application Programming Interface) • Java 플랫폼에서 제공되는 라이브러리 • 자바 개발자는 자바 API에 미리 정의된 라이브러리를 이용하여 편리하게 자바 프로그램을 작성할 수 있음 강원대학교

  18. 자바와 웹(WWW) • 자바가 웹 환경에서 강한 이유 • 자바의 바이트코드가 서버에서 클라이언트로 다운로드되어 실행 • 하나의 바이트코드가 여러 기종의 클라이언트에서 실행 • 웹의 클라이언트/서버 구조 쉽게 적응 • 웹과 자바의 연동 형태 • 애플릿(Applet) 프로그램 • 서블릿(Servlet) 프로그램 강원대학교

  19. 애플릿(Applet) 프로그램 • 클라이언트의 웹 검색기에서 실행되는 프로그램 • 작고 간단한 응용에 적합 클라이언트 서버 HTML 페이지 요청 검색기에서 애플릿 실행 페이지와 애플릿 다운로드 예:http://www.mnh.si.edu/arctic/game/ 16개의 사각형을 뒤집어 그림을 맞추는 게임을 할 수 있는데 이 게임프로그램이 애플릿으로 구현되어 있음 HTML 애플릿 강원대학교

  20. 서블릿(Servlet) 프로그램 • 상황(클라이언트가 전송한 요청 메시지 내에 들어 있는 파라미터들)에 맞춰 서버 내의 서블릿이 실행한 결과를 HTML 문서 형태로 클라이언트에게 반환 클라이언트 HTML 문서 요청 서버 인터넷 검색기 서블릿 엔진 (서블릿 실행) 실행결과(HTML) HTML 서블릿 강원대학교

  21. 프로그램 작성, 컴파일, 실행 과정 • 임의의 텍스트 편집기로 프로그램을작성하여 파일로 저장 • 파일 하나에는 하나의 public 클래스가 정의됨 • public 클래스 이름을 파일 이름과 같게 함 • (Hello 라는 클래스를 정의한 파일의 이름은 Hello.java)  대문자 소문자 구분! 강원대학교

  22. 프로그램 작성, 컴파일, 실행 과정 • 소스코드를 컴파일하여 바이트코드를 만듦 • javac Hello.java ( 파일 이름) Hello.class 파일이 생성됨 컴파일 할 때는 파일의 첨자(.java)를 반드시 붙여줌 Hello.class 파일 내에 바이트코드가 들어 있음 • 바이트 코드를 실행시킴 • java Hello ( 클래스 이름) • 실행시킬 때는 파일의 첨자를 붙이지 않고 클래스 이름만 지정해 줌 강원대학교

  23. 프로그램 예 1 – Hello.java public class Hello { public static void main (String[] args) { System.out.print(“Hello!”); } } Hello라는 이름의 클래스를 중괄호{}안의 내용과 같은 것으로 정의함 • 이 프로그램을 Hello.java 파일에 저장 (파일 이름이 대소문자까지 맞춰 정확해야 함) 강원대학교

  24. 예 2 - HelloTester.java 1:public class HelloTester 2: { 3:public static void main(String[] args) 4: { 5:// Display a greeting in the console window6:7: System.out.println("Hello, World!"); 8: } 9: } Output Hello, World! 강원대학교

  25. 자바 개발 환경 • J2SE 자바 표준 개발 환경에 포함되어 있는도구 • 자바 번역기 : javac • 자바 해석기 : java • 자바 디버거 : jdb • 자바 문서 생성기 : javadoc • 자바 압축 도구 : jar • JDK는 GUI(Graphical User Interface) 형태의 개발환경을 제공하지 않음 강원대학교

  26. 강원대학교

  27. HelloTester in an IDE(IDE: Integrated Development Environment, 통합개발환경) 강원대학교

  28. 자바 통합개발환경 예 • Eclipse (http://www.eclipse.org) • NetBeans (http://www.netbeans.org/) • Java Studio Creator (http://developers.sun.com/prodtech/javatools/jscreator) • JBuilder (http://www.borland.com/jbuilder) • Viaual Cafe (http://www.visualcafe.com) • Visual Age for Java (http://www.ibm.com/java) 강원대학교

  29. Application을 실행시키면 • JVM이 main 메소드를 찾아 실행 • 모든 자바 애플리케이션에는 한 개 이상의 클래스가 있어야 하며 한 개 이상의 main 메소드가 있어야 함 main 메소드 (method) • public static void main (String[] args) • { • // 문장들 • } 강원대학교

  30. 문장(Statement) • 문장의 종류 • 선언 • 대입 • 메소드 호출 • 기타 int x; String name; double d; x = 3; name = “Dirk”; // 주석은 이렇게 씁니다. /* 이렇게도 쓰지요. */ /** 이런 것도 있습니다. */ System.out.print(“x is “ + x); double d = Math.random(); 강원대학교

  31. 간단한 문법 요약 • 모든 문장은 세미콜론으로 끝남 x = x + 1; • 한 줄짜리 주석은 두 개의 슬래시로 시작 // 주석입니다. • 공백 문자가 많이 삽입되어도 문제 없음 x = 3; • 한 문장을 여러줄에 걸쳐 적어도 문제 없음 • 클래스와 메소드를 정의하는 부분은 한 쌍의 중괄호 안에 들어 감 public void go() { // 코드가 들어갈 자리 } • 대문자 소문자 구분 강원대학교

  32. 자바 코드의 구조 Dog.java public class Dog { void bark() { statement1; // 문장 statement2; } void run() { statements; } } Application 클래스 파일 메소드 1 메소드 2 bark, run:클래스 Dog가 갖는 메소드들 Application 소스 코드는 보통 여러개의 클래스 파일들로 구성됨 강원대학교

  33. print과 println System.out.println(“Kangwon”); System.out.print(“kangwon”); • println은 주어진 문자열을 출력한 다음 줄바꿈 (문자열 출력 후 ‘\n’을 추가로 출력해 주는 셈임) • print는 주어진 문자열만 출력 강원대학교

  34. Errors • Syntax errors • Detected by the compiler • Logic errors • Detected (hopefully) through testing System.ouch.print(". . .");System.out.print("Hello); System.out.print("Hell"); 강원대학교

  35. The Compilation Process 강원대학교

  36. The Edit—Compile—Loop Test 강원대학교

More Related