Android 04 java intro

Page 1

2014-2 스마트 디바이스 프로그래밍

4.Java 문법 기초


제1장

Java 시작 1.1 1.1.1

이클립스 HelloJava 예제 사용법 새로운 프로젝트 생성

Figure 1.1: 새로운 프로젝트 생성

2


이클립스 HelloJava 예제 사용법

Figure 1.2: Java 프로젝트 이름 설정

3


제 1 장 Java 시작

1.1.2

패키지 추가

Figure 1.3: 패키지 추가

Figure 1.4: 패키지 이름 추가

4


이클립스 HelloJava 예제 사용법

Figure 1.5: 패키지 추가 결과

Figure 1.6: 패키지 추가후 물리적 경로 생성 확인

5


제 1 장 Java 시작

1.1.3

클래스 추가

Figure 1.7: 클래스 추가

Figure 1.8: 클래스 추가

6


이클립스 HelloJava 예제 사용법

Figure 1.9: 클래스 추가후 결과 확인

Figure 1.10: 클래스 코드 추가 후 실행

Figure 1.11: 결과 확인

7


제 1 장 Java 시작

Figure 1.12: class 파일 위치 확인

8


이클립스 HelloJava 예제 사용법

1.1.4

JavaDoc 사용법

Figure 1.13: JavaDoc 사용법

9


제 1 장 Java 시작

프로젝트 삭제

1.1.5

Figure 1.14: Generate JavaDoc

Figure 1.15: JavaDoc Command 설정

1.2

C 언어와는 뭐가 달라요?

• 필자는 C 언어를 기준으로 Java 언어를 설명할 것이다.

1.2.0 C #include <stdio.h> void main(int argc, char* argv[]) 10


C 언어와는 뭐가 달라요?

Figure 1.16: JavaDoc 내용 확인

Figure 1.17: 프로젝트 삭제 방법

{ printf("%s","Hello C"); } >>cl Test.c (컴파일) >>Test.exe (실행)

1.2.1 java class HelloJava { public static void main(String args[]) { System.out.println("Hello, Java"); 11


제 1 장 Java 시작 } } >>javac HelloJava.java (컴파일) >>java HelloJava (실행-확장자제거)

12


데이터형

1.3

데이터형

• Java 는 C 언어에 비해서 매우 엄격한 데이터사용을 강제하고 있다. • Primitive Type 즉 기본 데이터는 IEEE 754 표준에 따라 플랫폼에 상관없이 데이터형이 일치한다. • 문자형 char - 16bit - ’\u0000’∼’\uFFFF’(16비트 유니코드 문자 데이터), 0 216 - char ken = ’A’; • 논리형 boolean - 1bit - true 또는 false - boolean ken = true; - Typecasting 이 되지 않는다 • 정수형 byte - 8bit - −27 ∼ 27 − 1 (-128 127) - byte ken = 123; • 정수형 long - 64bit - -263 ∼ 263 -1 - long ken = 123L; • 참조형데이터 - 메모리 측면에서는 C 의 포인터개념으로 설명될 수 있겠지만 연산을 하는 포인터의 개념은 없다 - 즉 포인터의 개념이 없기 때문에 주소에 직접 접근할 수 없다는 이야기

13


제 1 장 Java 시작

Figure 1.18: Java 의 데이터형

14


데이터형

1.3.1

사용 예

