[날짜 표현] => 결과 모두 동일 2011-04-19
Console.WriteLine(DateTime.Now.ToShortDateString());
Console.WriteLine("{0:d}",DateTime.Now);
Console.WriteLine(DateTime.Now.ToString("d"));
[형변환 방법]
1)string -> int 변환 방법 두가지
int age = int.Parse(s);
age = Convert.ToInt32(s);
[Read() 와 ReadLine()의 차이]
public static int Read() : 표준 입력 스트림에서 다음 문자를 읽음, 입력 스트림의 다음 문자를 반환하거나 현재 읽을 문자가 더 이상 없으면 -1을 반환(int 반환)
public static string ReadLine() : 표준 입력 스트림에서 다음 줄의 문자를 읽음.입력 스트림의 다음 줄 문자를 반환하거나 사용할 수 있는 줄이 더 이상 없으면 null을 반환(String 반환)
[제어문]
switch 문 사용 시 break가 없으면 에러가 발생한다.=>case문에는 무조건 break를 사용해야 한다
[break문과 continue문의 차이]
break문: for문이나 while문이 중첩되어 있을 경우 하나의 반복문만 벗어난다.
continue문:반복문을 실행하는 도중 continue문을 만나면 후속 문장을 실행하지 않고, 다음 반복과정으로 분기시켜 버린다.
[디버깅 단축키]
F11: 한단계씩 코드 실행
F6 : 솔루션 빌드
F5 : 디버깅 시작
[멤버변수 property 자동 설정방법]
멤버변수에 커서 위치시킴->리팩터링->필드 캡슐화
[생성자를 호출하는 this()]
this()를 사용하는 이유 : 생성자의 중복을 피하기 위해(자신의 생성자를 재사용하기 위해) 생성자를 호출하는 방법을 제공
(SOURCE CODE)
public class ThisSelf{
private string name;
private int age;
public ThisSelf() : this("이름없음"){
Console.WriteLine("매개변수가 없는 생성자");
}
public ThisSelf(string name) : this(name, -1){
Console.WriteLine("매개변수가 1개있는 생성자");
}
public ThisSelf(string name, int age){
this.name = name;
this.age = age;
Console.WriteLine("name:" + name + " number:" + age);
Console.WriteLine("매개변수가 2개있는 생성자");
}
}
ThisSelf ts1 = new ThisSelf();
ThisSelf ts2 = new ThisSelf("홍길동");
ThisSelf ts3 = new ThisSelf("김삿갓", 50);
[static 키워드]
1)static 멤버변수
-모든 클래스에서 공유하기 위한 멤버를 선언하기 위해 사용(전역변수 대용)=>문제점:동기화문제=>스레드 부분에서 논의
-static멤버변수에 접근하는 방법 : 클래스 이름으로만 접근해야 함(객체 이름으로 접근할 경우 에러)
-static 메모리 생성 시기 : 객체를 생성하기 이전에 스태틱의 메모리는 생성됨
2)static 멤버함수
-객체가 없는 상태에서 static 멤버 변수에 접근하고 싶을 때 사용(클래스이름.멤버변수로 접근 가능)
=>객체가 없는 상태에서 static 멤버변수에 접근할 경우 에러
=>스태틱 멤버함수를 이용해서 일반 멤버변수에 접근 불가
-멤버변수가 없고 멤버함수만 있는 경우 전역함수 대용으로 사용
3)static 생성자
-접근제어를 사용할 수 없음(public 쓰면 에러)
-매개변수를 가질 수 없음
[상수사용]
1)const 키워드
-const는 자동으로 static이 된다.(static 키워드를 사용하지 않아도 자동적으로 static 속성을 가짐)
-const로 선언한 변수는 반드시 초기화되어야 한다.(초기화 변경 불가)
ex)public const int A=1,B=2,C=3;
2)readonly 키워드
-const 키워드와 달리 반드시 초기화할 필요없다.
-생성자에서 딱 한번 값을 할당할 수 있다.(But, 여러번 초기화를 할 수 있는 것은 아님)
=>readonly 상수는 생성자를 통해서 런타임 시 값을 초기화하고자 할 때 사용, 생성자에서 값이 결정되면 다시는 그 값을 변경할 수 없음(런타임시에 값이 할당된다고 해도 상수는 상수임)
-const 키워드와 달리 static 키워드를 사용하면 스태틱 상수가 되고 사용하지 않으면 일반 상수가 된다.
-static readonly :static readonly일 경우 스태틱 생성자에서 초기화할 수 있고 클래스의 이름으로 접근가능
ex)public static readonly int STATIC_READONLY=1;
-일반 readonly : 일반 readonly일 경우 생성자에서 초기화할 수 있고객체의 이름으로 접근가능
ex)public readonly int STATIC_READONLY=1;
[sealed 키워드]
상속을 금지시키는 키워드
ex) public sealed class Father =>public class Son : Father(x)
[base 키워드]
상속 관계에서 상위 클래스를 참조할 수 있는 유일한 참조 변수(자바에서 super)
[연산자 오버로딩]
무조건 public static
반환형은 마음대로
[추상클래스와 인터페이스]
[다차원 배열 선언 및 초기화]
int[,] myarray = new int[,]{{1,2},{3,4},{5,6}};
댓글 없음:
댓글 쓰기