본문 바로가기

컴퓨터 프로그래밍

(78)
C# 강좌 프로퍼티. class MyClass { private int myField; public int GetmyField(){ return myField;} public void SetmyField(int newValue){ myField = newValue;}; } MyClass obj = new MyClass(); obj.SetMyField(3); Console.WriteLine(obj.GetMyField()); 이것은 정석이긴 하지만 C#에는 우아한 장치가 있음. 따라서 이런 방법은 지양해야함 Class 클래스이름 { 데이터형식 필드이름; 접근한정자 데이터형식 프로퍼티이름 { get { return 필드이름; } set { 필드이름 = value; } } } get 접근자를 필드로부터 값을 읽어오고 set은 필드에..
C# 강좌 추상클래스 추상클래스는 인터페이스와 달리 구현을 가질 수 있다. 하지만 클래스와는 달리 인스턴스를 가질수 없다. 추상클래스는 한마디로 구현을 가지되 인스턴스는 만들지 못함. abstract class 클래스이름 { } ex) abstract class AbstractBase { public abstract vboid someMethod(); } class Derived : AbstractBase() { //Something } 추상클래스와 추상 메소드는 다른 프로그래머가 파생클래스를 만들어야 하며 모든 추상 메소드를 구현해야 한다는 사실을 잊어 버릴때 컴파일러가 상기시켜줄 것이다. 이때문에 추상 클래스를 사용한다.
c# 강좌 업캐스팅과 다운캐스팅 업캐스팅: 자식 클래스의 객체를 부모클래스의 객체로 만드는것을 말한다. ex) class SportsCar : Car 라고 클래스가 있으면, Car a = new Car(); SportsCar b = (SportsCar)a; // 명시적 변환 SportsCar c = a; // 묵시적 변환 자식클래스는 부모클래스의 멤버를 내부적으로 모두 가지고 있기 때문에 자식클래스의 일부분을 이용해 부모클래스를 만드는 것이 가능하다. 업캐스팅의 장점은 사용자는 내부를 몰라도 된다는 것. 인터페이스만 있다면 어떠한 작업이라도 전부 할 수 있다. 이러한 장점은 우리가 직접 만들어서 작업하기 보다는 내부적으로 이루어지는 경우가 많다. 추상클래스, 인터페이스, 은폐화, 오버라이딩 등 과 관련이 있다. 다운캐스팅: 부모클래스의..
c# 강좌 인터페이스 인터페이스는 객체 지향 프로그래밍을 한층 더 강력하게 만들어주는 요소이다. 객체지향의 고수는 인터페이스를 잘 사용할 수 있어야 한다 라고 합니다. 인터페이스는 자신으로부터 파생될 클래스가 반드시 메소드를 사용하도록 강제한다. 예시를 봅시다. ClimateMonitor란 클래스를 만들고 사용자로부터 온도를 반복적으로 입력받아 기록하는 클래스로 만들자! 로그를 저장하는 방식 등은 ClimateMonirot 클래스를 사용하는 다른 프록르래머들이 입맛에 따라 결정할 수 있어야 한다고 해보자 Climate클래스는 Logger를 이용해서 사용자로부터 입력받은 온도를 기록한다. logger가 어떻게 이 메시지를 기록하는지 ClimateMonitor()생성ㅈ에 매개변수로 입력된 객체에 달려 있다. namespace I..
c# 강좌 is as 연산자 형식 변환. 형식변환에는 두가진 버전이 있다. 업캐스팅과 다운캐스팅이다. 업캐스팅은 자식클래스의 객체가 부모클래스의 형태로 변환되는 것을 말하며, 다운캐스팅은 부모 클래스의 자식클래스의 형태로 변환되는것을 말한다. 형식변환 예시 Dog dog1 = new Dog(); Mammal mammal = dog1(); // 업캐스팅, 자식클래스가 부모클래스의 형태로 변환됨. mammal.Nurse(); Dog dog2 = (Dog)mammal; // 다운캐스팅, 부모클래스가 자식클래스의 형태로 변환됨. 연산자 : 설명 is : 객체가 해당 형식에 해당하는지를 검사하여 그 결과를 bool값으로 반환함 as : 형식 변환 연산자와 같은 역활을 합니다. 다만 형변환 연산자가 변환에 실패하는 경우 예외를 던지는 반면에 as연산자는 ..
c# 공부 시작 공부 시작