IT story/Java

D+3 DataType 두 번째 시간

jason719 2016. 8. 3. 15:17

2016.08.03. Wed.


오늘의 수업내용.

  • Casting (형변환)
  • Boolean (부울,불리언)
  • Char (문자)
  • String (문자열)
  • Array (배열)   


1. Casting (형변환)


- 각 자료형은 크기가 다르기 때문에 다른 자료형으로 표현할 때 형변환이 필요.

 package com.javalesson.ch02datatype;


public class L04Casting {

public static void main(String[] args){

double d = 100.901;

int i = 50;

i =(int) d; //소수점이하 절삭

d = i; //오류가 안나는 이유?

System.out.println(i);

System.out.println(d);

int c = 140;

byte b = (byte)c; //127

System.out.println(b); //-116 ->이유

// b값은?? -116  이유는? 2^8보다 -116이 작다 라는 뜻?

//c = b; //오류가 안나는 이유?

long l = 4000;

l = c;

c = (int)l;

float f = 10.10f;

f= c;

c= (int)f;

f = l;

//casting 없이 형변환이 가능한 도식도를 (->) 표현하시오

//저장 가능한 메모리 크기에 따라서 형변환 도식도가 그려진다.

//long, short, int, byte, float, double

//byte -> short -> int* -> long -> float -> double*

//정수는  int 실수는 double을 사용한다.

}//main end

}//class end



2. Boolean (부울,불리언)


- 기본데이터타입이고, 참,거짓을 표현한다.
- '=='," .equals()' 비교이해

package com.javalesson.ch02datatype;


public class L05Boolean {

public static void main(String[] args) {

//boolean ->기본데이터 타입 ->부울,불리언,불린 -> 참, 거짓을 표현

boolean flag = true;

flag = false;

//비교 연산자를 수행 후 나타난다.

System.out.println(2<1);

String a = "일";

String b = "일";

System.out.println(a==b);

String c = new String("일");

System.out.println("a==c: "+(a==c));

//== 값("일")을 비교한는 것이 아니라 주소값(메모리위치)을 비교한다.

//비교연산자에는 어떤 것들이 있을까?

System.out.println("a.equals(c): "+a.equals(c));

//equals는() 값("일")을 비교한다.

}//main end

}//class end




3. char (문자)


- 아스키코드, 유니코드 등이 있다.

- int code를 이용해 ASKII CODE를 확인한다.

- 반복문 for를 이용해 문자 나열순서를 확인한다.


package com.javalesson.ch02datatype;


public class L06Char {


public static void main(String[] args) {

char c1 = 'A';

char c2 = 97; //아스키코드-> 문자표-> 표의변환

char c3 = '\u0061'; //유니코드

System.out.println("c1 :"+c1);

System.out.println("c2 :"+c2);

System.out.println("c3 :"+c3);

char c4 = 'a';

int code = c4; //char 타입을 int 타입으로 형변환시 아스키코드 값으로 변한다.

System.out.println(code);

//반복문 for

for(int i = 0; i<100; i++){

System.out.print((c1++)+",");

}//for end

}//main end

}//class end



4. String (문자열)

- string은 기본데이터타입(stack영역저장)과 참조데이터타입(heap영역저장)이 된다.
- 다른 기본데이터타입은 크기가 정해져 있지만, String은 입력되는 문자수에 의해 크기가 달라진다.
- 저장방식과 비교방식을 이해하자

package com.javalesson.ch02datatype;


public class L07String {


public static void main(String[] args) {

System.out.println("Hello");//5*2byte

System.out.println("1234567890");//10*2byte 문자이므로

String a = "hello"; //기본

String b = "hello"; //기본

String c = new String("hello"); //참조

String d = new String("hello"); //참조

System.out.println("a==b: "+(a==b));

System.out.println("a==\"hello\": "+(a=="hello"));

System.out.println("a==c: "+(a==c));

System.out.println("c==d: "+(c==d));

System.out.println("a.equals(c): "+(a.equals(c)));//.=곱하기

String e= "Hello Java1 Lesson";

System.out.println(e.indexOf("h")); //-1 존재하지 않는다.

System.out.println(e.indexOf("H")); //외국은 0부터 시작

System.out.println(e.indexOf("a")); //가장 앞의 문자 index를 반환

System.out.println(e.substring(6,11));

//index 6~11 번째까지 문자열을 반환

System.out.println(e.toUpperCase()); //대문자로 출력

System.out.println(e.toLowerCase()); //소문자로 출력

//문자열이 프로그램에 차지하는 영역이 점점 확대되고 있다.

}//main end


}//class end



5.Array (배열)

- DataType이 동일한 객체를 배열로 가진다.
- 초기값으로 선언된 index 길이는 변하지 않는다.
- 오류예외 방법 (현 시점에는 중요하지 않으니 알아만 두자)

package com.javalesson.ch02datatype;


public class L08Array {

String name;

public L08Array(){}//default 생성자-> 생성자를 만들지 않으면 컴파일시 자동 생성

public L08Array(String name){

this.name = name;

}

public static void main(String[] args) {

//배열: 모든 data type이 줄지어 있는 것

int[] odds = {1, 3, 5, 7, 9};

String[] weeks={"월","화","수","목","금","토","일"};

String week1 = "월",week2 = "화",week3 = "수",

  week4 = "목",week5 = "금",week6 = "토",week7 = "일";


System.out.println("오늘은 "+weeks[2]+"요일입니다.");

System.out.println(weeks.length);//index(차례)와length(길이)의 차이

//weeks[7] = "공휴일"; //배열은 초기 index 값이 변하지 않는다. ->오류

try{

System.out.println(weeks[8]);//호출

}catch(ArrayIndexOutOfBoundsException e){System.out.println(e.toString());}

//try{오류잡는범위}catch(오류내용 e){e.toString()=반환}

//컴파일시 발견되지 않는 (심각한 오류) -> 오류가 발생한 시점에서 프로그램이 종료됨

//컴파일시 생기는 오류 -> 문법상 오류

System.out.println("프로그램 종류");

L08Array[] array = {new L08Array("월"),new L08Array("화")};

//1. DataType과 동일한 객체를 배열로 가진다.

//2. 초기값은 선언된 index 길이는 변하지 않는다.

//3. 다른 내용은 몰라도 상관 없다.

}//main end

}//class end



'IT story > Java' 카테고리의 다른 글

D+5 Loop(반복문) for  (0) 2016.08.06
D+4 제어문(if문 & switch문)  (0) 2016.08.04
D+2 Eclipse 사용법 + DataType 첫 번째 시간  (0) 2016.08.02
D+1 터미널로 컴파일 하기  (0) 2016.08.01
Java 첫번째 이야기  (0) 2016.07.28