basicJAVA/1. 변수

201007 Java Variable2

unemo 2020. 10. 7. 15:50
반응형
저번시간 복습 키워드
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