본문 바로가기
프로그래밍/C#

c# 기본 문법 정리3

by -현's- 2012. 3. 7.
반응형

●속성 - 객체 안에 있는 필드의 값을 취득 또는 설정하는 메서드이다. 필드를 반환하는 get엑세서와 필드에 값을 대입하는 set엑세서로 구성된다. 자바에서 setter, getter랑 비슷한 개념이다
ex)
usting System;
class A{
    public int a;
    public int sok{
          get{
          return a;
          }
          set{
          a=value;
          }
      }
}

A a=new A();
a.sok = 3;              //따로 set, get을 표시하지 않고 그냥 입력 or 출력하면 된다.
Console.Write(a.sok);



●인덱서(indexer) - 객체를 배열처럼 취급하고자 할 때 사용한다. 속성과 같이 get, set으로 구성
ex)
using System;
class A{
    int []a = new int[4];
    public int this[int i]{
        get{
        return a[i];
       }
        set{
        a[i]=value;
       }
    }
}

A a = new A();
a[0]=1;
a[1]=2;
a[2]=3;
a[3]=4;
for(int i=0; i<=3; i++){
  Console.Write(a[i]);
}



●상속 - ' :부모클래스명'을 붙인다
ex)
class A{
   ~~
}
class B : A{
   ~~
}



●sealed - 상속되지 않도록 할 클래스는 sealed를 사용하여 봉인한다.
ex)
sealed class A{
   ~~
}



●클래스를 상속했을 때 부모클래스와 자식클래스 각각에 생성자가 있는 경우 부모클래스로부터 차레로 생성자가 작동한다.




●기본 클래스의 생성자를 호출
- 상속한 생성자에 인수가 있는 경우에는 다음과 같이 base를 이용하여 상속원본에 인수를 전달
ex)
using System;
class A{
   public int x;
   public A(int a, int b){
       x=a+b;
   }
]
class B : A{
   public B(int c, int d) : base(c, d){}
}



●이름 은폐
- 자식 클래스의 멤버에 부모클래스의 멤버와 같은 이름을 붙이고자 할 경우에는 멤버의 정의 앞에 'new'를 붙인다.
여기서 new는 객체생성시 사용하는 new랑 다르다. new가 붙은 멤버를 호출하면 자식클래스 쪽의 멤버가 호출된다.
ex)
class A{
   public int a=10;
}
class B : A{
   new public int a=30;
}



●base - 이름이 은폐된 부모클래스의 멤버를 자식클래스안에서 사용할 때 사용
ex)
using System;
class A{
   public int a=3;
}
class B : A{
   new public int a=100;
   public void print(){
      Console.WriteLine(base.a);
   }
}



●오버라이드
 -상속한 메서드와 같은 이름, 같은 인수, 같은 반환값을 가지는 메서드를 해서 덮어 쓰는것. 오버라이드 되는 메소드에는 'virtual' 키워드를 붙이고 오버라이드 한 메소드에는 'override' 키워드를 붙인다
ex)
class A{
   public virtual void bye(){
      ~~
}}
class B : A{
   public override void bye(){
      ~
}}


반응형

'프로그래밍 > C#' 카테고리의 다른 글

c# 기본 문법 정리5  (0) 2012.03.08
c# 기본 문법 정리4  (0) 2012.03.08
c# 기본 문법 정리2  (0) 2012.03.07
c# 기본 문법 정리1  (0) 2012.03.04

댓글