달력

6

« 2020/6 »

  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  •  
  •  
  •  
  •  


 

변환(Type Conversion)

·       초기화 시에만 변환 적용됩니다.

·       하나의 타입을 다른 타입으로 바꾸는 것을 의미합니다.

·       타입 변환이라고도 합니다.

 

 

 

 

변환(Type Conversion) 종류

기본 자료형 값을 다른 자료형으로 변환할 있는 기능을 의미하며 가지 종류가 있습니다.

boolean형을 제외한 나머지 기본 타입 간의 타입 변환을 자유롭게 수행할 있습니다.

·       프로모션(promotion)

·       디모션(demotion)

 

 

 

 

 

프로모션(promotion)

·       자료형으로 변환

·       작은 자료형 -> 자료형

·       대입 연산자에서 왼쪽의 자료형이 오른쪽 결과의 자료형보다 발생합니다.

·       정보의 손실 없음

·       내부적으로 자동으로 형변환을 수행합니다.(자동 형변환; 묵시적 형변환; Implicit Type Conversion)

short s=7;

float f = s + 3.14f;

 

 

 

산술연산식에서 자동 형변환

산술연산식

연산 결과

정수 산술연산자 문자

정수

정수 산술연산자 정수

정수

정수 산술연산자 실수

실수

실수 산술연산자 정수

실수

실수 산술연산자 실수

실수

 

 

 

 

 

 

 

디모션(demotion)

·       작은 자료형으로 변환

·       자료형 -> 작은 자료형

·       경우에 따라 정보의 손실 발생

·       사용자가 형변환을 직접 지정합니다.(명시적 형변환; Explicit Type Conversion)

int i = 0;

short s=10;

i = (int)(10 + 3.5f);

 

 

 

명시적 형변환

·       자동 변환 발생지점을 표시하기 위해서 사용(의도한 변환임을 표시)

·       자동 변환의 규칙에 위배되지만 변환 필요한 상황에 사용(디모션)

·       중괄호 사용하여 표현하며 괄호를 타입 캐스트(type cast) 연산자라고 합니다.

 

(자료형)

(자료형)수식

 

 


Posted by codedragon codedragon

댓글을 달아 주세요

   

   

자바의 자동 형변환 규칙(Implict Conversion)

값의 표현 범위로 자동 형변환됩니다.


   

 

double num = 3.14f + 10;

//10 10F 자동 형변환

 


Posted by codedragon codedragon

댓글을 달아 주세요

자동형 변환-프로모션/디모션

   

   

