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 (부울,불리언)
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
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
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 |