45
Programming Language Study Java IT_Service_LA B In SeoulTech 이이이

Programming java day2

Embed Size (px)

Citation preview

Programming Language Study

Java

IT_Service_LAB

In SeoulTech이재훈

1. JDK 및 이클립스 설치

2. 기본 자료형

3. 배열

4. 클래스 자료형

5. 형변환

목 차

목적 : 자바 실습을 위한 JDK 및 이클립스 설치

JDK(Java Development Kit)자바 소스를 컴파일 하기 위한 컴파일러가 있으며 , 컴파일 된 자바 프로그램을 실행할 수 있도록 해준다 .

http://oracle.com 접속 후

클릭 !

1 JDK 및 이클립스 설치

목적 : 자바 실습을 위한 JDK 및 이클립스 설치

클릭 !

1 JDK 및 이클립스 설치

목적 : 자바 실습을 위한 JDK 및 이클립스 설치

자신의 운영체제에 맞는 프로그램 다운로드

1 JDK 및 이클립스 설치

목적 : 자바 실습을 위한 JDK 및 이클립스 설치

1 JDK 및 이클립스 설치

목적 : 자바 실습을 위한 JDK 및 이클립스 설치

1 JDK 및 이클립스 설치

목적 : 자바 실습을 위한 JDK 및 이클립스 설치

설치 위치 설정 후 다음 버튼

1 JDK 및 이클립스 설치

목적 : 자바 실습을 위한 JDK 및 이클립스 설치

1 JDK 및 이클립스 설치

목적 : 자바 실습을 위한 JDK 및 이클립스 설치

1 JDK 및 이클립스 설치

목적 : 자바 실습을 위한 JDK 및 이클립스 설치

환경변수 설정

1 JDK 및 이클립스 설치

목적 : 자바 실습을 위한 JDK 및 이클립스 설치

환경변수 설정

1 JDK 및 이클립스 설치

목적 : 자바 실습을 위한 JDK 및 이클립스 설치

환경변수 설정1. 시스템 변수에Path 더블클릭2. 변수값 제일 오른쪽 끝으로 커서 밀기3. 값 입력하고 확인

*** 입력해야하는 값 ***세미콜론으로 뒤에 설치 주소

;C:\Program Files\Java\jdk1.8.0_45\bin

1 JDK 및 이클립스 설치

목적 : 자바 실습을 위한 JDK 및 이클립스 설치

환경변수 설정

1. 새로 만들기2. 변수이름 : JAVA_HOME3. 변수 값 입력 후 확인버튼

*** 입력해야하는 값 ***세미콜론으로 뒤에 설치 주소bin 전까지

;C:\Program Files\Java\jdk1.8.0_45

1 JDK 및 이클립스 설치

목적 : 자바 실습을 위한 JDK 및 이클립스 설치

환경변수 설정

1. 새로 만들기2. 변수이름 : CLASSPATH3. 변수 값 입력 후 확인버튼

*** 입력해야하는 값 ***%classpath%;.

뒤에 세미콜론과 온점 까지 입력

이제 모두 확인을 눌러 환경변수저장을 하고 끝내자 .

1 JDK 및 이클립스 설치

목적 : 자바 실습을 위한 JDK 및 이클립스 설치

환경변수 확인

명령 프롬프트 (CMD) 에서java –version 입력 후 엔터아래와 같은 버전정보가 나오면 정상적인 자바 설치 및 환경 변수설정이 완료된 것이다 .

1 JDK 및 이클립스 설치

목적 : 자바 실습을 위한 JDK 및 이클립스 설치

이클립스 : 자바 코드 작성이 편하고 , 손쉽게 테스트 해 볼 수 있다 .

http://www.eclipse.org/downloads/자신에게 맞는 운영체제로 다운로드

1 JDK 및 이클립스 설치

목적 : 자바 실습을 위한 JDK 및 이클립스 설치

원하는 장소에 다운로드 된 압축파일을 이동 후압출을 풀면 된다 .

1 JDK 및 이클립스 설치

목적 : 자바 실습을 위한 JDK 및 이클립스 설치

eclipse.exe 실행 후 작업 장소 설정 후 OK 버튼

1 JDK 및 이클립스 설치

목적 : 자바 실습을 위한 JDK 및 이클립스 설치

이클립스 설치 완료

1 JDK 및 이클립스 설치

프로그래밍 언어에서 지원하는 가장 기본적인 자료형들이 있다 .자료형은 변수의 타입을 나타내는 것이다 .