소스코드

  1.  public class CastEx03 {
  2.         public static void main(String[] args){
  3.                  
  4.                  
  5.                 System.out.println("");
  6.                 System.out.println("=========프로모션=========");
  7.                 /*프로모션:
  8.                 자료형으로 승격이 일어나는 형태
  9.                 정보의 손실이 전혀 없으며 자동적으로 발생*/
  10.                 byte b1 = 127;
  11.                 byte b2 = 127;
  12. //              byte b3 = b1 + b2;      //Error: cannot convert from int to byte
  13.                 int i1 = b1 + b2;      
  14.                 /*32bit(4byte)미만 byte 데이터 연산시 32bit int형으로 승격됩니다. 데이터 타입이 다르므로 , int형은 byte형으로 저장되지 않습니다.
  15.                 Error: cannot convert from int to byte*/
  16.                 System.out.println("i1= " + i1 );
  17.                 System.out.println("b1 + b2 = " + (b1+b2) );    // 자동적으로 int 형변환 됩니다.
  18.                  
  19.                 System.out.println("");
  20.                 short s1 = 12345;
  21.                 short s2 = 12345;
  22.                 int i2 = s1 + s2;
  23. //              32bit(4바이트)미만 shore 데이터 연산시 32bit int형으로 승격
  24.                 System.out.println("i2= " + i2 );
  25.                 System.out.println("s1 + s2 = " + (s1+s2) );    // 자동적으로 int 형변환 됩니다.
  26.                  
  27.                 System.out.println("");
  28.                 int int1 = 12345;
  29.                 long lg1 = 1234567L;
  30. //              long            = int           long
  31.                 long resultL = int1 +   lg1;    // int -> long 자동적으로 형변환
  32.                 System.out.println("resultL = " + resultL);
  33.                  
  34.                 System.out.println("");
  35.                 int int2 = 12345;
  36.                 double d1 = 100.3D;
  37.                 double resultD= int2 + d1;      // int -> double 자동적으로 형변환
  38.                 System.out.println("resultD = " + resultD);
  39.                  
  40.                  
  41.                 System.out.println("");System.out.println("");
  42.                 System.out.println("=========디모션=========");
  43.                 /*디모션:
  44.                 작은 자료형으로 강등
  45.                 자료의 손실이 있을 있음
  46.                 명시적으로 형변환해야 */
  47.                 byte b4 = 125;
  48.                 byte b5 = 125;
  49.                 byte result_byte = (byte)(b4 + b5);    
  50.                 //연산결과로 int 자동으로 형변환 되므로 byte 자료형을 유지하기 위해 int -> byte 강제 형변환
  51. //              (byte): 캐스트 연산자를 사용하여 강제 형변환
  52.                 System.out.println("result_byte = " + result_byte);
  53.                 System.out.println("b4 + b5 = " + (b4 +b5) );
  54.                  
  55.                 System.out.println("");
  56.                 short s4 = 1234;
  57.                 short s5 = 1234;
  58.                 short result_short = (short)(s4 + s5);
  59.                 System.out.println("s4 + s5 = " + (s4 +s5) );
  60.                 System.out.println("result_short = " + result_short);
  61.                  
  62.                 System.out.println("");
  63.                 int int3 = 1234;
  64.                 float f1 = 100.5F;
  65. //              int result_int1 = int3 + f1;
  66.                 int result_int2 = int3 + (int)f1;       //float ->int 강제 형변환 (절삭됨)
  67.                 System.out.println("int3 + f1 = " + (int3 + f1) );
  68.                 System.out.println("result_int2 = " + result_int2);
  69.                  
  70.                 System.out.println("");
  71.                 int int4 = 1234;
  72.                 long lg2 = 1234L;
  73.                 int result_int3 = int4 + (int)lg2;      //long -> int 강제 형변환
  74.                 System.out.println("int4 + lg2 = " + (int2 +lg2) );
  75.                 System.out.println("result_int3 = " + result_int3);
  76.                  
  77.                  
  78.                  
  79.         }
  80.    
  81. }


   

   

출력결과

   

Posted by codedragon codedragon

댓글을 달아 주세요

   

자료형 변환-표현방법의 변환을 의미

   

소스코드

  1.  public class CastEx02 {
  2.    
  3.         public static void main(String[] args)
  4.         {
  5.                 short num1=10;
  6.                 short num2=20;
  7.                 short result=(short)(num1 + num2);
  8.                 //short to int -> 연산 -> int to short (내부적으로 자동으로 일어남)
  9.                  
  10.                 System.out.println(result);
  11.         }


   

   

   

출력결과

   

Posted by codedragon codedragon

댓글을 달아 주세요

   

자동형 변환을 통해 문자의 유니코드 값 출력

   

   

소스코드

  1.  public class CastEx01 {
  2.    
  3.         public static void main(String[] args)
  4.         {
  5.                 char ch1='A';
  6.                 char ch2='Z';
  7.                          
  8.                 int num1=ch1;
  9.                 int num2=(int)ch2;
  10.    
  11.                 System.out.println("문자 A 유니코드 : "+num1);
  12.                 System.out.println("문자 Z 유니코드 : "+num2);     
  13.         }
  14. }


   

   

출력결과

   

Posted by codedragon codedragon

댓글을 달아 주세요

   

http://www.sencha.com/

   

   

센타터치

내장된 디자인인 네이티브 코드(자바, 오브젝트씨)와 유사함

자바스크립트 라이브러리임

UI를 자바스크립트로 작업해서 자동 변환되어 HTML을 만들어줌

   

   

센차터치의 장점

1) 다양한 UI컴포넌트의 지원, 데이터 처리를 위한 다양한 기술  지원

2) 빠른 처리 속도 앱과 가장 비슷한 UI 화면 제공

3) 쉽고 빠른 개발

4) 신기술 도입 속도가 빠르다.

5) 진정한 웹앱

   

   

웹 서버 환경에서는

처음 실행시 자바스크립트 읽어 들이므로 조금 느릴 수 있습니다.

모바일에서는 웹 전송보다 조금 더 빠른 성능을 보일 수 있습니다.

Posted by codedragon codedragon

댓글을 달아 주세요