No Slide Title

Similar documents
JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

JAVA PROGRAMMING 실습 02. 표준 입출력

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

OCW_C언어 기초

PowerPoint Presentation

쉽게

Microsoft PowerPoint - chap04-연산자.pptx

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

PowerPoint Presentation

TEST BANK & SOLUTION

PowerPoint Presentation

Microsoft PowerPoint - [2009] 02.pptx

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

Microsoft PowerPoint - chap03-변수와데이터형.pptx

PowerPoint Presentation

PowerPoint 프레젠테이션

PowerPoint Presentation

슬라이드 1

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

<4D F736F F F696E74202D20C1A633C0E52043C7C1B7CEB1D7B7A5B1B8BCBABFE4BCD2>

PowerPoint Presentation

Microsoft PowerPoint - 2주차-1차시 (강의자료) ch01 - C Programming 기초 (part 2)

Microsoft PowerPoint - chap-03.pptx

PowerPoint 프레젠테이션

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint - lec2.ppt

프로그램의실행화면 주석 (comment) 두수의합 : 300 /* 두개의숫자의합을계산하는프로그램 */ 주석은코드를설명하는글입니다. 주석 3 가지방법의주석 주석의예 /* 한줄로된주석 */ /* 저자 : 홍길동날짜 : 2013.

PowerPoint 프레젠테이션

Microsoft PowerPoint - Java7.pptx

Microsoft PowerPoint - Lesson2.pptx

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - Chapter_04.pptx

PowerPoint 프레젠테이션

Java ...

Microsoft PowerPoint - ch07 - 포인터 pm0415

JAVA PROGRAMMING 실습 08.다형성

PowerPoint 프레젠테이션

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

JAVA PROGRAMMING 실습 09. 예외처리

CHAPTER 02 데이터형과수식 JAVA Programing

프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음

슬라이드 1

Design Issues

4장.문장

Microsoft PowerPoint - 2강

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning

PowerPoint Presentation

파일로입출력하기II - 파일출력클래스중에는데이터를일정한형태로출력하는기능을가지고있다. - PrintWriter와 PrintStream을사용해서원하는형태로출력할수있다. - PrintStream은구버전으로가능하면 PrintWriter 클래스를사용한다. PrintWriter

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft PowerPoint - C프로그래밍-chap03.ppt [호환 모드]

Microsoft PowerPoint - e pptx

PowerPoint Presentation

02 C h a p t e r Java

중간고사

07 자바의 다양한 클래스.key

PowerPoint Presentation

Microsoft PowerPoint - Perpect C 02.ppt [호환 모드]

KNK_C03_Expr_kor

Microsoft PowerPoint 장강의노트.ppt

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

OCW_C언어 기초

03-JAVA Syntax(2).PDF

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

C 프로그램의 기본

4. #include <stdio.h> #include <stdlib.h> int main() { functiona(); } void functiona() { printf("hihi\n"); } warning: conflicting types for functiona

PowerPoint 프레젠테이션

chap 5: Trees

슬라이드 1

1.2 자료형 (data type) 프로그램에서다루는값의형태로변수나함수를정의할때주로사용하며, 컴퓨터는선언된 자료형만큼의메모리를확보하여프로그래머에게제공한다 정수 (integer) 1) int(4 bytes) 연산범위 : (-2 31 ) ~ (2 31 /2)-

(8) getpi() 함수는정적함수이므로 main() 에서호출할수있다. (9) class Circle private double radius; static final double PI= ; // PI 이름으로 로초기화된정적상수 public

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2

Microsoft PowerPoint - C++ 5 .pptx

Microsoft PowerPoint - KNK_C03_Expr_kor

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

Microsoft PowerPoint - c2.ppt

Microsoft PowerPoint - chap05-제어문.pptx

Microsoft PowerPoint - lec3.ppt

12-file.key

슬라이드 1

슬라이드 1

금오공대 컴퓨터공학전공 강의자료

PowerPoint Presentation

JAVA PROGRAMMING 실습 02. 표준 입출력

C++ Programming

Microsoft PowerPoint - java1-lecture2.ppt [호환 모드]

Microsoft PowerPoint - CP_02_Convert_To_C_02_Step.pptx

OCW_C언어 기초

No Slide Title

C# Programming Guide - Types

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

슬라이드 1

A Tour of Java

쉽게 풀어쓴 C 프로그래밍

Transcription:

자바의기본요소 이충기 명지대학교컴퓨터공학과

들어가며 Q: 오늘부모님으로부터한달용돈으로 100,000 원을받았다. 오늘학교에오기위해버스를탔다. 버스요금은 1,800 원이다. 점심식사는학생식당에서 2,500 원짜리설렁탕으로했다. 집에가기위해다시버스와지하철을탔다. 버스요금은 1,500 원이고지하철요금은 900 원이다. 현재남아있는용돈을계산하기위한과정을초등학교학생도알수있게상세하게적어라. A: 2

데이터유형 (Data Type) 자바의데이터유형은기본형 (primitive data type) 과참조형 (reference type) 으로나눈다. 기본형은하나의값 (value) 을나타내는데이터의유형이다. 기본형에는정수형 (integer), 실수형 (floatingpoint), 논리형 (boolean) 과문자형 (character) 이있다. 참조형은실제값혹은값들의집합에대한참조 ( 위치혹은 reference) 를나타내는데이터의유형이다. 3

기본데이터유형 자바에는 8 개의기본데이터유형들이있다 정수형 : byte, short, int, long 실수형 : float, double 문자형 : char 논리형 : boolean 4

숫자기본형 여러숫자기본형들사이의차이는그들의크기이다 : 유형 크기 최소값 최대값 byte short int long 8 bits 16 bits 32 bits 64 bits -128-32,768-2,147,483,648 < -9 x 10 18 127 32,767 2,147,483,647 > 9 x 10 18 float double 32 bits 64 bits +/- 3.4 x 10 38 (7 개의유효숫자 ) +/- 1.7 x 10 308 (15 개의유효숫자 ) 5

문자형 문자형은한문자를나타내는데이터의유형이다. 자바에서문자를나타내기위해사용하는코드는유니코드 (Unicode) 이다. 유니코드는한문자를저장하기위해 16 비트를사용한다. 유니코드는국제적인문자집합을나타낸다. 한글을포함한여러나라의언어들의문자들과기호들을나타낸다. 한문자를나타내기위해작은따옴표를이용한다. 예 : 'a' 6

특수문자 자바특수문자들 : 특수문자의미 \b \t \n \r \" \' \\ backspace tab newline carriage return double quote single quote backslash 7

논리형 논리형은 true( 참 ) 또는 false( 거짓 ) 과같은논리값만을저장할수있다 논리형은전등이꺼져있거나켜져있는두가지상태들을나타내기위해사용될수있다. Q: 논리형의다른예는? 8

변수 (Variable) 변수는한데이터값을저장하기위해사용되는메모리내의한장소에대한이름이다. 유사 (Analogy) 예 : 한대학생이가지고있는용돈과식권의수를기록할때단지숫자만기록하지않고숫자가의미하는것을같이기록한다. 이때숫자앞에쓴단어가변수에해당된다. 용돈 식권의수 72,000 12 9

변수 모든변수는사용되기전에선언되어야한다. 변수선언은이름 (name) 과저장할데이터의유형을포함한다. 변수이름은식별자중의하나이다. 따라서식별자에적용되는규칙이그대로적용된다. 프로그램내의다른곳에서그변수가나오면그변수의현재값이사용된다. 10

예 : 변수이름 유효한변수이름 - number - E_mail_message - $interest - 점수 잘못된변수이름 - 1st ( 변수이름이숫자로시작되었다 ) - student-number (- 는변수이름에사용될수없다 ) 11

변수선언 < 데이터유형 > < 변수명 >; < 데이터유형 > < 변수명 > = < 초기값 >; 데이터유형 변수이름 int Counter; float BatAvg =.406; 주 : 같은유형을갖는여러변수들을한선언문에서 선언할수있다. 예 : int Count, Result; 12

상수 (Constant) 상수는프로그램의실행중변화하지않는값을나타낸다. 상수도변수와같이사용하기전에선언되어야한다. 상수의선언방법 public final < 데이터유형 > < 상수명 > = < 값 >; 예 : public final int MINPASSING = 60; public final float PI = 3.14159; 13

연산식 연산식은연산자들 (operators) 과피연산자들 (operands) 의결합이다. 산술연산식은결과값이숫자이고 다음의산술연산자 (arithmetic operator) 들을사용한다 : 덧셈 + 뺄셈 - 곱셈 * 나눗셈 / 나머지계산 % 14

산술연산식 산술연산자의피연산자들의하나혹은둘이실수라면결과는실수이다. 나누기연산자 (/) 의피연산자들이정수라면결과는정수이다 ( 소숫점이하를버린다 ). 예 : 13 / 4 = 3 8/ 9 = 0 나머지연산자 (%) 는첫번째피연산자를두번째피연산자로나눈나머지를구한다. 예 : 13 % 4 = 1 8 / 9 = 8 15

연산자우선순위 (Operator Precedence) 연산식은여러개의연산자들을포함할수있다. 예 : answer = 13 / 3 + 5 * 2; 연산자우선순위는연산자들이연산식에서적용되는순서를결정하는잘정의된규칙이다. 곱셈, 나눗셈과나머지연산자는덧셈이나뺄셈연산자보다우선순위가높다. 같은우선순위를갖는연산자들이연속해서나오는경우에는왼쪽에서오른쪽으로나온순서대로적용된다. 연산자들의우선순위는괄호를사용하여변경할수있다. 16

연산자우선순위 다음연산식들에서연산자의적용순서는? a + b + c + d + e 1 2 3 4 a + b * c - d / e 3 1 4 2 a / (b + c) - d % e 2 1 4 3 a / (b * (c + (d - e))) 4 3 2 1 17

배정문 (Assignment Statement) 배정문은변수의값을새로운값으로바꾼다. 구문법 : 변수명 = 연산식 ; 의미 : = 의오른쪽에있는연산식을계산하여결과값을왼쪽에있는변수안에저장한다. 예 : int count = 10; count = 15; 선언문이수행된후 : count 배정문이수행된후 : count 10 15 18

배정연산자 (Assignment Operator) 배정연산자 (=) 는산술연산자들보다낮은우선순위를갖는다. answer = sum / 4 + MAX * lowest; 4 1 3 2 먼저배정연산자의오른쪽에있는연산식을계산한다. 다음으로결과값을왼쪽에있는변수에저장한다. 19

배정연산자 배정문의좌변과우변에같은변수를포함할 수있다. count = count + 1; 먼저변수 count 의값에 1 을더한다. 다음으로더한결과를변수 count 에저장한다 ( 결과적으로변수 count 의값은 1 만큼증가한다 ). 20

단축연산자 (Shortcut Operator) Counter = Counter + 1; 혹은 Counter++; Counter = Counter - 1; 혹은 Counter--; Counter = Counter + 2; 혹은 Counter += 2; Counter = Counter * 5; 혹은 Counter *= 5; 마지막두예제 : = 다음에연산자가아니라연산자다음에 = 이다 21

데이터변환 (Data Conversion) 데이터를한형에서다른형으로변환하는것은때때로편리하다. 예를들면, 특정상황에서우리는정수를실수로다루고싶을지모른다. 데이터변환은정보를잃어버리는것을피하기위해조심스럽게다루어져야한다. 작은크기의데이터형에서더큰크기의데이터형으로변환하는것 ( 확장변환 ) 은가장안전하다. 큰데이터형에서더작은데이터형으로변환 ( 축소변환 ) 할때정보를잃어버릴수있다. 22

데이터변환 데이터변환은세가지방법으로일어날수있다 : 배정문변환 (assignment conversion) 승급변환 (promotion) 강제변환 (casting) 배정문변환은한데이터형의값이또다른데이터형의변수에저장될때일어난다. 확장변환만이가능하다. 승급변환은연산식에있는연산자들이 피연산자들을변환할때자동적으로일어난다. 23

데이터변환 강제변환은가장강력하나위험한방법이다. 확장변환과축소변환모두가능하다. 강제변환을하기위해서변환되는값앞에괄호안에변환되는형을넣는다. 아래배정문은변수 total 과 count 가정수형이나실수형나눗셈을원하기때문에 total 을강제로실수형으로변환한다 : average = (float) total / count; 24

자바문 (Java Statement) 자바프로그램의기본단위는문이다. 문은세미콜론 (;) 으로끝난다. 복합문 (Compound statement 혹은 block) 은여러개의문들의모음이다. 중괄호로시작과끝을표시한다. 복합문은문이나올수있는어느곳에서든지사용될수있다. 예 : { temp = a; a = b; b = temp; } 25

문자열상수 (String Literal) 모든문자열은 String 클래스의한객체이다. 문자열상수는쌍따옴표안에있는문자들의나열이다. 모든문자열상수는한문자열객체를나타낸다. 더하기 (+) 연산자가두개의문자열상수들을결합하기위해사용된다. + 연산자는문자열상수와숫자를결합하기위해사용될수있다. 26

출력문 (Output Statement) System.out.println(<arguments>); System.out.println( ); // 빈줄을출력한다 System.out.println(5); // 5 를출력한다 System.out.println( Hello ); // Hello 를출력 자바에서 println 과 print 의차이 : println 는끝에 carriage return 을포함한다. 다음에나오는 print 나 println 을새줄에출력한다. print 는다음에나오는 print 나 println 을같은줄의다음위치에출력한다. 27

문자열결합 (String Concatenation) + 연산자의피연산자들이문자열과숫자인경우에숫자가문자열로바뀐후결합된다. 예 : System.out.println( 나의나이 : + 20); 위문의출력결과는다음과같다 : 나의나이 : 20 다음출력문들의출력결과는? System.out.println( 3 과 4 를결합 : + 3 + 4 ); System.out.println( 3 과 4 를더함 : + (3 + 4) ); 28

import 문 자바에서클래스들은패키지들 (packages) 로묶여진다. 프로그램에서한패키지에있는클래스들을사용하기위해서우리는완전한클래스이름을쓰거나 import 선언문을사용해야한다. import 문구문양식 : import <package name>.<class name>; import <package name>.*; 예 : import java.util.scanner; import java.util.*; 29

입력문 프로그램들은일반적으로작업을하기위해입력을필요로한다. Scanner 클래스가여러데이터유형들의입력값들을읽기위한편리한메소드들을제공한다. Scanner 객체가여러입력장치들로부터입력값들을읽어드리기위해서만들어질수있다. 이값들은사용자가키보드를통해입력하는값들을포함한다. 키보드입력은 System.in 객체에의해나타내진다. 30

입력값읽기 다음문장이키보드로부터읽어드리는 Scanner 객체를생성한다 : Scanner scan = new Scanner(System.in); new 연산자가 Scanner 객체를생성한다. Scanner 객체는여러가지의입력메소드들을호출하기위해사용될수있다. 예를들면, 현재줄에남아있는모든입력을한문자열로읽기위해서다음과같이한다 : answer = scan.nextline(); 31

입력값읽기 Scanner 클래스는 java.util 패키지내에있다. 따라서그클래스는사용될프로그램안으로불러 (import) 들여야한다. nextline 메소드는현재줄의끝까지있는모든입력을읽어들인다. 클래스와객체에대해서는이후에자세히설명될것이다. 32

입력토큰들 (Input Tokens) 다르게명시되지않는다면백색공간은입력의요소들 ( 토큰들 ) 을분리하기위해사용된다. 백색공간은빈칸 (space), 탭 (tab), 새줄 (new line) 문자를포함한다. Scanner 클래스의 next 메소드는다음입력토큰을읽어들여그것을문자열로되돌려준다. nextint 와 nextdouble 메소드는각각 int 형과 double 형의데이터를읽어들인다. 33

간단한자바프로그램모형 // 클래스설명문 import... ; // import 문 public class 클래스이름 { // 메소드설명문 public static void main(string[] args) { // 메소드몸체 : 자바문들의나열... } } 34

예제프로그램작성 문제 : 원의반지름이주어지면면적을계산하는프로그램을작성하라. 힌트 : 원의면적계산공식 S = pi * r * r (S: 면적, pi: 원주율, r: 반지름 ) 35

프로그램설계방법 1. 변수들 ( 저장해야할값들 ) 을찾아낸다. 2. 알고리즘 ( 처리해야할일들 ) 을명확하게기술한다. 36

프로그램설계 : 변수들 필요한변수들 - radius: 반지름 - PI: 원주율 - area: 면적 37

프로그램설계 : 알고리즘 시작 원의반지름을주어진값으로한다 원의면적을공식에따라계산한다 원의반지름과면적을출력한다 끝 38

프로그램구현방법 프로그램은한클래스로이루어진다. 클래스이름을정한다. 클래스내에 main 메소드만있다. main 메소드내에다음을포함시킨다 : - 변수선언문들 - 알고리즘의각과정에대응하는자바문 39

완성프로그램 // 파일명 : ComputeArea.java // 목적 : 원의면적을계산한다 import java.util.scanner; public class ComputeArea { public static void main(string [] args) { // 변수들을선언한다 final double PI = 3.14159; double radius, area; // 반지름을읽기위해 Scanner 객체를만든다 Scanner scan = new Scanner (System.in); // 원의반지름을입력받는다 System.out.print (" 원의반지름을입력하세요 : ); radius = scan.nextdouble(); // 원의면적을계산한다 area = PI * radius * radius; // 원의반지름과면적을출력한다 System.out.println( 원의반지름은 " + radius + 이다. ); System.out.println( 원의면적은 " + area + 이다. ); } } 40

요약 데이터유형 변수와상수 연산식 배정문 출력문 입력문 간단한계산프로그램작성 41