제1장 서론.

Slides:



Advertisements
Similar presentations
- 1 - IT COOKBOOK 전산정보처리학과 프로그래밍 언어 전산정보처리학과 중위 ( 진 ) 정세화.
Advertisements

Copyright © 2015 Pearson Education, Inc. 6 장 : 프로그래밍 언어.
Chap02 자바환경과 자바 프로그램 Section 1 : 자바 개발 환경 Section 2 : 자바 통합 환경 Section 3 : 자바 응용 프로그램과 애플릿 프로그램 Section 4 : 자바 응용 프로그램 Section 5 : 자바 애플릿 프로그램.
멘토링 2 주차 장 프로그래밍을 위한 자바의 자료형  값이 변하지 않는 상수  메모리 기억공간인 변수.
YES C 제 1 장 C 언어의 개요 1/34 제 1 장 C 언어의 개요 문봉근. YES C 제 1 장 C 언어의 개요 2/34 제 1 장 C 언어의 개요 1.1 프로그램과 C 언어의 특징 1.2 C 언어의 프로그램 구성 1.3 비주얼 C++ 통합 환경 들어가기.
© IBM Corporation 2006 목 차목 차  자바 언어의 소개  자바 언어의 역사  자바 환경 설정 (JDK 1.5)  Documentation API 의 설치  Eclipse 의 설치와 사용법  HelloWorld.
어서와 Java는 처음이지! 제3장선택과 반복.
어서와 Java는 처음이지! 제2장 자바 프로그래밍 기초.
컴퓨터 응용 및 실습 Part1. OOP&Java Programming data type Review
C++ Espresso 제1장 기초 사항.
이규헌 강병현 송영철.
객체지향 프로그래밍.
어서와 Java는 처음이지! 제1장 기초 사항.
어서와 Java는 처음이지! 제2장 자바 프로그래밍 기초.
알기 쉽게 해설한 Java 8th edition
4부 클래스 라이브러리 “4부에서는 자바 언어의 API인 클래스 라이브러리에 관해 설명합니다
이번 시간에는... 지난 시간에는 VM 기반 모바일 플랫폼 기술의 첫번째 시간으로, 모바일 플랫폼 및 그 현황과, GVM, XVM, WITOP, Brew 및 JavaStation 모바일 플랫폼의 특징과 구성에 대해 알아 보았습니다. 이번 시간에는 모바일 플랫폼 기술 그.
[INA470] Java Programming Youn-Hee Han
어서와 Java는 처음이지! 제1장 기초 사항 IT응용시스템공학과 김형진 교수.
제6장 제어(Control) 6.1 구조적 프로그래밍(Structured Programming)
제 1 장. JAVA란 작성자 : NLIP.
2주 실습강의 Java의 기본문법(1) 인공지능연구실.
Chapter 02 자바 기본구조 자바 프로그래밍의 기초적인 문법을 소개
제7장 제어구조 I – 식과 문장.
2강. JAVA 프로그래밍이란?-II & 변수 JAVA 프로그램 환경설정과 실행 방법 변수란?
명품 JAVA Essential.
CDC Connected Device Configuration CLDC보다 많은 리소스를 가진 시스템을 대상으로 설정
Sookmyung Women’s Univ. PSLAB Moon, Se won
Power Java 제4장 자바 프로그래밍 기초.
Kasimov C언어 세미나 1st.
프로그래머를 위한 Java 2 제1장 Java, JVM 소개
10장 객체-지향 프로그래밍 II ©창병모.
JAVA 프로그래밍 6장 객체지향프로그래밍의 핵심.
Choi, Namseok Java 기초 (Java의 제어문과 배열) Choi, Namseok
명품 Java Programming.
Visual C++ Programming
2장 자바환경과 자바 프로그램 2.1 자바 개발 환경 2.2 자바 통합환경 2.3 자바 응용 프로그램과 애플릿 프로그램
윤 홍 란 4 장 클래스 작성 윤 홍 란
DataScience Lab. 박사과정 김희찬 (월)
제2장 데이터 및 수식.
김 정 석 Web Programming 김 정 석
Power Java 제1장 자바 소개.
자바 5.0 프로그래밍.
( Overview of the Course Kwangman Man ( SangJi University.
객체 지향 프로그래밍.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
제2장 데이터 및 수식.
DataScience Lab. 박사과정 김희찬 (월)
컴퓨터의 기초 제 2강 - 변수와 자료형 , 연산자 2006년 3월 27일.
03. 안드로이드를 위한 Java 문법 제목. 03. 안드로이드를 위한 Java 문법 제목.
Ch.1 Iterator Pattern <<interface>> Aggregate +iterator
Small-scale Java Virtual Machines
제 2장 어휘구조와 자료형 토 큰 리 터 럴 주 석 자 료 형 배 열 형.
김 정 석 Web Programming 김 정 석
[INA470] Java Programming Youn-Hee Han
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
Java Chapter 4 ~ 주차.
컴퓨터공학실습(I) 3주 인공지능연구실.
Java IT응용시스템공학과 김형진 교수 5장. 객체지향 개념 public class SumTest {
자바 5.0 프로그래밍.
Chapter 02. 소프트웨어와 자료구조.
Java 3장. 자바의 기본 구조 I : 변수, 자료형, 연산자 public class SumTest {
JVM의 구조와 메모리 모델 JVM의 내부 구조 클래스 파일 클래스 로더 메소드(method) 영역 힙(heap) 영역
Chapter 4 클래스 작성.
강의교안 이용 안내 *이 책에 딸린 강의자료는 교수님의 효율적인 수업진행을 돕기 위해 만들어졌습니다.
11장 다형성과 추상 클래스, 인터페이스 Section 1 객체의 형 변환 Section 2 연산자 Section 3 다형성
Java의 정석 제 7 장 객체지향개념 II-3 Java 정석 남궁성 강의
Chapter2 : 자바환경과 자바 프로그램 2.1 자바 개발 환경 2.2 자바 통합개발환경(IDE)
Java Programming for Beginners
Choi Younghwan CSE HUFS
Presentation transcript:

제1장 서론

주요 강의 내용 객체-지향 소프트웨어 개발 문제 해결(problem solving) 프로그램 설계, 구현, 테스트 객체-지향 개념 클래스(classes) 객체(objects) 캡슐화(encapsulation) 상속(inheritance) 다형성(polymorphism) 그래픽 사용자 인터페이스(graphical user interfaces) Java 프로그래밍 언어 © 2004 Pearson Addison-Wesley. All rights reserved

서론 1장 내용: 프로그래밍 과 프로그래밍 언어 자바 소개 객체-지향 개념 개요 © 2004 Pearson Addison-Wesley. All rights reserved

Outline Java 프로그래밍 언어 프로그램 개발 객체-지향 프로그래밍 © 2004 Pearson Addison-Wesley. All rights reserved

Java 시작 NCSA Mosaic(1994) - first browser: Big Bang of the Web Web Browser may provide us what we want such as platform independence, security James Gosling WebRunner Browser implemented by Java Java(1995.5) © 2004 Pearson Addison-Wesley. All rights reserved

Java 특장점 플랫폼 독립성(Platform Independence) 풍부한 Java 표준 API JVM과 Java API가 구현된 곳은 어디서나 수행가능 풍부한 Java 표준 API 새로운 언어에 대한 요구 반영 객체-지향 개념을 충분히 반영 Applet를 이용한 웹 페이지와 연동 자동 쓰레기 수집(automatic garbage collection) 좋은 무료 개발 환경 JDK(Java Development Kit) © 2004 Pearson Addison-Wesley. All rights reserved

J2ME (Java 2 Micro Edition) Servers Workstations PCs Thin Clients Battery Powered Card HotSpot JVM KVM Card VM Java Classes Smart Card Profile CDC Foundation Class TV Screen Phone Car CLDC Core Class MIDP Kitty- Hawk DojaP J2EE J2SE J2ME (Java 2 Micro Edition) Embedded Space CVM © 창병모

Java 프로그래밍 언어 Java 프로그래밍 언어 프로그램 작성에 사용되는 단어와 기호 정의 프로그램 작성에 사용되는 단어와 기호 정의 유효한 프로그램 문장(statement)을 만드는 (단어, 기호 조립) 규칙 정의 Java 프로그래밍 언어 Sun Microsystems, 1995 © 2004 Pearson Addison-Wesley. All rights reserved

Java 프로그램 구조 Java 프로그래밍 언어: Java 애플리케이션 반드시 Main 메쏘드를 포함해야 한다. 프로그램 하나 혹은 그 이상의 클래스들로 구성된다. 클래스 하나 혹은 그 이상의 메쏘드들을 포함한다. 메쏘드 프로그램 문장들을 포함한다. Java 애플리케이션 반드시 Main 메쏘드를 포함해야 한다. © 2004 Pearson Addison-Wesley. All rights reserved

Lincoln.java //******************************************************** // Java 애플릿케이션의 기본 구조를 보여준다. public class Lincoln { //------------------------------------------- // 대통령의 말씀을 프린트한다 public static void main (String[] args) System.out.println (“A quote by Abraham Lincoln:"); System.out.println (“Whatever you are, be a good one."); } // method main } // class Lincoln © 2004 Pearson Addison-Wesley. All rights reserved

Java 프로그램 구조 // 클래스에 대한 주석(코멘트) public class MyProgram { // 클래스에 대한 주석(코멘트) public class MyProgram { } 클래스 머리(class header) 클래스 본체(class body) 주석은 어디든지 가능 © 2004 Pearson Addison-Wesley. All rights reserved

Java 프로그램 구조 // 클래스에 대한 주석 public class MyProgram { // 메쏘드에 대한 주석 // 클래스에 대한 주석 public class MyProgram { } // 메쏘드에 대한 주석 public static void main (String[] args) { } 메쏘드 머리 (method header) 메쏘드 본체(method body) © 2004 Pearson Addison-Wesley. All rights reserved

코멘트/주석(Comments) 인라인 문서(inline documentation)라고도 한다. 프로그램의 목적과 처리 단계를 설명 프로그램 실행과는 무관 3 형태의 Java 코멘트 // 이 줄 끝까지 코멘트 /* this comment runs to the terminating symbol, even across line breaks */ /** 한글 코멘트도 가능 */ © 2004 Pearson Addison-Wesley. All rights reserved

식별자(Identifiers) 식별자 ? 식별자 구성 규칙 관례 프로그램에서 사용하는 단어 혹은 이름 프로그래머가 선택할 수 있음 식별자 구성 규칙 문자, 숫자, 밑줄문자(_)로 구성 숫자로 시작할 수 없음 대소문자 구별(case sensitive ) Total, total, TOTAL 관례 title case for class names - Lincoln upper case for constants - MAXIMUM © 2004 Pearson Addison-Wesley. All rights reserved

예약어(Reserved Words) 미리 정의된 특별한 식별자 Java 예약어 abstract boolean break byte case catch char class const continue default do double else enum extends false final finally float for goto if implements import instanceof int interface long native new null package private protected public return short static strictfp super switch synchronized this throw throws transient true try void volatile while © 2004 Pearson Addison-Wesley. All rights reserved

공백(White Space) 공백 공백을 이용하여 한 프로그램을 여러 포맷으로 작성 가능 공백문자(Space), 개행문자(new line), 탭 문자(tab) 단어와 기호를 분리하는데 사용 불필요한 공백은 무시 공백을 이용하여 한 프로그램을 여러 포맷으로 작성 가능 적절히 사용해서 읽기 쉽게 작성해야 함. © 2004 Pearson Addison-Wesley. All rights reserved

Lincoln2.java //******************************************************************** // 적법하기는 하지만 서툴게 편집된 프로그램을 보여준다. public class Lincoln2{public static void main(String[]args){ System.out.println("A quote by Abraham Lincoln:"); System.out.println("Whatever you are, be a good one.");}} © 2004 Pearson Addison-Wesley. All rights reserved

Lincoln3.java //******************************************************************** // 서툴게 편집된 또 다른 적법한 프로그램을 보여준다.           public       class      Lincoln3    {                  public    static         void   main         ( String              []     args                        )   {   System.out.println         ( "A quote by Abraham Lincoln:"           )   ;        System.out.println             (        "Whatever you are, be a good one."      )   ; }          } © 2004 Pearson Addison-Wesley. All rights reserved

Outline Java 프로그래밍 언어 프로그램 개발 객체-지향 프로그래밍 © 2004 Pearson Addison-Wesley. All rights reserved

프로그램 개발 프로그램 개발 과정 소프트웨어 도구를 사용할 수 있음. (Java) 같은 특정 언어로 프로그램 작성 프로그램을 컴퓨터가 실행할 수 있는 형식으로 번역 일어날 수 있는 여러 종류의 오류를 찾아내고 수정 소프트웨어 도구를 사용할 수 있음. © 2004 Pearson Addison-Wesley. All rights reserved

언어 수준 3 수준의 프로그래밍 언어 CPU마다 고유의 기계어가 있다. 기계어(machine language) 어셈블리어(assembly language) 고급 언어(high-level language) CPU마다 고유의 기계어가 있다. 다른 수준의 언어는 사람이 쉽게 사용할(읽고/쓸) 수 있도록 만들었다. © 2004 Pearson Addison-Wesley. All rights reserved

프로그래밍 언어 CPU마다 고유의 기계어가 있다. 프로그램 번역 컴파일러(compiler) 프로그램은 실행 전에 기계어로 번역되어야 한다. 컴파일러(compiler) 원시 코드(source code)를 특정 목적 언어로 번역하는 소프트웨어 흔히 목적 언어는 CPU의 기계어이다. Java 는 좀 다른 방법을 사용한다. © 2004 Pearson Addison-Wesley. All rights reserved

Java 번역 Java 컴파일어 바이트코드(bytecode) 바이트코드 인터프리터(interpreter) 특정 CPU의 기계어는 아님 가상의 저수준 코드 바이트코드 인터프리터(interpreter) 해석해서 실행하는 소프트웨어 © 2004 Pearson Addison-Wesley. All rights reserved

Java 번역 Java source code Java bytecode Java compiler Bytecode interpreter Bytecode compiler Machine code © 2004 Pearson Addison-Wesley. All rights reserved

Java Virtual Machine 자바 가상 기계 JVM Java 프로그램 실행 환경 Bytecode interpreter를 포함하고 있음 다양한 OS 환경 하에서도 동작됨 웹 브라우저에 내장되어 있음 OS JavaVM Java 프로그램 © 2004 Pearson Addison-Wesley. All rights reserved

개발 환경(Development Environment) Java 프로그램 개발 환경 Sun Java Development Kit (JDK) + EditPlus Sun NetBeans IBM Eclipse Borland JBuilder Monash BlueJ 편집, 컴파일, 실행 과정은 유사 © 2004 Pearson Addison-Wesley. All rights reserved

기본적인 프로그램 개발 과정 오류 오류 프로그램 편집 및 저장 프로그램 컴파일 프로그램 실행 및 결과 평가 © 2004 Pearson Addison-Wesley. All rights reserved

오류(Error) 3 종류 프로그래밍 오류 컴파일-시간 오류(compile-time errors) 컴파일러가 찾아내는 구문 오류 등의 오류 실행 파일을 만들 수 없다. 실행-시간 오류(run-time errors) 프로그램 실행 중에 발생된 문제 0으로 나누기  프로그램 종료 논리 오류 (logical errors) 실행은 되나 잘못된 결과 생성 © 2004 Pearson Addison-Wesley. All rights reserved

Outline Java 프로그래밍 언어 프로그램 개발 객체-지향 프로그래밍 © 2004 Pearson Addison-Wesley. All rights reserved

문제 해결(Problem Solving) 프로그램 작성 목적은 어떤 문제 해결 문제 해결 과정 문제 이해 해법(solution) 설계 다른 생각으로 해법 개선 해법 구현 테스트 © 2004 Pearson Addison-Wesley. All rights reserved

문제 해결(Problem Solving) 해법 설계의 핵심 문제를 관리 가능한 조작들로 나눈다 Divide and Conquer ! 소프트웨어 작성 해법의 각 부분을 담당하는 여러 조작으로 나누어 설계한다. 객체 지향 방법(object-oriented approach) 일종의 해법 분해 과정 문제에 대한 해법을 객체와 클래스라는 조각으로 분해 © 2004 Pearson Addison-Wesley. All rights reserved

객체-지향 프로그래밍 Java는 객체-지향 프로그래밍 언어이다. (object-oriented programming language) 객체는 Java 프로그램에서 기본적인 개체(entity)이다. 객체는 실세계의 개체를 나타내는데 사용된다. 예 회사의 직원을 나타내는 객체 각 직원 객체가 직원과 관련된 데이터 관리 및 처리를 담당한다. © 2004 Pearson Addison-Wesley. All rights reserved

객체(Objects) 객체 은행 계좌 상태 은행 계좌 동작 객체의 동작이 상태를 바꿀 수 있다. 상태(state) - 특성을 나타내는 동작(behaviors) - 할 수 있는 혹은 될 수 있는 은행 계좌 상태 번호, 잔액, 거래 내역 은행 계좌 동작 입금, 출금 객체의 동작이 상태를 바꿀 수 있다. © 2004 Pearson Addison-Wesley. All rights reserved

클래스(Classes) 클래스 클래스 내부 클래스 vs. 객체 객체에 대한 정의 객체에 대한 설계도 상태를 나타내기 위한 변수 동작을 정의하는 메쏘드 main 메쏘드 포함하는 클래스가 전체 프로그램을 대표 클래스 vs. 객체 클래스는 개념을 나타내고 객체는 그 개념의 실체를 나타낸다. 한 클래스로 부터 여러 객체들을 생성할 수 있다. © 2004 Pearson Addison-Wesley. All rights reserved

객체와 클래스 클래스 (개념) 객체 (실체) 한 클래스로부터 여러 객체들 생성 Bank Account John’s Bank Account Balance: $5,257 객체 (실체) Bill’s Bank Account Balance: $1,245,069 Mary’s Bank Account Balance: $16,833 한 클래스로부터 여러 객체들 생성 © 2004 Pearson Addison-Wesley. All rights reserved

상속(Inheritance) 상속을 통해 한 클래스로부터 다른 클래스 유도 가능 상속 관계에 따라 클래스 계층구조 형성 Bank Account Account Charge Account Savings Account Checking Account © 2004 Pearson Addison-Wesley. All rights reserved

요약 프로그래밍 언어 자바 소개 객체-지향 개념 개요 © 2004 Pearson Addison-Wesley. All rights reserved