반응형
저번시간 복습 키워드
char ''이 왜안됨? 문자 딱 하나만 표현할수있으니까 0개도 2개도안됨
표현형의 기본값들
문자형 표현하는 세가지방법 유니코드 (16진수.'u0041'), 10진수(' '없음), 'a'
범위 byte > 1바이트> 8비트 > 음수양수 > -2의7승부터 2읠 7승-1 이런식으로 byte short int long char
이렇게 포함관계가 됨
byte > short > int> long > float > double
char>
화살표방향으로 가는거면 생략가능. (byte가 char? 화살표가 안이어져있으니까 캐스팅해줘야함)
/*
8.String
원래는 클래스명칭. 참조형인데 기본형처럼 쓸수있게 문자열을 다룰수있게 해준 놈
- 문자열을 다루기 위해 사용한다.
- 문자 하나는 ''인데 문자열이니까 ""
- String은 참조형이기 때문에 (주소)기본값은 null이다.
즉 String뿐만 아니라 모든 참조형의 기본값은 null이다.
*/
//1. 변수 name에 자신의 이름을 저장해주세요
String name = "조애슬";
System.out.println(name);
/*
9. overflow
- 각각의 기본형 타입들이 저장할수있는 범위 외로 저장될경우
- 해당 타입이 표현할 수 있는 범위를 넘어서는 것
*/
byte b2 = 126;
System.out.println(b2); // b2 = 128
b2++;
System.out.println(b2); // b2 = 127
b2++;
System.out.println(b2); // b2 = 128이 아닌 -128
//b2의 타입은 byte는 -128~127이니까 128을 저장할수가 없음
//그럼 다시 최솟값으로 돌아감!!
//이게 overflow
//자신이 표현할수있는 범위를 넘어서 최솟값으로 돌아가는 현상
/*
10. casting (형변환)
- >>기본형 자료끼리만<< 형태를 바꿔줌. (boolean빼고)
- 변수 또는 상수의 타입을 다른 타입으로 변환하는 것.
- 사용방법
: 변수타입 변수명 = 값;
*/
int aa = 100;
//1. short형 변수 bb에 aa의 값을 저장하여라
//short bb = aa; 오류남! 캐스팅해줘야함
//Type mismatch: cannot convert from int to short
short bb = (short)aa; // (short)이걸 cast 연산자라고한다. (
System.out.println(bb);
//2.long형 변수 cc에 aa의 값을 저장하여라
long cc= aa; //(long)을 지워도 빨간불이 안들어옴 long이 더크니까 생략가능하다.
System.out.println(cc);
//연산
//1. byte형 변수 b3에 10의 값을 저장해주세요
byte b3 = 10;
//2. short형 변수 s2에 40의 값을 저장해주세요
short s2 = 40;
//3. int형 변수 i2에 80의 값을 저장해주세요
int i2 = 80;
//4. b3와 s2의 합계를 c2에 저장해주세요
//타입이 다른것끼리는 합칠수없음 타입일치시켜야함
//int + long > long + long = long 타입이 되어야함
//즉 더 큰쪽의 타입을 따라가는게 일반적인 계산임
//short c2 = (short) (b3 + s2); //byte + short니까 short가 돼야함
//근데 둘다 4byte 보다 작으니까(바이트는1바이트,숏은 2바이트) 둘다 기본인
//int로 변환이됨 (특수한경우
int c2= b3+s2;
// Q. byte c5 = b3+s2; 어떻게 해야할까?
//b3+s2의 결과값은 int인데 byte가 되어야하니까 형변환해줘야함
byte c5 = (byte)(b3+s2); //(byte)b3+s2 이렇게 안묶으면 안됨
//캐스팅연산자는 곱이랑 비슷해서 식을 안묶으면
//b3만 캐스팅됨
System.out.println(c2);
//1.변수 str에 "김다은"을 저장해주세요
String str = "김다은";
//2.변수 str2에 "화이팅하자"를 저장해주세요
String str2 = " 화이팅하자";//char는 무조건 한글자. String은 문자가없어도됨
//3.변수 str3에 str과 str2의 값의 합계를 저장해주세요
String str3 = str + str2;
//4.변수 str4에 str과 16의 합계를 저장해주세요
String str4 = str + 16; //기본형과 참조형은 더할수없다.
//하지만! 자바에서는
//문자열(String)을 기본형처럼 대한다. 게다가 string은 크기에 제한이없다.
//String + int = String + String > "김다은"+"16"(16이 ""안으로)
//즉 결과값도 String
//**boolean도 true라는 글자 자체가 "true"가 되버림
//즉 String은 옆에 뭐가잇든 상관없이 다 String이 돼버림
//나중에 참조형과 String 더해도 그 주소자체를 문자열로 바꿔버림
System.out.println(str3);
System.out.println(str4);
//String str5 = "";
//String은 안에아무것도 없어도됨.
//String str5 = null; <<이건 주소가 안만들어진것. 저장할주소가없.집이없음
//""; 은 주소는 있는것 하지만 집에 아무도없는것
String str5 = "=================---------------";
System.out.println(str5);
//String의 ""안에는 ★ 이런거 다 들어감 근데 \(역슬래쉬)만 안됨
//char에서 이녀석은 유니코드라고 알려주는게 역슬래쉬u 였음 이걸 특수문자라고
//인지하게됨
//'역슬래쉬u' 이 뒤에는 유니코드라고 인지
//\n : newline 이라고 인지함, \t 은 tap
char c6 = 'A';
//A가 가지고 있는 10진수값을 알고싶다?
int i6 = c6;
System.out.println(i6); // 65가 출력됨
//마찬가지로 한글 가~힣를 넣어도됨
반응형
'basicJAVA > 1. 변수' 카테고리의 다른 글
201006 JAVA Variable02 (0) | 2020.10.06 |
---|---|
201006 JAVA Variable01 (0) | 2020.10.06 |