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와 결과는 같습니다.
-
Java에서 지원되는 원시 자료형을 포함하여 C#에서는 부호 없는(Unsigned) 자료형과 128bit 부동 소수 형식(Decimal)을 지원합니다.
-
Java에서는 원시 자료형이 존재하고 이 자료형에 대한 각각의 래퍼 클래스가 있습니다.
-
C#의 경우에는 모든 자료형은 System 네임스페이스의 객체이며, 모두 별칭이 존재합니다.
-
C#의 자료형들의 별칭은 대문자로 시작하고, Visual Studio에서 시각적으로 구분(Color)해줍니다.
-
C#의 자료형 중 유일하게 Boolean만 별칭을 bool로 표시합니다.
상수(Constant)는 변수와 다르게 컴파일 타임에 값이 설정되는 필드이므로 변경될 수 없습니다. 상수를 사용하여 특별한 값에 대해 숫자 리터럴 대신 의미 있는 이름을 지정합니다.
Java
// 생성자에서 초기화 가능.
final double PI = 3.14159;
C#
// 생성자에서 초기화 불가능.
const double PI = 3.14159;
// 생성자에서 초기화 가능.
readonly int INIT_PI = 3.14159;
-
Java는 final 키워드를 사용하고 C#은 const 키워드를 사용합니다.
-
C#의 경우에는 Java처럼 생성자에서 상수를 초기화 할 수 없습니다.
-
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();
}
}
}
다음 시간에...
- 이전글4. String 형식. 20.08.16
- 다음글C#의 문서화 (Doxygen, 독시젠) 20.08.13
댓글목록
등록된 댓글이 없습니다.