접근제한자
접근제한자는 5가지 종류가 있다.
접근 제한자 |
설명 |
private |
클래스 내부에서만 접근이 가능합니다. |
public |
모든 곳에서 해당 멤버로 접근이 가능합니다. |
internal |
같은 어셈블리에서만 public으로 접근이 가능합니다. |
protected |
클래스 외부에서 접근할 수 없으나 파생 클래스에서는 접근이 가능합니다. |
protected internal |
같은 어셈블리에서만 protected으로 접근이 가능합니다. |
This
this는 자기 자신을 가리키는 키워드이다.
this를 사용하면 클래스 내에 정의한 멤버변수를 가르킨다.
this 생성자를 사용하면 클래스내의 다른 생성자를 가르킨다.
----------------------------------------------
this/MainApp.cs
----------------------------------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace study_csharp
{
class Employee
{
private string Name;
private string Posotion;
public void SetName(string name)
{
this.Name = name;
}
public string GetName()
{
return Name;
}
public void SetPosition(string Position)
{
this.Posotion = Position;
}
public string GetPosition()
{
return Posotion;
}
}
class c07This
{
static void Main(string[] args)
{
Employee pooh = new Employee();
pooh.SetName("pohh");
pooh.SetPosition("Waiter");
Console.WriteLine("{0} {1}", pooh.GetName(),pooh.GetPosition());
Employee tigger = new Employee();
tigger.SetName("tigger");
tigger.SetPosition("Cleaner");
Console.WriteLine("{0} {1}", tigger.GetName(), tigger.GetPosition());
}
}
}
----------------------------------------------
thisConstructor/MainApp.cs
----------------------------------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace study_csharp
{
class MyClass
{
int a, b, c;
public MyClass()
{
this.a = 5425;
Console.WriteLine("MyClass()");
}
public MyClass(int b) : this()
{
this.b = b;
Console.WriteLine("Myclass({0})",b);
}
public MyClass(int b, int c) :this(b)
{
this.c = c;
Console.WriteLine("MyClass({0}. {1})", b, c);
}
public void PrintFields()
{
Console.WriteLine("a:{0}, b:{1}, c{2}", a, b, c);
}
}
class MainApp
{
static void Main(string[] args)
{
MyClass a = new MyClass();
a.PrintFields();
Console.WriteLine();
MyClass b = new MyClass(1);
b.PrintFields();
Console.WriteLine();
MyClass c = new MyClass(10, 20);
c.PrintFields();
}
}
}
'프로그래밍 > C#' 카테고리의 다른 글
C# 이벤트 (0) | 2017.06.14 |
---|---|
C# 네임스페이스 (0) | 2017.06.14 |
c# Exception 예외처리 (0) | 2017.06.14 |
[c#] 한국 원화 \ 표시하기. (1) | 2017.01.09 |
데이터 형식 범위 (0) | 2015.08.19 |
댓글