[닷넷강좌]C#.NET 프로퍼티, Property, 자동구현프로퍼티
프로퍼티란 스마트필드(Smart Field)라고도 하는데 멤버 필드에 값을 할당하는 방법으로 객체의 속성을 나타내는 필드의 특별한 형태이다. 기존의 VB나 VC++ 프로그래머들은 버튼이나 레이블 같은 것에서 색깔이나 크기 등을 설정 하거나 값을 얻어 내는데 한가지 속성을 이용한 다는 것을 알고 있을 것이다. C#에서는 이러한 것을 Language 차원에서 지원하고 있는데 이것이 바로 Property 이다.
프로퍼티는 실제 값을 가지고 있지 않는데 다만 프로퍼티를 이용하여 다른 멤버 변수의 값을 바꿀 수 있고 어떤 연산에 의해 값을 얻어 올 수도 있는 가상의 필드, Set과 Get 형식의 함수를 일반화한 형태로 생각 하면 될 것이다.
경우에 따라서 멤버 변수를 public으로 공개 할 수도 있겠지만 전통적인 객체 지향 프로그래밍에서는 보통 멤버들을 private으로 숨기고 그것에 대한 접근 가능한 메소드를 제공 함으로서 데이터를 보호 한다.
using System;
class Triangle1
{
private int width; private int height; private int area;
public int Width
{
get { return width; }
set { width = value; }
}
public int Height
{
get { return height; }
set { height = value; }
}
public int Area
{
get { return width * height / 2; }
}
}
class Triangle2
{
//아래는 자동구현 프로퍼티 이다.
public int Width
{
get;
set;
}
public int Height
{
get;
set;
}
public int Area
{
get { return Width * Height / 2; }
}
}
public class Test
{
static void Main()
{
Triangle1 A = new Triangle1(); A.Width = 4; A.Height = 3;
Console.WriteLine("밑변은 {0} ", A.Width); Console.WriteLine("높이는 {0} ", A.Height);
Console.WriteLine("면적은 {0} ", A.Area);
Triangle2 AA = new Triangle2(); AA.Width = 4; AA.Height = 3;
Console.WriteLine("밑변은 {0} ", AA.Width);
Console.WriteLine("높이는 {0} ", AA.Height);
Console.WriteLine("면적은 {0} ", AA.Area);
}
}
평일주간[100%환급과정]
(8/29)SQL기초에서 Schema Object까지
(8/29)Spring,MyBatis,Hibernate실무과정
(8/29)자바기초JDBC,Servlet/JSP까지
(8/29)PL/SQL,ORACLE HINT,TUNING
(9/15)C#4.0,WinForm,ADO.NET
(9/15)안드로이드개발자과정
(9/18)오라클자바채용확정교육
평일야간[개인80%환급]
(8/28)SQL기초에서실무까지
(8/28)자바JSP,jQuery,Spring,MyBatis
(8/29)Spring, MyBatis, Hibernate
(9/02)HTML5,CSS3,Ajax,jQuery마스터
(9/12)C#,Network,ADO.NET,ASP.NET
(9/16)안드로이드개발자과정
주말주간[개인80%환급]
(8/30)Spring, MyBatis, Hibernate
(8/30)SQL기초에서실무까지
(8/30)자바,네트워크,웹&스프링
(8/30)안드로이드개발자과정
(9/13)C#,ASP.NET마스터(9/13)웹퍼블리싱 마스터
(8/29)SQL기초에서 Schema Object까지
(8/29)Spring,MyBatis,Hibernate실무과정
(8/29)자바기초JDBC,Servlet/JSP까지
(8/29)PL/SQL,ORACLE HINT,TUNING
(9/15)C#4.0,WinForm,ADO.NET
(9/15)안드로이드개발자과정
(9/18)오라클자바채용확정교육
평일야간[개인80%환급]
(8/28)SQL기초에서실무까지
(8/28)자바JSP,jQuery,Spring,MyBatis
(8/29)Spring, MyBatis, Hibernate
(9/02)HTML5,CSS3,Ajax,jQuery마스터
(9/12)C#,Network,ADO.NET,ASP.NET
(9/16)안드로이드개발자과정
주말주간[개인80%환급]
(8/30)Spring, MyBatis, Hibernate
(8/30)SQL기초에서실무까지
(8/30)자바,네트워크,웹&스프링
(8/30)안드로이드개발자과정
(9/13)C#,ASP.NET마스터(9/13)웹퍼블리싱 마스터
댓글 없음:
댓글 쓰기