자료형을 구분해야 하는 이유는 ? 1 일차에서 배웠듯이 , 기계이기 때문에 그런 것이다 . 예를 들어 CPU 에 더하기 연산을 하는 회로에 피연산자가 정수 (Integer) 가 아니라 문자열 (String) 이 들어온다면 두 문자열을 붙이는 연산을실행 할 것이다 . 이처럼 컴퓨터이기 때문에 자료의 형식을 구별해 주어야 하고이처럼 자료의 형식을 정의해야 하는 프로그래밍 언어를Strongly-Typed Language 라 한다 .Python 과 같이 자료의 형식을 정해주지 않는 언어를Weakly(Loosely)-typed language 라 한다 . 자료의 형식이 없는것이 아니라 이러한 언어는 입력된 값을 기준으로 형식을자동 판별해서 가지고 있을 뿐 사실상 자료의 형식 구분이없는 것이 아니다 .

2 기본 자료형

기본 자료형은 들어 갈 수 있는 자료의 종류와 그 양이 다르다 .또한 , 종류와 양이 다르기 때문에 차지하는 메모리의 크기도다를 수 밖에 없다 .참고 : 1 byte 는 8 bit 로써 0 또는 1 을 8 개 담을 수 있다 . 따라서 , 1 바이트로 2 의 8 승 가지를 표현할 수 있다 .

변수 종류 크기 입력범위 내용byte 1 byte 정수short 2 byte 정수int 4 byte 정수 ( 정수 기본값 )

long 8 byte 정수 ( 입력후 l 붙여야함 )

ex) floatValue = 200l;

float 4 byte 실수 ( 입력 후 f 붙여야 함 )

ex) floatValue = 10.11f;

double 8 byte 실수 ( 실수 기본값 )

boolean 1 byte true 또는 false 참 , 거짓char 1 byte 문자 하나

( 유일한 비음수 )문자

ex) ‘a’

2 기본 자료형

프로그래밍을 할 때 , 같은 자료형을 여러 개 가진 것을사용 하고 싶을 때가 있다 .이 때 사용 하는 것이 배열 (Array) 이다 .우선 , 1 차원 배열을 알아보도록 하자 .

사용법1. 배열의 선언 : 아래와 같은 4 가지 방법이 있다 .data_type array_name[ ] ;data_type[ ] array_name ;data_type [ ]array_name ;data_type[ ]array_name ;

2. 메모리 할당array_name = new data_type[ size ];

3. 값 초기화array_name[ index ] = initial_value;

4. 배열의 크기 알기array_name.length 초기 선언된 배열의 size 값이다 .

※ 메모리 할당 : CPU 가 연산처리를 하려면 메모리에 올려야 함을 잊지 말자 !!! new 연산자가 메모리 할당 할 때 쓰임

3 배열

size : 몇 개나 할당할 지 크기를 의미한다Index : 배열에서 몇 번째에 해당하는 지를 의미하며 제일 처음 값의 인덱스는 0 이며 제일 마지막 인덱스 값은 (size-1) 이다 . 입력된 순서부터 0 번을 가지므로 , 실습을 해보며 , 이 말의 의미를 직접 생각해보자 . ☞size 와 index 는 자주 실수하기 쉬운 녀석들이다 ..

사용 예 : 우리 반 학생 8 명의 수학 성적을 가진 데이터int mathScore[ ] ; // 선언mathScore = new int[8]; // 메모리 할당mathScore[0] = 83; // 값의 초기화mathScore[1] = 50; : ˙mathScore[7] = 99;

3 배열

이 외에 몇 가지 다른 사용법들이 있다 .

사용법1. 배열의 선언과 메모리 할당을 동시에data_type array_name[ ] = new data_type[size];

2. 배열의 선언 , 메모리 할당과 초기화를 동시에data_type array_name[ ] = { value1, value2, value3, …, value };

사용 예 : 우리 반 학생 8 명의 수학 성적을 가진 데이터int mathScore[ ] = new int[8]; // 선언 및 메모리 할당

Int mathScore[ ] = {83, 50, 71, 67, 22, 41, 45, 99};// 선언 , 메모리할당 및 값의 초기화

3 배열

배열의 차원앞에 나온 예와 같이 한 줄 형태의 배열을 1 차원 배열이라 하고 표와 같은 형태의 배열을 2 차원이라 한다 .즉 , 이와 같은 방식으로 (n-1) 차원을 여러 개 갖는 배열을 n 차원 배열이라 하고 , 2 차원 이상의 배열을 다차원 배열이라 한다 .사용법

필요한 차원 만큼 [ ] 를 사용한다 .제일 왼쪽에 붙은 [ ] 가 가장 상위 차원이다 .즉 , 상위 차원은 바로 하위 차원의 개수를 size 로 갖는다 .

