(C#) Java와 C#비교
참고 사이트: http://www.elex.pe.kr/entry/Java-cf-C-Sharp
클래스 / 인터페이스
Java
접근 키워드 public private protected static // 상속 class FootballGame extends Competition { ... } // 인터페이스 interface IAlarmClock { ... } // 인터페이스의 상속 interface IAlarmClock extends IClock { ... } // 인터페이스 구현 class WristWatch implements IAlarmClock, ITimer { ... }
C#
접근 키워드 public private internal protected protected internal static // 상속 class FootballGame : Competition { ... } // 인터페이스 interface IAlarmClock { ... } // 인터페이스의 상속 interface IAlarmClock : IClock { ... } // 인터페이스 구현 class WristWatch : IAlarmClock, ITimer { ... }
Java의 기본 접근 제한자는 동일 패키지 내에서 접근 가능인 반면, C#에서는 private이다.
C#의 internal 키워드는 현재 어셈블리 내에서만 접근 가능하도록 지정하는 것이며, 어셈블리는 Java의 Jar파일과 유사한 개념이다.
Java에서 클래스가 더이상 상속 될 수 없도록 지정하는 final 키워드 대신, C#에서는 sealed 키워드를 사용한다.
Java에서 상속과 구현을 나타내는 키워드인 extends와 implements 대신, C#에서는 :을 사용한다.
Java의 super 키워드 대신, C#에서는 base 키워드를 사용한다.
Java와 달리, C#에서는 오버라이드 될 메서드에는 virtual 키워드를 오버라이드 하는 메서드에는 override 키워드를 사용한다.
C#에서는 인덱서를 지원하므로 이를 이용하면 클래스나 구조체를 배열처럼 다룰 수 있다.
*****C#의 ref와 out
둘다 C++의 참조형을 말하는 것으로 함수 내에서 해당 참조된 값을 변경하고 함수가 종료되더라도 값은 변경되어있다. 이 둘의 차이점은 ref는 초기화 해야하고 out는 초기화 할 필요가 없다
************C#의 상수형
*****C#의 ref와 out
둘다 C++의 참조형을 말하는 것으로 함수 내에서 해당 참조된 값을 변경하고 함수가 종료되더라도 값은 변경되어있다. 이 둘의 차이점은 ref는 초기화 해야하고 out는 초기화 할 필요가 없다
************C#의 상수형
const double PI = 3.14; // const 또는 변수에 지정할 수 있음. 생성자에서 초기화 될 수 있음. readonly int MAX_HEIGHT = 9;
댓글
댓글 쓰기