안녕하세요, Davey 입니다. 오늘 포스팅 할 사항은, C# 에서, 인스턴스는 생성은 안되지만, interface와 비슷한 특성을 가진 추상 클래스와 다양하게 코드를 구현 할 수 있게 도와 주는 Property 기본 구문에 대해서, 설명해 드리겠습니다.
그럼 추상 클래스 및 Property 기본 구문에 대해서 하나 하나 설명 해 드릴 테니, 천천히 따라오시면 됩니다.
추상 클래스
: 미완성 클래스라고 말을 합니다. 클래스와 가장 큰 차이점은, 인스턴스를 생성하지 못한 다는 거죠. 하지만 내부 메소드 선언을 이용하여, 클래스 역할도 하고 있습니다. 추상 클래스와 그 내부에 포함하는 추상 메소드 기분 구문은 아래와 같습니다. (기본 선언 문구 "abstrat")
==============================================================
abstract class test1 // 추상 클래스 선언시에 "abstrat"를 꼭 붙여 줘야 합니다.
{
public abstract void test_1(); // 추상 메소드 선언시에 "abstrat"를 꼭 붙여 줘야 합니다.
}
class test2 : test1
{
public override void test_1()
{
// 오버라이딩 할 메소드 내용
}
}
==============================================================
- 쉬운 이해를 돕기 위해, 아래와 같이 간단하게 추상클래스에 대한 예시 Code를 작성하였습니다.
==============================================================
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TEST_abstract
{
abstract class test1
{
public void statement1()
{
Console.WriteLine("Statement 첫 번째 예시입니다.");
}
public virtual void test_1()
{
Console.WriteLine("Statement 두 번째 예시입니다.");
}
public abstract void test_2();
}
class test2 : test1
{
public override void test_1()
{
Console.WriteLine("Override 한 결과 값입니다.");
}
public override void test_2()
{
Console.WriteLine("추상 클래스 확인 작업입니다.");
}
}
class MainApp
{
static void Main(string[] args)
{
test1 demonstration1 = new test2();
// test1 demonstration2 = new test1(); <-- 인스턴스를 생성을 못합니다. 주석을 풀면 오류가 뜹니다.
demonstration1.statement1();
demonstration1.test_1();
demonstration1.test_2();
Console.ReadKey();
}
}
}
==============================================================
- 위 Code를 실행하면 결과 값은 아래와 같습니다.
Property를 이용한 기본 문구 구성
: 속성값을 이용하여 값을 출력하는 구문으로서, get set 을 이용하여 기본적인 구문을 구성합니다. 즉, 각 변수의 값을 value값으로 받아서, 다시 그 값을 이용하여 get set 구문을 이용하여 출력하는 구문이라고 생각하시면 됩니다.
- 쉬운 이해를 돕기 위해, 아래와 같이 간단하게 Propery 기본 구문에 대한 예시 Code를 작성하였습니다.
==============================================================
using System;
using System.Collections.Generic;
using System.Text;
namespace Property_Revised
{
class test1
{
private string statement1;
public string statement2
{
get { return statement1; }
set { statement1 = value; }
}
}
class MainApp
{
static void Main(string[] args)
{
test1 instan1 = new test1();
instan1.statement2 = "사귄 날";
Console.WriteLine($"Statement : {instan1.statement2}");
Console.ReadKey();
}
}
}
==============================================================
위 코드를 실행 시켜 보면 아래와 같은 결과 같을 보실 수 있습니다. 이번 Posting에는 간단하게만 설명 드린 것이고, 다음에 Posting 할 내용에, Propety 관련해서, 자세히 설명 드리도록 하겠습니다.
이상입니다. 지금까지 추상 클래스 및 Property 기본 구문에 대해서 포스팅을 작성하였습니다. 추가적으로 설명 드리자면, 추상클래스는 약간 보조 클래스 개념으로, 사용하시면 되며, 그안에 선언한 추상 메소드는 내용을 쓰면 오류가 발생을 합니다. 이 부분을 파생클래스에서필요한 경우 다시 재 설정해줘야 합니다.
그럼 제 Posting이 C# 프로그래머가 되는데 조금이나마 도움이 되셨으면 합니다. 감사합니다.
[저작권이나, 권리를 침해한 사항이 있으면 언제든지 Comment 부탁 드립니다. 검토 후 수정 및 삭제 조치 하도록 하겠습니다. 그리고, 기재되는 내용은 개인적으로 습득한 내용이므로, 혹 오류가 발생할 수 있을 가능성이 있으므로, 기재된 내용은 참조용으로만 봐주시길 바랍니다. 게시물에, 오류가 있을때도, Comment 달아 주시면, 검증 결과를 통해, 수정하도록 하겠습니다.]
'C# > C# 일반 & Basic (General & Basic)' 카테고리의 다른 글
C# 프로그래머 되기 Property 선언 or 초기화 방법 및 추상 클래스 이용한 Property 활용 (0) | 2021.03.04 |
---|---|
C# 프로그래머 되기 오버라이딩 사용 및 봉인, 메소드 숨기기 (0) | 2021.03.04 |
C# 프로그래머 되기 접근 한정자 개념, 클래스 형식 변화 그리고 is 와 as 개념 (0) | 2021.03.04 |
C# 프로그래머 되기 기반 클래스, 파생 클래스, 그리고 this 개념 (0) | 2021.03.04 |
C# 프로그래머 되기 - ArrayList 활용하기 (1) | 2021.03.04 |
댓글