사용 예 : 3 학년 (4 개 반 ) 전체 ( 반마다 30 명 ) 의 전과목 ( 총 5 개 과목 ) 성적프로그래머 기준에 따라 배열이 상이할 수 있다 .즉 , 30 명의 성적이 과목마다 있고 , 그런 것들이 4 개 반마다 있다 . int score[ ][ ][ ] = new int[4][5][30];

또는 , 5 개 과목이 30 명에게 할당되고 , 그런 것들이 4 개 반마다 있다 .int score[ ][ ][ ] = new int[4][30][5];

3 배열

배열의 길이배열을 사용하다 보면 , 해당 배열의 크기 즉 , size 가 얼마인지 궁금하게 된다 . 배열에 그 크기의 속성값을 가지고 있기 때문에 그 값을 사용하면 된다 .

사용법알고 싶은 크기의 차원에서 length 속성을 확인한다 .

예를 통해 알아보자 .int score[ ][ ][ ] = new int[4][5][30];System.out.println(score.length);System.out.println(score[0].length);System.out.println(score[0][0].length);

위와 같이 각 차원의 크기를 알아 낼 수 있다 . 각 결과 값은 위 부터4, 5, 30 이다 .

3 배열

바로 앞에서 자료형을 배웠다 .이런 자료형을 여러 개 쓰는 일이 생겨서 배열이란 것을 배웠다 .하지만 , 이번엔 다른 자료형을 복합시켜 만들어 쓰고 싶다 .

이러한 자료형을 스트럭처라고 하는데 , 자바에서는 이를 클래스를 통해서 만들어 낼 수 있어서 따라서 클래스 (Object) 자료형 .

사용법1. 필요한 클래스를 만든다 .2. 클래스를 사용한다 . ( 선언 , 메모리 할당 및 초기화 )Class_name var_name = new Class_Creater;3. 특정 값에 접근한다 . ( . 온점을 사용한다 )var_name.attribute

대표 예char 은 1 개의 문자를 담을 수 있는 자료형이다 . 문제는 우리가 하나의 문자가 아니라 여러 문자를 쓰는 문자열 데이터가 필요하다 . 그 것을 위해 배열을 사용 할 수 있지만 , 자바에서는 String 이라는 클래스를 제공하고 예외적으로 생성자를 사용하지 않고도 “문자열 내용”으로 사용이 가능하게 예외적으로 만들어 놓은 클래스 자료형이다 .

4 클래스 자료형

사용예 : 학교 별 성적을 담을 수 있는 자료형

클래스 자료형의 생성 : Score.java

4 클래스 자료형

사용예 : 학교 별 성적을 담을 수 있는 자료형

클래스 자료형의 사용 : Example1.java

4 클래스 자료형

숫자로 10 을 받았는데 문자로 바꿔서 문자처럼 취급하고 싶어 .우린 여러 자료형을 배웠다 . 하지만 , 가끔은 자료의 형식을바꿀 필요가 있다 . 자료의 형태를 바꾸는 행위를 형변환이라고 하는데 언제 이런 형변환 행위가 필요한지 알아보자 .

우선적으로 컴퓨터에서 묵시적으로 이루어지는 형변환이 있다 .컴퓨터에 연산회로에 맞는 자료형이 들어와야 한다 . 가령 short와Int 의 두 자료형의 덧셈을 한다면 , 컴퓨터는 short 를 int 로 형변환 시킨 후에 연산처리를 하게 된다 . 즉 , 연산에 앞서 자료형이 다를 경우 두 자료형 중 상위 자료형으로 형변환 후 연산을 실행한다 .예시 )같은 종류 자료형일 경우 상위 크기 자료형으로short 와 int -> short 를 int 로float 과 double -> float 을 double 로

다른 종류의 자료형일 경우 상위 자료형으로char 와 int -> char 를 int 로Int 와 float -> int 를 float 으로

5 형변환

하지만 , 경우에 따라 프로그래머가 명시적으로 형변환을 시켜주어야 하는 경우가 있다 . 가령 숫자가 커질 것을 염두하여 ,상위 자료형으로 바꾸거나 , 문자열로 입력 받은 숫자를 int 나float 같이 숫자형으로 바꾸고 싶을 때가 대표적이다 .

프로그래머가 명시적 형변환을 하는 방법은 크게 두 가지가 있다 .(data_type)variable 형태의 강제형 변환과 제공되는 메소드를이용한 방법들이 있다 .

예를 통해 알아 보는 형변환

동일 한 정수 자료형1. 상위에서 하위 : 하위 자료형이 형 변환 전 값이 허용 범위를

넘을 경우 일부 자료가 손실된다 .(Overflow)int 에서 short (short)intValueshort 에서 byte (byte)shortValue

