본문 바로가기

C#

[C#의 객체지향] 1 -7 오버라이딩, this, base 오늘은 오버라이딩과 This. Base 키워드에 대해 알아보겠다. 오버라이딩(Overriding) : 같은 이름을 가진 변수나, 메소드를 처리하는 방식이다. 첫번째: 지역 변수와 멤버 변수 명(name) Class test { int member=0; public void show() { int member =1000; Console.WriteLine(member); } } 이렇게 하면 클래스의 멤버변수 member이 0으로 선언되었음에도 불구하고, show()메소드안의 member가 지역변수로 선 언 되었기 때문에 출력을 하면 1000이 출력되게 된다. 두번째 : 상위클래스와 하위클래스에서의 동일한 명(name) class Top { public void show() { Console.WriteLin.. 더보기
[C#의 객체지향] 1 -6 상속관계에서의 접근제한자 이번엔 접근제한자자에 대해서 알아볼 것이다. 여기서 접근제한자라는 말은, private , protected , public , default 이다. 상속에서의 private는? 상속을 했다면 아들은 아버지의 public 멤버뿐만 아니라, private 멤버까지 모두 물려받는다. 아들은 아버지의 모든 멤버의 마음대로 접근할 수 있을까? 답은 No 이다. 단, public멤버는 아들이라도 마음대로 점 찍고 접근 할 수가 있다. Father클래스안에 public int Money=50000; 이라는 public 인트형 타입의 멤버가 있다고 한다. 이 Father 클래스를 상속받은 Child : Father 클래스가 있다고 보자. 그러면 Child Imchild = new Child(); 하면 Imchild... 더보기
[C#의 객체지향] 1-5 생성자, 소멸자 먼저 생성자에 대해서 알아보자. 생성자. 객체가 생성될때 처음 호출되는 것이 생성자이다. 이러한 생성자는 초기 객체를 생성할때 내부 변수의 초기화를 할때에 이용된다고 보면 된다. using System; public class MainTest { public MainTest () { //이 부분이 생성자이다. 생성자는 Class의 이름과 동일하여야 하며, 반환되는 값이 없다. 또한 객체생성을 할 시에 단 한번 호출된다. Console.WriteLine("생성되었습니당"); } public void SayHello() { Console.WriteLine("Hello World!"); } public static void Main() { MainTest m = new MainTest(); // 생성하자마.. 더보기
[C#의 객체지향] 1-4 상속 ( inheritance ) - 2 이번엔 상속의 특징에 대해서 알아보자. 생성자에 대해서는 다음 항목에서 공부 할 것이다. 그러나 생성자가 무엇인지 알고 싶다면 먼저 생성자부터 공부하고 올 것을 권한다. 어차피 생성자에 대한 개념이 있어야 상속을 이해하는데 있어서도 약간의 도움은 된다. 생성자에 대해서 간단하게 설명하면, 객체생성을 하는 순간 호출 되는 것이다. 예를 들어서 , class Child { public Child() { Console.WriteLine("I am Child"); } } 생성자가 어떤것인지 알 수 있겠는가? public Child 이것인데 일반 메소드는 public void,int,double Child () 이렇게 Type이 있어야 되는데 생성자는 그런것이 없이 클래스명과 동일하게 정의하면 된다. 중요한 점은.. 더보기
[C#의 객체지향] 1-4 상속 ( inheritance ) 오늘은 상속에 대해서 알아보겠다. 상속. 상속이란 말은 수없이 들어봤을것 이다. 상속세, 재산을 상속 받다. 말그대로 물려받는 것이다. 일단 개념적인 설명에 들어가기 앞서, 실제로 쓰이는 실전 예제로 알아보도록 하겠다. 그럼 왜 Class를 상속 받는 것일까?! Top 이라는 클래스가 있다고 보자. 첫째. 새로운 클래스를 만들어야 하는데 Top 클래스와 내용이 별 차이없고 조금만 수정해도 되는 경우. 둘째. Top 클래스의 소스코드를 전부 잃어버리고 DLL만 있는 경우. 이런 두 경우에는 기존의 Top클래스의 내용을 그대로 긁어(?)와서 조금만 내용을 가미하여 클래스를 정의 해주면 되는 문제들이다. 이럴때 필요한것이 바로 상속이다. 예를들어서, 우선 Top형 클래스를 라이브러리 형태로 만들어보자. 첫째... 더보기
[C#의 객체지향]1-3 변환 키워드 시리즈 explicit,implicit,operator (1) 이번엔 변환(캐스팅)에 대해서 알아보자. 기본적으로 캐스팅에 대해서는 잘 알고 있을것이다. 예를들어서, float b = 5.0 f ; int a = b; 이러면 에러가 날 것이다. 암시적으로 변환할 수 없습니다 라는 코멘트와 함께. 그러나 여기서, int a = (int) b ; 이렇게 캐스팅 해준다면 아무 문제 없이 들어갈 것이다. 실수값 5.0은 정수형으로 바뀌어 5라는 값이 변수 a 에 들어가게 될 것이다. 자 그렇다면 이러한 캐스팅없이 하는 암시적 변환과, 사용자가 임의로 지정해주는 명시적 변환을 이용한 연산자 설정을 해보자. 별도의 캐스팅 없이 변환 되는 암시적 변환 키워드 : implicit 사용자가 임의 지정해서 캐스팅이 필요한 경우 : explicit 예를 들어서 보자. 시간을 입력 해놓.. 더보기