Power Java 제 4 장자바프로그래밍기초
이번장에서학습할내용 자바프로그램에대한기초사항을학습 자세한내용들은추후에.
Hello.java 프로그램
주석 주석 (comment): 프로그램에대한설명을적어넣은것
3 가지타입의주석
클래스 클래스 (class): 객체를만드는설계도 ( 추후에학습 ) 자바프로그램은클래스들로구성된다. 그림 4-1. 자바프로그램의구조
클래스정의 public 키워드는 Hello 클래스가다른클래스에서도사용가능함을나타낸다.
메소드 클래스 = 필드 ( 변수 ) + 메소드 ( 함수 ) 메소드 (method) 는메소드는입력을받아서작업을수행하고결과를내보내는작은기계 메소드는안에들어있는문장들을차례대로실행한후에작업의결과를외부로반환 그림 4-2. 메소드에는문장들이들어있고이들문장들은위에서아래로차례대로실행된다.
메소드의정의 public: 누구나이용할수있음 static: 정적메소드 (9 장부근에서학습 ) void: 반환값이없음 main: 메소드이름 String args[]: 매개변수 ( 메소드가외부에서받는데이터 )
용어설명
java.lang 패키지 (System 클래스 )
문장 문장 (statement) 은사용자가컴퓨터에게작업을지시하는단위이다. 다. 문장들은메소드안에들어있다. 보통프로그램의한줄이하나의문장이된다. 문장의끝은항상세미콜론 (;) 으로끝나게된다. main( ) { } 문장 ; 문장 ; 문장 ;.
문장은순차적으로실행
중간점검문제 1. 자바프로그램의개발단위는클래스이다. 2. 주석은프로그램에대한설명이다. 3. 입력을받아서작업을수행하고결과를내보내는작은기계로생각할수있는것은메소드이다. 4. 모든자바소스파일의확장자는.java 이다.
Add 예제 #1 300
변수 변수 (variable) 란프로그램이사용하는데이터를일시적으로저장할목적으로사용하는메모리공간
변수에도여러가지타입이있다. 그림 4-5 변수들은자신만의이름을가지고있다.
상수 상수 (constant) 란그값이프로그램이실행하는동안변하지않는수 ( 예 ) 3.14, 1000, Hello World! 그림 4-6. 변수와상수
변수의초기화 // 변수는아래와같이 = 연산자를 // 이용하여초기화할수있다. int x = 0; int y = 0; int sum = 0;
수식 수식 (expression): 피연산자와연산자로이루어진다. 수식의결과값을가진다.
대입연산자 대입연산자 == 할당연산자 == 배정연산자 변수에값을저장하는연산자 ( 예 ) x = 100; 그림 4-7. = 연산자가변수에값을저장하는연산자이다.
산술연산자 표 4-1. 산술연산자의요약
산술연산의과정 ( 예 ) sum = x + y; 그림 4-8. 산술연산의과정 : 먼저 x 과 y 에서값을가져와서덧셈연산이수행되고그결과값이 sum 에저장된다.
중간점검문제 1. 프로그램에서데이터를저장하는공간은 이다. 2. 변수에값을저장하는연산을 이라고한다. 3. 실행도중에값이변하지않는수를 이라고한다.
Add2 예제 #2 사용자로부터두개의정수를받아서더하는문제 사용자로부터숫자를받을수있어야한다.
Add2 예제 #2
import 문장 Scanner 클래스를포함시키는문장 Scanner 는자바클래스라이브러리 (Java Class Library) 의일종 Scanner 는입력을받을때사용
Scanner 객체생성 input은타입이 Scanner인변수 new Scanner(System.in) 은 Scanner 클래스의객체 (object) 를생성 input은생성된객체를가리킨다. 상세한설명은차후에. 일단입력을받으려면이문장이필요하다고알아두자. Scanner 객체
사용자로부터입력 Scanner 객체인 input 을이용하여사용자로부터정수를읽어들이는문장 input 을통하여 nextint() 라고하는메소드를호출하게된다. nextint() 에서반환된값은변수 x 에대입된다. 추후에자세히. 10 nextint() Scanner 객체
print() 출력메소드 println() 은문자열을출력한후에줄을바꾸는메소드 print() 는문자열출력후에줄을바꾸지않는메소드 첫번째숫자를입력하시오 :
중간점검문제 1. 사용자로부터값을입력받으려면 클래스를사용하는것이편리하다. 2. Scanner 클래스에서사용자로부터정수를입력받는메소드의이름은 이다. 3. 자바 API 문서에서 Scanner 클래스의메소드중에서앞에 next 가붙은메소드들을조사하여보자.
Scanner 주요메소드 생성자 / 메소드 String next() boolean nextboolean() byte nextbyte() double nextdouble() float nextfloat() int nextint() long nextlong() short nextshort() String nextline() 설명다음아이템을찾아문자열로반환다음아이템을찾아 boolean으로변환하여반환다음아이템을찾아 byte로변환하여반환다음아이템을찾아 double로변환하여반환다음아이템을찾아 float로변환하여반환다음아이템을찾아 int로변환하여반환다음아이템을찾아 long으로변환하여반환다음아이템을찾아 short로변환하여반환한라인전체 ( \n 포함 ) 를문자열타입으로반환
http://docs.oracle.com/javase/7/docs/api/index.html
http://docs.oracle.com/javase/7/docs/api/index.html
http://docs.oracle.com/javase/7/docs/api/index.html
연봉계산문제 10 년동안월급을모두저금할경우, 얼마나모을수있을까?
원의면적구하기 사용자로부터원의반지름을입력받고이원의면적을구한다음, 화면에출력한다.
원의면적구하기
중간점검문제 1. 사용자가입력하는원화를달러화로계산하는프로그램은작성하여보자. 달러에대한원화환율 ( 예를들어 1 달러는 1392.83 원 ) 은실수형변수에저장하고사용자로부터는받는원화는정수변수에저장한다. 원화를환율로나누어서사용자가입력한원화가몇달러에해당하는지를계산한다.
오류 컴파일오류 (compile-error) 실행오류 (run-time error) 논리오류 (logical error)
컴파일오류 컴파일오류는컴파일시에발견되는오류 문법규칙에따르지않으면구문오류 (syntax error) 계산식에서호환이되지않는서로다른타입의데이터가포함된계산을시도하는경우에는의미오류 (semantic error)
실행오류 실행오류는프로그램이실행되는도중에발생하는오류 ( 예 ) 0 으로나누려고시도 자바에서는많은실행오류들을예외 (exception) 를사용하여처리
논리오류 논리오류는컴파일되고실행도되지만의도하지않는결과를발생하는경우 ( 예 ) 값이예상과는다르게잘못계산되는경우 디버깅 (debugging): 논리오류를찾고고치는과정
중간점검문제 1. 컴파일시에오류가없는데도원하는결과가나오지않는다면 오류가있는것이다. 2. 만약실행도중에 0 으로나누었다면 오류가발생한다.
LAB 직사각형의둘레와면적을구하는프로그램을작성하여보자. 직사각형의가로와세로를각각 w 와 h 라고하면직사각형의면적은 w*h 가되고둘레는 2*(w+h) 가된다. h w
HINT 필요한변수는 w, h, area, perimeter라고하자. 변수의자료형은실수를저장할수있는 double형으로하자. area = w*h; perimeter = 2*(w+h);
SOURCE 사각형의넓이 : 50.0 사각형의둘레 : 30.0
도전문제 1. 클래스의이름을 Box 에서 Rectangle 로변경하면어떤일이발생하는가? 2. 한번의 println() 호출로변수 perimeter 와 area 의값이동시에출력되도록변경하라. 3. println() 과 print() 의차이점은무엇인지실험하여보라. 4. w 와 h 의값을사용자로부터받도록변경하여보자. Scanner 클래스를사용한다.
Q & A