1 / 21

자바프로그래밍

자바프로그래밍. 2014 년 가을학기 강원대학교 컴퓨터학부 담당교수 : 정충교. 강사진. 담당교수 : 정충교 연구실 : 101 동 503 호 전화 : 033-250-6325 이메일 : ckjeong@kangwon.ac.kr 조교 :. 강의 목표와 지향. 객체지향프로그래밍의 핵심 개념을 이해하고 설명할 수 있게 된다 . 다섯 개 이내의 클래스로 이루어진 간단한 프로그램을 혼자서 완성할 수 있게 된다 . 간단한 문제에 대해 이를 클래스 단위로 설계하고 구현하여 그 해를 완성할 수 있게 된다 .

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. 자바프로그래밍 2014년 가을학기 강원대학교 컴퓨터학부 담당교수: 정충교

  2. 강사진 • 담당교수: 정충교 • 연구실: 101동 503호 • 전화: 033-250-6325 • 이메일: ckjeong@kangwon.ac.kr • 조교:

  3. 강의 목표와 지향 • 객체지향프로그래밍의 핵심 개념을 이해하고 설명할 수 있게 된다. • 다섯 개 이내의 클래스로 이루어진 간단한 프로그램을 혼자서 완성할 수 있게 된다. • 간단한 문제에 대해 이를 클래스 단위로 설계하고 구현하여 그 해를 완성할 수 있게 된다. • API 문서를 참고하여 다른 사람이 작성한 클래스들을 자신의 프로그래밍에 활용할 수 있게 된다. • C++, C#, Python, Ruby, VB.NET 등 다른 객체지향 언어들을 쉽게 배울 수 있게 된다.

  4. 사전에 필요한 지식 • 프로그래밍기초, 혹은 C언어, Python, Basic 등 다른 프로그래밍 언어를 이용하는 프로그래밍 과목 • 데이터 타입, 변수, 연산, 조건문, 반복문, 함수(메소드) 호출, 배열 등의 개념을 이해하고 있어야 하며 이들을 활용한 기본적인 프로그래밍 연습이 되어 있어야 함. • 매 강의가 실습실에서 있으며 실제 프로그램 개발 능력 배양에 역점을 둔다.

  5. 교재 • 자바 프로그래밍 기초부터 하나씩, Ralph Bravaco 등 지음, 김응성 등 번역, ITC, 2010. • 핵심자바 7판, Cay Horstmann 지음, 최선웅 등 번역, 한티미디어, 2014. • 위 교재들 중 어느 하나를 따라 차례로 공부하는 것이 아니므로 어느 한 가지를 꼭 구입해야 하는 것은 아님.

  6. 평가 • 중간: 25%, 기말: 35%, 과제: 20%, 출석: 10%, 기타: 10% • 중간고사, 기말고사는 각각 이론시험, 실기시험을 봄 • 1/3 이상 결석하는 경우 F

  7. Object-oriented programmingand Java

  8. 객체 지향 프로그래밍(Object-Oriented Programming, OOP) 컴퓨터 프로그래밍 패러다임의 하나 • 절차적 프로그래밍 (procedural programming) • 컴퓨터  “명령어의 순차적 나열”을 통해 문제 해결 • 객체지향프로그래밍 (object-oriented programming) • 실 세계의 사물들을 컴퓨터 내에서 “객체"로 모델링함으로써 실 세계와 유사한 방식으로 문제 해결 • 객체는 서로 메시지를 주고 받고, 데이터를 처리한다.

  9. Object-oriented programming languages • Java, C++, Javascript, C#, Perl, Python, Object-C, Smalltalk, Delphi • JavaScript는 Java와 무관한 언어

  10. Object-oriented programming • 유지보수가 쉽다. • 실세계를 모델링하므로 직관적이다. • 신뢰성과 유연성 • 재사용성 • 모든 문제에 대해 최선은 아니다. • 능숙해지려면 노력과 경험이 필요하다.

  11. 객체와 클래스 (Objects and Classes) • Bicycle 클래스의 instance • 고양이 클래스의 인스턴스 • class는 객체를 만들기 위한 틀이다. 객체들

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

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

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

  15. 자바 C program Java program 컴파일 인터프리터 컴파일 컴파일러 컴퓨터하드웨어 C/C++ 실행 실행 컴파일러 기계어코드 기계어코드 컴퓨터하드웨어 바이트코드 구조중립적(architecture neutral)이고 이식성(portable)이 높음

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

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

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

  19. Java SE 개발도구 라이브러리 (API) VM: Virtual Machine (가상기계) JDK: Java Development Kit JRE: Java Runtime Environment

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

  21. The Compilation Process

More Related