2. 하위에서 상위 : 값의 범위가 언제나 만족하기에 자료손실 없음int 에서 long (long)intValuebyte 에서 int (int)byteValue

5 형변환

예를 통해 알아 보는 형변환

동일 한 실수 자료형1. 상위에서 하위 : 하위 자료형이 형 변환 전 값이 허용 범위를

넘을 경우 일부 자료가 손실된다 .(Overflow)double 에서 float (float)doubleValue

2. 하위에서 상위 : 값의 범위가 언제나 만족하기에 자료손실 없음float 에서 double (double)floatValue

그 외char 에서 int (int)charValue심화char 는 문자에 해당하는 정해진 값을 가지고 있기 때문에 정수로형변환을 시킴으로써 해당 문자에 값을 알 수 있다 . 또한 정수로변환하지 않아도 정수와 연산을 시킬 때 정수로 묵시적 형변환이이루어 진다 . 이를 이용하면 대 , 소문자간 변환을 할 수 있다 .예시char B = 'b'+('A'-'a');

5 형변환

예를 통해 알아 보는 형변환

문자열과 형변환 : 대표적으로 메소드를 통해 형변환이 이루어짐 .1. String 에서 기본형 자료형으로byteValue = Byte.valueOf(stringValue).byteValue();shortValue = Short. valueOf(stringValue).shortValue();intValue = Integer. valueOf(stringValue).intValue();longValue = Long. valueOf(stringValue).longValue();floatValue = Float. valueOf(stringValue).floatValue();doubleValue = Double. valueOf(stringValue).doubleValue();booleanValue = Boolean. valueOf(stringValue).booleanValue();

2. 기본 자료형에서 String 문자열로stringValue = String.valueOf(byteValue);stringValue = String.valueOf(shortValue);stringValue = String.valueOf(intValue);stringValue = String.valueOf(longValue);stringValue = String.valueOf(floatValue);stringValue = String.valueOf(doubleValue);stringValue = String.valueOf(booleanValue);

5 형변환

1

2

3

4

5

실습

우선 실습을 하기 전에 아래의 기본 적인 틀을 이용하자 .

기본적인 실행을 위한 메인 메소드이다 .아래의 println 메소드는 기본적은 시스템 출력을 위한 메소드로써결과를 확인할 때 주로 쓰인다 . 약속된 사항이므로 저 내용을 한동안똑같이 쓰자 .

1

2

3

4

5

실습

여러 가지 자료형들을 입력해보고 출력해보자 .필요시 형변환을 해보고 그 결과를 살펴보자 .

1. 아래의 자료형들로 값을 선언하고 , 범위 내 값을 입력 후 출력해보자2. 아래의 자료형들로 값을 선언하고 , 범위 외 값을 입력 후 출력해보자( 범위 외 값을 입력할 경우 형변환이 필요하거나 , 불가할 수 있음 )byteshortintlongfloatdoublebooleancharString

1

2

3

4

5

예시 답안

1

2

3

4

5

예시 답안

1

2

3

4

5

실습

배열을 사용해보자

1. 다음 표를 배열로 표현 및 입력해보고 , 붉은 글씨의 값을 출력해보자

영어 수학 국어 물리 화학

50 53 48 34 19

34 48 83 87 91

75 39 73 43 33

91 73 73 83 72

55 51 64 66 41

67 37 71 83 57

1

2

3

4

5

실습

배열을 사용해보자

2. 다음 표를 배열로 표현 및 입력해보고 , 붉은 글씨의 값을 출력해보자

영어

수학

국어

물리

화학

12 34 56 78 89

1 2 3 4 5

10 20 30 40 50

60 70 80 90 10

5 4 3 2 1

9 8 7 6 5

영어

수학

국어

물리

화학

50 53 48 34 19

34 48 83 87 91

75 39 73 43 33

91 73 73 83 72

55 51 64 66 41

67 37 71 83 57

영어

수학

국어

물리

화학

10 30 50 70 90

1 2 3 4 5

6 7 8 9 1

51 52 53 54 55

10 10 10 10 10

15 18 19 20 20

1

2

3

4

5

예시 답안

1

2

3

4

5

예시 답안

1

2

3

4

5

실습

클래스 자료형을 만들어보자

파일명 : Student.java속성 (멤버변수 ) : 이름 , 나이 , 학번 , 학과 , 성별생성자 : 이름만 받았을 때 , 이름과 학번을 받았을 때메소드 : 자신의 이름을 말하는 메소드

파일명 : Excute.java이름이 “홍길동” 이고 학번이 10111234 인 객체를 생성하고 ,클래스 메소드를 이용해 이름을 출력하시오 .

1

2

3

4

5

예시 답안

Thank you

IT_Service_LAB

In SeoulTech이재훈