NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • 학습
  • 매뉴얼

    학습


    Java Java vs C# (자료형과 상수) - 4부

    페이지 정보

    본문

    안녕하세요. 소심비형입니다. 간단하게 Java와 C#의 자료형과 상수에 대해서 단순 비교한 표를 참고하여 Java와 C#의 자료형에 대해서 알 수 있습니다. 좀 더 자세한 내용을 알고 싶다면 아래 표의 Java와 C# 타이틀을 클릭하세요.

     구분

    클릭[ Java ]

    클릭[ C# ]

     Java는 원시 자료형(Primitive Data Type)이라 표현하고,

     C#은 기본 제공 형식 또는 내장 형식(Built-in Type)의

     범주 안에 Integral Type, Floating-point Type으로

     분류하고 있습니다.

     

     ※ C#은 unsigned를 지원합니다.

     boolean

     bool

     byte

     byte, sbyte

     char

     char

     short, int, long

     short, ushort, int, uint, long, ulong

     float, double

     float, double, decimal

     

     structures, enumerations

     참조 형식 (Reference Type)

     Object (모든 클래스들의 부모)

     object (모든 클래스들의 부모)

     String

     string

     arrays, classes, interfaces

     arrays, classes, interfaces, delegates

     

     

    간단하게 형변환에 대해서 테스트 해봅니다.

     

    Java

    package JavaType; 
    
    public class PrimitiveDataType 
    { 
        public static void main(String[] args) 
        {  
            // 정수를 문자열로 형변환.  
            int integral = 123;  String string = Integer.toString(integral);  
    
            // 문자열을 정수로 형변환.  
            string = "456";  
            integral = Integer.parseInt(string);  
    
            // 부동소수를 정수로 형변환.  
            double floatingPoint = 3.5;  
            integral = (int) floatingPoint;    
    
            System.out.println(integral); 
        }
    }

     

     

    실행 해보면 아래와 같은 결과를 얻을 수 있습니다. 부동소수를 정수로 변환하면 자동으로 소수부는 버려지게 됩니다.

    C#

    using System;
    
    namespace ConsoleApplication1 
    { 
        class Program 
        { 
            static void Main(string[] args) 
            {            
                // 정수를 문자열로 형변환.            
                int integral = 123;            
                string text = integral.ToString();            
                
                // 문자열을 정수로 형변환.            
                text = "456";            
                integral = int.Parse(text);            
                
                // 부동소수를 정수로 형변환.            
                double floatingPoint = 3.5;            
                integral = (int)floatingPoint;            
                
                Console.Write(integral);            
                Console.ReadLine();        
            }    
        }
    }

     

     

    C#도 Java와 결과는 같습니다.

    1. Java에서 지원되는 원시 자료형을 포함하여 C#에서는 부호 없는(Unsigned) 자료형과 128bit 부동 소수 형식(Decimal)을 지원합니다.

    2. Java에서는 원시 자료형이 존재하고 이 자료형에 대한 각각의 래퍼 클래스가 있습니다.

    3. C#의 경우에는 모든 자료형은 System 네임스페이스의 객체이며, 모두 별칭이 존재합니다.

    4. C#의 자료형들의 별칭은 대문자로 시작하고, Visual Studio에서 시각적으로 구분(Color)해줍니다. 

    5. C#의 자료형 중 유일하게 Boolean만 별칭을 bool로 표시합니다.

     

     

    상수(Constant)는 변수와 다르게 컴파일 타임에 값이 설정되는 필드이므로 변경될 수 없습니다. 상수를 사용하여 특별한 값에 대해 숫자 리터럴 대신 의미 있는 이름을 지정합니다.

     

    Java

     

    // 생성자에서 초기화 가능.
    final double PI = 3.14159;

     

    C#

    // 생성자에서 초기화 불가능.
    const double PI = 3.14159;
    // 생성자에서 초기화 가능.
    readonly int INIT_PI = 3.14159;

     

    1. Java는 final 키워드를 사용하고 C#은 const 키워드를 사용합니다.

    2. C#의 경우에는 Java처럼 생성자에서 상수를 초기화 할 수 없습니다.

    3. C#은 readonly 키워드를 사용하여 Java의 상수와 같이 생성자에서 초기화 할 수 있습니다.

     

     

    예전에는 클래스의 필드로 상수를 정의해서 사용했습니다. 그래서 Naming Rule도 있었죠. 상수는 모두 대문자로 표시해야 하며, 단어의 구분은 언더스코어(underscore = 밑줄, 언더라인 또는 언더바라고도 함)를 사용합니다. 예를 들면 MAX_LENGTH, LIMITED_LINE_CNT등등... 상수의 작명 룰이었습니다. 지금에 와서는 OOP에 맞게 상수도 변화했는데요. 대부분이 상수 클래스를 사용하여 표현하고 있습니다.

    using System;
    
    namespace ConsoleApplication1 
    { 
        public class LimitConstants 
        { 
            public const int NameLength = 3; 
            public const int AddressLength = 24; 
            public const int FirstPhone = 3; 
            public const int SecondPhone = 4; 
            public const int ThirdPhone = 4; 
        }
        
        class Program 
        {
            static void Main(string[] args) 
            {
                string firstPhone = "010 ";            
                // 상수임을 알 수 있는 클래스 명명법을 사용.            
                bool isValid = false;            
                isValid = LimitConstants.FirstPhone == firstPhone.Length;            
                Console.Write(isValid);            
                Console.ReadLine();        
            }
        }
    }

     

     

    다음 시간에...

    • 네이버 공유하기
    • 페이스북 공유하기
    • 트위터 공유하기
    • 카카오스토리 공유하기
    추천0 비추천0

    댓글목록

    등록된 댓글이 없습니다.