[INA470] Java Programming Youn-Hee Han

Slides:



Advertisements
Similar presentations
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++ 통합 환경 들어가기.
Advertisements

명품 JAVA Programming 제 3 장 반복문, 배열, 예외처리.
어서와 Java는 처음이지! 제3장선택과 반복.
제 7주 2015년 1학기 강원대학교 컴퓨터학부 담당교수: 정충교
어서와 Java는 처음이지! 제2장 자바 프로그래밍 기초.
컴퓨터 응용 및 실습 Part1. OOP&Java Programming data type Review
C++ Espresso 제1장 기초 사항.
어서와 Java는 처음이지! 제2장 자바 프로그래밍 기초.
7장 배열 ②.
2014 ITA 8월 강의 C Programming -1주차- C언어 기초 정대진 ( )
Java Seminar 6.
[INA470] Java Programming Youn-Hee Han
제6장 제어(Control) 6.1 구조적 프로그래밍(Structured Programming)
자바란 무엇인가? JDK의 다운로드 및 설치 방법 Hello, Java 프로그램의 작성 자바 프로그램의 작동 원리
윤 홍 란 제3장 클래스와 객체의 사용-1 윤 홍 란
2주 실습강의 Java의 기본문법(1) 인공지능연구실.
Chapter 02 자바 기본구조 자바 프로그래밍의 기초적인 문법을 소개
[INA470] Java Programming Youn-Hee Han
제7장 제어구조 I – 식과 문장.
명품 JAVA Essential.
정적 메소드와 정적 변수 상수 래퍼 클래스 포매팅
Java RMI (Remote Method Invocation)
Java RMI (Remote Method Invocation)
명품 JAVA Programming 제 4 장 클래스와 객체.
Power Java 제4장 자바 프로그래밍 기초.
Kasimov C언어 세미나 1st.
[INA470] Java Programming Youn-Hee Han
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express.
명품 JAVA Essential.
명품 Java Programming.
윤 홍 란 4 장 클래스 작성 윤 홍 란
누구나 즐기는 C언어 콘서트 제2장 기초 사항.
프로그래밍 서울대학교 통계학과 2009년 2학기 컴퓨터의 개념 및 실습 (
DataScience Lab. 박사과정 김희찬 (월)
[INA240] Web Programming Homework #3 [INA240] Web Programming
5장 조건과 반복 ①.
제2장 데이터 및 수식.
[Homework #2] Chapter 5 Chapter 6 Page 110, 문제 13 – 피라미드 높이 구하는 문제
제1장 서론.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
Chapter 2 Lexical Elements, Operators, and the C System
제2장 데이터 및 수식.
어서와 Java는 처음이지! 제4장 배열 IT응용시스템공학과 김형진 교수.
DataScience Lab. 박사과정 김희찬 (월)
자바의 신 Volume 1 1부(1~3장) 자바의 신 메인 홈 : 자바의 신 페이스북: 자바의 신 문제 풀이 :
Ch.1 Iterator Pattern <<interface>> Aggregate +iterator
[INA240] Data Structures and Practice
제 2장 어휘구조와 자료형 토 큰 리 터 럴 주 석 자 료 형 배 열 형.
Introduction to Programming Language
프로그래밍 원리 Chapter 04 자료 처리와 연산자 신한대학교 IT융합공학부 박 호 균.
컴퓨터공학실습(I) 3주 인공지능연구실.
Java IT응용시스템공학과 김형진 교수 5장. 객체지향 개념 public class SumTest {
자바 5.0 프로그래밍.
5장 조건과 반복 ①.
Internet Computing KUT Youn-Hee Han
Java 3장. 자바의 기본 구조 I : 변수, 자료형, 연산자 public class SumTest {
4. 어휘 분석(Lexical analysis)
쉽게 풀어쓴 C언어 Express 제2장 프로그램 개발 과정 C Express.
Signature, Strong Typing
JVM의 구조와 메모리 모델 JVM의 내부 구조 클래스 파일 클래스 로더 메소드(method) 영역 힙(heap) 영역
Signature, Strong Typing
Java RMI (Remote Method Invocation)
컴퓨터 프로그래밍: 실습 1 제 1장 . 서론.
Java 5장. 객체지향 개념 public class SumTest {
캡슐화 (Encapsulation) 두원공과대학 소프트웨어개발과 이 원 주.
Algorithms and Practice
[Homework #4] 문제 1] P. 305의 5번 문제 문제 2] p. 309의 2번 문제
C.
Java의 정석 제 7 장 객체지향개념 II-3 Java 정석 남궁성 강의
Chapter8 : 인터페이스와 패키지 8.1 인터페이스 개요와 인터페이스 정의 8.2 인터페이스의 사용
Presentation transcript:

[INA470] Java Programming Youn-Hee Han http://link.kut.ac.kr 04. 자바 프로그래밍 기초 [INA470] Java Programming Youn-Hee Han http://link.kut.ac.kr

1. “Hello World!” 예제 HelloWorld.java 프로그램 분석

1. “Hello World!” 예제 주석(comment): 프로그램에 대한 설명을 적어 넣은 것

1. “Hello World!” 예제 클래스 정의 클래스(class): 객체를 만드는 설계도 (추후에 학습) 자바 프로그램은 클래스들로 구성된다. public 키워드는 Hello 클래스가 다른 클래스에서도 사용가능 함을 나타낸다.

1. “Hello World!” 예제 메소드 (method) 정의 public: 다른 클래스에서 이용할 수 있음 static: 정적 메소드(9장 부근에서 학습) void: 반환값이 없음 main: 메소드 이름 String args[]: 매개 변수 (또는 입력 파라미터) 메소드가 외부에서 받는 데이터 main 함수인 경우는 cmd 창에서 입력을 받음

1. “Hello World!” 예제 문장 (statements) 정의 문장들은 메소드 안에 들어 있다. 문장의 끝은 항상 세미콜론(;)으로 끝나게 된다.

1. “Hello World!” 예제 정리

1. “Hello World!” 예제 중간 점검 문제 1. 자바 프로그램의 개발 단위는 ___________이다. 2. ___________은 프로그램에 대한 설명이다. 3. 입력을 받아서 작업을 수행하고 결과를 내보내는 작은 기계로 생각할 수 있는 것은 __________이다. 4. 모든 자바 소스 파일의 확장자는 ___________이다.

2. “Add” 예제 “Add” 예제

2. “Add” 예제 변수 변수(variable)란 프로그램이 사용하는 데이터를 일시적으로 저장할 목적으로 사용하는 메모리 공간 변수 타입 (Type) Java is a strong-typed language 변수 이름 (Name)

2. “Add” 예제 상수 상수(constant)란 그 값이 프로그램이 실행하는 동안 변하지 않는 수 상수 타입 (Type) Java is a strong-typed language 상수 이름 (Name)

2. “Add” 예제 변수의 초기화 상수의 초기화 final int x=0; final int y=0; final int sum=0; final int x; x = 0; Assignment Operator final int x; x = 0; x = 10; -----> (X)

2. “Add” 예제 수식 (expression) 상수, 변수, 연산자의 조합으로 구성된 식 피연산자(operand)와 연산자(operator)로 이루어진다. 변수 또는 상수 하나만도 수식이라고 부를 수 있다. x = 100; y = 200; sum = x + y;

2. “Add” 예제 대입 연산 대입 연산자 == 할당 연산자 == 배정 연산자 변수에 값을 저장하는 연산자 (예) x = 100;

2. “Add” 예제 산술 연산 sum = x + y;

3. “Add2” 예제 “Add2” 예제 사용자로부터 두 개의 정수를 받아서 더하는 문제 사용자로부터 숫자를 받을 수 있어야 한다.

3. “Add2” 예제 “Add2” 예제

3. “Add2” 예제 import 문장 import java.util.Scanner; Java.util.Scanner 클래스를 해당 java 소스에서 사용하겠다는 의도 Java.util.Scanner는 자바 클래스 라이브러리(Java Class Library)의 일종 입력 스트림 (예를 들어 System.in)으로 데이터 입력을 받을 때 사용 Scanner앞의 java.util은 패키지 이름 패키지 (Package): 같은 종류의 클래스들을 모아놓은 것 자바 클래스 라이브러리들은 수많은 패키지들로 그룹화되어 있다. Java API Document에서 Scanner 클래스를 검색해보자. import java.util.Scanner;

3. “Add2” 예제 객체 생성 input은 타입이 java.util.Scanner인 변수이면서 생성된 객체를 참조하는 변수 new Scanner(System.in)는 Scanner 클래스의 객체(object)를 생성하는 생성자의 호출 상세한 설명은 차후에…. 일단 입력을 받으려면 이 문장이 필요하다고 알아두자. Scanner 객체

3. “Add2” 예제 사용자로부터 입력 Scanner 객체인 input을 이용하여 사용자로부터 정수를 읽어 들이는 문장 input을 통하여 nextInt()라고 하는 메소드를 호출하게 된다. nextInt()에서 반환된 값은 변수 x에 대입된다. 추후에 자세히…. 10 nextInt() Scanner 객체

3. “Add2” 예제 화면 출력 println()은 문자열을 출력한 후에 줄을 바꾸는 메소드 첫번째 숫자를 입력하시오:

4. 응용 프로그램 예제 문제1] 연봉 계산 문제 10년 동안 월급을 모두 저금할 경우, 얼마나 모을 수 있을까? 코딩 방법 사용자에게 월급의 액수를 입력받는다. 입력받은 월급 액수에 12(1년의 달수)를 곱하고… 다시 10(10년)을 곱한다. 먼저 자신이 코딩을 해보고 교재에 나온 것과 비교

4. 응용 프로그램 예제 문제1] 연봉 계산 문제 10년 동안 월급을 모두 저금할 경우, 얼마나 모을 수 있을까?

4. 응용 프로그램 예제 [문제 2] 원의 면적 구하기 사용자로부터 원의 반지름을 입력받고 이 원의 면적을 구한 다음, 화면에 출력한다. Scanner 클래스의 객체 input 이 지닌 nextDouble()을 통해 반지름을 입력받는다. 먼저 자신이 코딩을 해보고 교재에 나온 것과 비교 교재에 있는 3.14 라는 숫자 대신에 java.lang.Math 클래스에 정의되어 있는 PI 상수를 활용하여 코딩해보자.

4. 응용 프로그램 예제 [문제 2] 원의 면적 구하기

4. 응용 프로그램 예제 [문제 3] 원화를 달러화로 계산 달러에 대한 원화 환율(예를 들어 1달러는 1392.83원)은 실수형 변수에 저장 사용자로부터는 받는 원화는 정수 변수에 저장 원화를 환율로 나누어서 사용자가 입력한 원화가 몇 달러에 해당하는지를 계산 스스로 코딩해보자.

5. 오류 컴파일 오류 (compile error) 컴파일시에 발견되는 오류 구문 오류(syntax error): 문법 규칙에 따르지 않아 발생 의미 오류(semantic error): 문법 규칙에 모두 맞지만 계산식에서 호환이 되지 않는 서로 다른 타입의 데이터가 포함된 계산이나 초기화되지 않은 변수 값을 출력하려고 할 때 발생 HelloWorld.java:13: cannot resolve symbol symbol  : method printline  (java.lang.String) location: class com.otherwise.jurtle.Console         Console.printline("Hello world");                ^ 1 error HelloWorld.java:13: ';' expected         Console.println("Hello world")                                       ^ 1 error public void runTurtle() {     int j;     Console.println(j); } Test.java:12: variable j might not have been initialized         Console.println(j);                         ^ 1 error

5. 오류 컴파일 오류 (compile error) 연속적 오류 (Cascading Errors) 구문 또는 의미 오류가 발생하는 데 있어서 컴파일러가 확실하게 하나의 오류로서 판단하지 못하고 애매모호한 경우 여러 가능성 있는 오류를 모두 리스트함 ASimpleSquare.java:24: '.class' expected         fo ( int i = 0; i < 4; i++ )                  ^ ASimpleSquare.java:24: ')' expected         fo ( int i = 0; i < 4; i++ )                       ^ ASimpleSquare.java:24: not a statement         fo ( int i = 0; i < 4; i++ )                           ^ ASimpleSquare.java:24: ';' expected         fo ( int i = 0; i < 4; i++ )                                    ^ ASimpleSquare.java:24: unexpected type required: value found   : class         fo ( int i = 0; i < 4; i++ )              ^ ASimpleSquare.java:24: cannot resolve symbol symbol  : variable i location: class ASimpleSquare         fo ( int i = 0; i < 4; i++ )                                ^ 6 errors fo ( int i = 0; i < 4; i++ ) {    forward( 60 );    right( 90 ); } 실제 에러는 for 키워드를 fo로 잘못 타이핑한 것

5. 오류 실행 오류 (runtime error) 실행 오류는 프로그램이 실행되는 도중에 발생하는 오류 (예) 0으로 나누려고 시도 자바에서는 많은 실행 오류들을 예외(exception)를 사용하여 처리 (예) 프로그램상에서 만약 0으로 나누는 시도가 발견되면 관련된 exception 객체를 생성하여 던져버림 15장에서 자세히 학습

5. 오류 논리 오류 (logical error) 컴파일되고 실행도 잘 되지만 의도하지 않는 결과를 발생하는 경우 (예) 값이 예상과는 다르게 잘못 계산되는 경우 디버깅(debugging): 논리 오류를 찾고 고치는 과정

[Homework #1] Page 74, 문제 4 – 섭씨 온도, 화씨 온도 문제 Page 75, 문제 7 – 다항식 문제 제출기한 9월 16일 수요일 23:59:59

[Homework #1] 제출형태 참고 보고서와 소스/바이트 코드를 하나로 묶은 ZIP 파일을 게시판에 업로드 서론, 본론, 결론의 구조를 가진 보고서 (HWP, MS-워드) 서론: Homework의 내용, 사용 언어, 사용 프로그램, OS 환경 등… 본론: 프로그래밍 관련 문제는 반드시 실행 결과 화면을 캡쳐하여 삽입 결론: 숙제를 한 이후의 느낀점, 하고싶은 말, 또는 불평~~ 소스 코드, 바이트 코드 파일명: 자바프로그래밍-1차-홍길동-2005111222.zip 게시판의 게시물 제목: 자바프로그래밍-1차-홍길동-2005111222 참고 각종 질문은 “수업 Q&A 게시판”에 등록 Data Structure