210 likes | 492 Views
자바프로그래밍. 2014 년 가을학기 강원대학교 컴퓨터학부 담당교수 : 정충교. 강사진. 담당교수 : 정충교 연구실 : 101 동 503 호 전화 : 033-250-6325 이메일 : ckjeong@kangwon.ac.kr 조교 :. 강의 목표와 지향. 객체지향프로그래밍의 핵심 개념을 이해하고 설명할 수 있게 된다 . 다섯 개 이내의 클래스로 이루어진 간단한 프로그램을 혼자서 완성할 수 있게 된다 . 간단한 문제에 대해 이를 클래스 단위로 설계하고 구현하여 그 해를 완성할 수 있게 된다 .
E N D
자바프로그래밍 2014년 가을학기 강원대학교 컴퓨터학부 담당교수: 정충교
강사진 • 담당교수: 정충교 • 연구실: 101동 503호 • 전화: 033-250-6325 • 이메일: ckjeong@kangwon.ac.kr • 조교:
강의 목표와 지향 • 객체지향프로그래밍의 핵심 개념을 이해하고 설명할 수 있게 된다. • 다섯 개 이내의 클래스로 이루어진 간단한 프로그램을 혼자서 완성할 수 있게 된다. • 간단한 문제에 대해 이를 클래스 단위로 설계하고 구현하여 그 해를 완성할 수 있게 된다. • API 문서를 참고하여 다른 사람이 작성한 클래스들을 자신의 프로그래밍에 활용할 수 있게 된다. • C++, C#, Python, Ruby, VB.NET 등 다른 객체지향 언어들을 쉽게 배울 수 있게 된다.
사전에 필요한 지식 • 프로그래밍기초, 혹은 C언어, Python, Basic 등 다른 프로그래밍 언어를 이용하는 프로그래밍 과목 • 데이터 타입, 변수, 연산, 조건문, 반복문, 함수(메소드) 호출, 배열 등의 개념을 이해하고 있어야 하며 이들을 활용한 기본적인 프로그래밍 연습이 되어 있어야 함. • 매 강의가 실습실에서 있으며 실제 프로그램 개발 능력 배양에 역점을 둔다.
교재 • 자바 프로그래밍 기초부터 하나씩, Ralph Bravaco 등 지음, 김응성 등 번역, ITC, 2010. • 핵심자바 7판, Cay Horstmann 지음, 최선웅 등 번역, 한티미디어, 2014. • 위 교재들 중 어느 하나를 따라 차례로 공부하는 것이 아니므로 어느 한 가지를 꼭 구입해야 하는 것은 아님.
평가 • 중간: 25%, 기말: 35%, 과제: 20%, 출석: 10%, 기타: 10% • 중간고사, 기말고사는 각각 이론시험, 실기시험을 봄 • 1/3 이상 결석하는 경우 F
객체 지향 프로그래밍(Object-Oriented Programming, OOP) 컴퓨터 프로그래밍 패러다임의 하나 • 절차적 프로그래밍 (procedural programming) • 컴퓨터 “명령어의 순차적 나열”을 통해 문제 해결 • 객체지향프로그래밍 (object-oriented programming) • 실 세계의 사물들을 컴퓨터 내에서 “객체"로 모델링함으로써 실 세계와 유사한 방식으로 문제 해결 • 객체는 서로 메시지를 주고 받고, 데이터를 처리한다.
Object-oriented programming languages • Java, C++, Javascript, C#, Perl, Python, Object-C, Smalltalk, Delphi • JavaScript는 Java와 무관한 언어
Object-oriented programming • 유지보수가 쉽다. • 실세계를 모델링하므로 직관적이다. • 신뢰성과 유연성 • 재사용성 • 모든 문제에 대해 최선은 아니다. • 능숙해지려면 노력과 경험이 필요하다.
객체와 클래스 (Objects and Classes) • Bicycle 클래스의 instance • 고양이 클래스의 인스턴스 • class는 객체를 만들기 위한 틀이다. 객체들
자바언어의 특징 • 단순 (simple) • C나 C++에서 프로그래머에게 많은 혼란을 주는 요소들을 제거 • 포인터, 구조체 등을 사용하지 않음 • 자동적인 쓰레기 수집(garbage collection) 기능을 제공 • 객체지향 (Object-Oriented) • 소프트웨어의 재사용과 정보의 캡슐화 등 장점을 제공 • Object • 우리말로는 객체 혹은 개체로 번역되고 있음 • 객체 (客體): 목적물, 작용의 대상 • 개체 (個體): 따로따로 떨어진 낱낱의 물체
자바언어의 특징 • 인터프리터(Interpreter)에 의해 실행 • 자바 소스코드는 컴파일을 통해 바이트 코드로 번역됨 • 바이트 코드를 실행시키면 바이트 코드 해석기(interpreter)에 의해 기계어 코드가 만들어지면서 이 기계어 코드가 실행됨 Java program 인터프리터 컴파일 실행 컴파일러 기계어코드 컴퓨터하드웨어 바이트코드
C 언어의 경우: 소스코드가 기계어로 바로 번역됨 • 프로그램을 실행할 컴퓨터(target machine)에 따라 컴파일러가 달라지고 다른 기계어코드가 생성됨 C program 컴파일 컴파일러 컴퓨터하드웨어 실행 기계어코드
자바 C program Java program 컴파일 인터프리터 컴파일 컴파일러 컴퓨터하드웨어 C/C++ 실행 실행 컴파일러 기계어코드 기계어코드 컴퓨터하드웨어 바이트코드 구조중립적(architecture neutral)이고 이식성(portable)이 높음
자바언어의 특징 • 구조중립적(architecture neutral)이고 이식성(portable)이 높음 • 바이트코드 인터프리터를 중심으로 몇가지 부가기능을 갖춘 소프트웨어를 자바가상기계(JVM)라고 부름 • 자바프래그램은 한번 작성/컴파일되면 JVM이 설치된 모든 종류의 컴퓨터에서 실행 가능 • 시스템 구조 중립적으로 설계됨 (int는 항상 32비트)
프로그램을 실행할 컴퓨터 기종과 무관한 바이트코드가 생성됨 프로그램을 실행할 컴퓨터 기종과 무관한 컴파일러(번역기) 한 종류만 존재함 클라이언트(JVM) 서버 해 석 기 실행결과 바이트 코드 *.class 번 역 기 소스코드 *.java 인터넷 윈도PC 해 석 기 실행결과 자바 바이트코드는 자바 가상기계가 설치된 어떤 컴퓨터에서도 실행 가능하며 네트워크를 통해 쉽게 배포할 수 있다. 핸드폰 interpreter
자바 프로그램 컴파일러 개발환경 바이트 코드 인터프리터 실행환경 인터프리터 인터프리터 핸드폰 Macintosh 컴퓨터 Windows PC
Java SE 개발도구 라이브러리 (API) VM: Virtual Machine (가상기계) JDK: Java Development Kit JRE: Java Runtime Environment
자바 개발 도구 • J2SE 자바 표준 개발 환경에 포함되어 있는도구 • 자바 번역기 : javac • 자바 해석기 : java • 자바 디버거 : jdb • 자바 문서 생성기 : javadoc • 자바 압축 도구 : jar • JDK는 GUI(Graphical User Interface) 형태의 개발환경을 제공하지 않음