1월 9, 2015의 게시물 표시

C# 프로퍼티(Property) 를 알아보자!

이미지
이번에 알아볼 것은 C#의 Properity입니다. 이것이 무엇인가 전혀 감이 안잡혔는데요.. 새로 추가가 된 기능이었군요;;   public,private 같은 접근한정자의 한계점을 나름대로 보완한 C#만의 새로운 기능이라고 합니다. 은닉성과 편의성의 두마리 토끼를 잡았다는… 클래스를 만들고 메소드를 만들고.. 해당메소드안에 데이터에 접근하여 값을 가져오거나 값자체를 변경하거나.. 프로그래밍을 하면서 수십수백번도 더 있는 일입니다. 그렇게 하면서 원하는 데이터를 만들고 결과를 도출해 가는게 프로그래밍아니기겠습니까? 하지만.. 그동안 사용해왔었던 손에 익었던 델파이와 비교해보니 좀 햇갈리고 불편한 것 같습니다. 물론 델파이에도 public private이라는 개념이 있긴합니다만 워낙 그런거 잘 안따지고 개발을 하다보니  .. 그렇다는 이야기는 재사용을 잘 안하는 프로그램을 했다는 이야기겠죠 ㅜㅜ  그런 큰 불편함을 모르고 개발을 해 왔던 것 같습니다. Properity라는것은 기존의 public과 private으로 선언하여 했던것의 번거로움을 덜어주는 기능이라고 말하고있습니다. 기존의 소스를 예를든다면.. 이런 식으로해서.. 데이터를 집어넣고 집어넣은 데이터를 출력하였는데..  이것을 Properity를 이용해서 좀 더 간결하고 편리하게 할 수 있다는 것입니다. 선언을 하는 예를 보겠습니다. Test라는 클래스를 선언 하였고..   메소드와 흡사합니다. 형식은 아래와 같은데.. C#버전이 올라가면서 간결해졌습니다. 주석으로 처리했던것은 옛날에 가능했던 문법이고요.. 물론 사용가능합니다. 단지.. 값을 넣고 불러오는 용도로만 사용한다면..  get;set;과같이 표현을 해도 무방하기때문에 간결해 진것 같습니다. 하지만 안에 내용을 좀 변경하거나 수정한다고 하면.. 좀 달라지겠죠? 책...

C#, 추상클래스(abstrace class)를 알아보자!

이미지
이번시간에 알아볼 것은 C#의 abstract class(추상클래스)입니다. 학창시절에 배웠었던 기억이 잠시 나는 것 같은데요.. 책을 통해서 클래스 메소드 인터페이스 등등 C#의 많은 문법들을 배우고 있는 것 같습니다. 추상클래스라는것은.. 인터페이스와 비슷한 것인데요   인터페이스가 클래스안에 외형적인 선언과같은 것을 소유했지만… 직접 인스턴스를 만들지 못해서   해당 인터페이스를 참조하는 클래스에 구현적인 기능을 넣었다면.. 이것도 비슷하게.. 해당하는 클래스에 직접 인스턴스(객체)를 생성하지 못하고.. 마찬가지로 클래스를 상속하는 파생클래스를 만들어서 구현하는게 동일합니다. 하지만 이것는 인터페이스와는 다르게.. 클래스안에 메소드나 필드를 만들 수 있습니다. 직접 인스턴스를 만들지 못하는 것은 동일하지만요… 정리하여 표로 나타내보면.. 형식 공통점 다른점 인터페이스 직접 인스턴스를 갖지못한다. *외형적인 형식만 갖을 수 있다(메소드,이벤트,인덱서,프로퍼티 만 존재) 추상클래스 *형식뿐만아니라 안에 내용도 갖을 수 있다 (구현) *추상메소드를 가질 수 있다.(인터페이스와 같은 역할을 하는 장치-구현을 가지 못하지만.. 파생클래스에서 구현하도록 강제됨!) 어떻게 본다면.. 이것을 이용한다면.. 인터페이스의 기능들을 전부 다 가능하도록 할 수 있겠다는 생각이 듭니다. 하지만 아직 아는게 많지 않아서.. ㅜㅜ 문법은 이렇습니다. 클래스이름 앞에  abstract라는 한정자를 붙여서 이게 추상클래스다! 라고 알려주는것이지요.. 이것으로 직접 객체를 생성할 수 없다고 하였으니.. 이것을 상속하는 클래스를 만들려면.. 그동안에 배웠던 상속하는 방법과 다르지 않습니다. 별다를게 없는것 같습니다. 근데 클래스관련하여 너무 많은 기능들이 있다 보니 햇갈리...