1.3.0 값이 없는 상태에서의 출력 public class Example { public static void main(String args[]) { byte a; System.out.println(a); // 값이 없는 상태에서 사용하려고 하면 에러발생 } }

1.3.1 엄격한 데이터사용 public class Example { public static void main(String args[]) { boolean a = true; int b = 3; b = (int)a; //성립하지 않음 a = (boolean)b; //성립하지 않음 } }

1.3.2 엄격한 데이터사용 public class Example { public static void main(String args[]) { int a = 3; if(a) // 성립안됨 { System.out.println(a); } while(a) // 성립안됨 { System.out.println(a); } } 15


제 1 장 Java 시작 }

16


데이터형

1.3.3 기본데이터 형의 다양한 값 public class Test { public static void main(String[] args) { System.out.println(Byte.MAX_VALUE); System.out.println(Byte.MIN_VALUE); System.out.println(Byte.SIZE); System.out.println(Integer.SIZE); System.out.println(Integer.TYPE); System.out.println(Double.TYPE); System.out.println(Float.SIZE); } } ---------- java ---------127 -128 8 32 int double 32 출력 완료 (0초 경과) - 정상 종료 • 앞서 배운 기본자료형의 byte 와 프로그램의 Byte 는 무엇인가? 모양에서 알다시피 대문자 Byte 는 기본 데이터 타입이 아닌 클래스이다. • short, char, byte 를 중심으로 그림을 이해하도록 하자.

Figure 1.19: 기본 데이터 타입의 표현 범위

17


제 1 장 Java 시작

1.3.2

문자형 데이터

Figure 1.20: 문자형 데이터

CR & LF CR은 특수문자 ’\r’로 표시 (Carriage1.1) Return) 0xOD LF는 특수문자 ’\n’로 표시 (Line Feed1.2) ) 0x0A

1.1) 객차 1.2) 먹이다.먹이를주다

18


데이터형

1.3.3

레퍼런스타입

• Primitive Data Type 변수 - 실제 값을 갖는다. • Reference Data Type 변수 - 실제 값이 저장된 위치 값을 갖는다.

1.3.4 문자열 비교

package kr.ac.hallym.kevin; public class HelloJava { public static void main(String[] args) { String a = "Hello world"; String b = new String("Hello world"); System.out.println(a == b); System.out.println(a.equals(b)); } } -----------false true

19


제 1 장 Java 시작

연산자

1.4

• + (플러스 연산자) - 문자열 연결

1.4.0 연산자 에러 public class Example { public static void main(String args[]) { byte a = 2, b = 3, sum; sum = a + b; // + 연산자에 의한 int 변환으로 에러발생 sum = (byte)(a+b); sum = 3+4; //상수인경우 데이터 범위를 넘지 않으면 가능 sum = 100+200; //상수이지만 데이터 범위를 넘기때문에 에러발생 System.out.println(sum); } }

1.4.1 연산자 에러 public class Example { public static void main(String args[]) { byte a = -100; //부호연산자를 포함한 상수는 가능 byte b = -a; // 부호연산자 또한 int 변환이므로 불가. System.out.println(a); } }

1.4.2 문자열 연결 연산자 public class Example { public static void main(String args[]) { String str1 = "Hello"; String str2 = str1 + "World"; String str3 = str1 + 123 + 456; String str4 = 123 + 456 + str1; System.out.println(str1); System.out.println(str2); 20


연산자 System.out.println(str3); System.out.println(str4); // 왼쪽에서 오른쪽으로 우선순위를 가짐 } } ---------- java ---------Hello HelloWorld Hello123456 579Hello 출력 완료 (0초 경과) - 정상 종료

1.4.3 논리,비트 연산 비교 public class Test { public static void main(String args[]) { int a = 3, b = 1; System.out.println(a&b); //피연산자가 Boolean Type 이 아니면 비트연산을 수행 System.out.println(a&&b); // 성립안됨 } }

1.4.4 조건문에서의 논리,비트 연산 public class Test { public static void main(String args[]) { int a = 0, b =0; if(++a > 0 || ++b >0) //왼쪽을 먼저 계산하고 판단 System.out.println("a>0 이거나 b>0 이다."); System.out.println("a="+a); System.out.println("b="+b); } } ---------- java ---------a>0 이거나 b>0 이다. a=1 b=0 출력 완료 (0초 경과) - 정상 종료

21


제 1 장 Java 시작

1.4.5 논리쉬프트 public class Test { public static void main(String args[]) { int a = -3; System.out.println(a<<2); System.out.println(a>>2); System.out.println(a>>>2); //MSB 를 0으로 채움 } } ---------- java ----------12 -1 1073741823 출력 완료 (0초 경과) - 정상 종료

1.4.6 int 타입으로 변경 되서 결과가 출력됨 public class Test { public static void main(String args[]) { byte a = -3; System.out.println(a<<2); System.out.println(a>>2); System.out.println(a>>>2); //MSB 를 0으로 채움 } } ---------- java ----------12 -1 1073741823 출력 완료 (0초 경과) - 정상 종료

22


연산자

1.4.1

2의 배수이거나 3의 배수인 경우의 합

1.4.7 제어문 public class Test { public static void main(String args[]) { int s = 1; int e = 10; int s_2n3 = 0; int sum = 0; for(int i=s; i<=e; i++) { if(i%2 == 0 || i%3 == 0) { s_2n3 += i; } sum += i; } System.out.println("Sum : "+sum); System.out.println("Sum of 2 and 3 multiple : " + s_2n3); } } ---------- java ---------Sum : 55 Sum of 2 and 3 multiple : 42 출력 완료 (0초 경과) - 정상 종료

23


제 1 장 Java 시작

1.5

배열선언

1.5.0 C #include <stdio.h> int main() { int arr1[] = {1,2,3}; //선언과 대입 동시 가능 int arr2[3] = {1,2,3}; int arr3[3]; // 선언과 대입분리 arr3[0]=1; arr3[1]=2; arr3[2]=3; }

1.5.1 java public class MyClass { public static void main(String[] args) { int arr1[] = {1,2,3}; // 선언과 대입 동시 가능 int[] arr0 = {1,2,3}; // 배열의 다른 표현 //int arr2[3] = {1,2,3}; // 변수명에 배열의 크기를 정할 수 없음 int arr3[]; arr3 = new int[3]; // 객체 생성 arr3[0]=1; arr3[1]=2; arr3[2]=3; } }

24


배열선언

1.5.1

for-each

1.5.2 java package kr.ac.hallym.kevin; public class HelloJava { public static void main(String[] args) { String[] members = { "Kevin", "Reachal", "Tom" }; for (String e : members) { System.out.println(e); } } } -----------------Kevin Reachal Tom

25


제 1 장 Java 시작

1.5.2

ArrayIndexOutOfBoundsException 오류

1.5.3 java package kr.ac.hallym.kevin; public class HelloJava { public static void main(String[] args) { String[] members = { "Kevin", "Reachal", "Tom" }; System.out.println(members[3]); } } ----------Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3 at kr.ac.hallym.kevin.HelloJava.main(HelloJava.java:6)

26


메소드

1.6

메소드

1.6.0 시작 값과 끝값을 입력받고 사이 값을 출력하는 예 public class HelloJava { public static void numbering(int init, int limit) { int i = init; while (i < limit) { System.out.println(i); i++; } } public static void main(String[] args) { numbering(1, 5); } } ---------1 2 3 4

27


제 1 장 Java 시작

1.7

형변환

1.7.0 java int to String String str = Integer.toString(i);String str = "" + i; String to int int i = Integer.parseInt(str);int i = Integer.valueOf(str).intValue(); double to String String str = Double.toString(d); long to String String str = Long.toString(l); float to String String str = Float.toString(f); String to double double d = Double.valueOf(str).doubleValue(); String to long long l = Long.valueOf(str).longValue();long l = Long.parseLong(str); String to float float f = Float.valueOf(str).floatValue(); decimal to binary String binstr = Integer.toBinaryString(i); decimal to hexadecimal String hexstr = Integer.toString(i, 16);String hexstr = Integer.toHexString(i);Integer.toHexString( hexadecimal(String) to int int i = Integer.valueOf("B8DA3", 16).intValue();int i = Integer.parseInt("B8DA3", 16); ASCII Code to String String char = new Character((char)i).toString(); Integer to ASCII Code int i = (int) c;

28


형변환 Integer to boolean boolean b = (i != 0); boolean to Integer int i = (b)? 1 : 0;

29


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.