• 회원가입
  • 로그인
  • 구글아이디로 로그인

[class] C# - Access Modifiers (접근 수정자)

1,892  
목차
  1. Access Modifiers (접근 수정자)
  2. Private 수정자
  3. Public 수정자
  4. 접근 수정자 사용 이유

 

Access Modifiers (접근 수정자)

[개념]

 

1. 

앞서 많이 봐온, public 키워드 같은 걸 말함.

(예) public string host; 

 

2.

'클래스, 속성, 메서드'등에 대한 '접근 수준 / 가시성' 결정에 사용.

 


[종류]

 

public

모든 클래스에서 코드에 접근 가능.


private

같은 클래스 내에서만 코드에 접근 가능. (기본값)


protected

같은 클래스 또는 그 상속된 클래스 내에서만 코드에 접근 가능.


internal

자체 어셈블리 내에서만 코드에 접근 가능.

 


PS1. 

그외, 아래 2개 조합 있음. 

protected internal 

private protected 

 

PS2. 

private, public 수정자에 위주로 설명 예정.

 

 

Private 수정자

 

같은 클래스 내에서만 코드에 접근 가능.

 


[예제] 같은 클래스에서 접근 시도 시, 접근 가능.

 

using System;

namespace Homzzang

{

  class Hz

  {

    private string host = "Homzzang.com";


    static void Main(string[] args)

    {

      Hz my = new Hz();

      Console.WriteLine(my.host);

    }

  }

}


결과값: Homzzang.com


[예제] 다른 클래스에서 접근 시도 시, 접근 실패.

 

1. Hz.cs

 

using System;

namespace Homzzang

{

  class Hz

  {

    private string host = "Homzzang.com";

  }

}

 

2. Index.cs

 

using System;

namespace Homzzang

{

  class Index

  {

    static void Main(string[] args)

    {

      Hz my = new Hz();

      Console.WriteLine(my.host);

    }

  }

}


결과값: 에러 발생.

'Hz.host' is inaccessible due to its protection level

The field 'Hz.host' is assigned but its value is never used 

 

Public 수정자

 

모든 클래스에서 코드에 접근 가능.

 


[예제] 어디서든 접근 가능.

 

1. Hz.cs

 

using System;

namespace Homzzang

{

  class Hz

  {

    public string host = "Homzzang.com";

  }

}

 

2. Index.cs

 

using System;

namespace Homzzang

{

  class Index

  {

    static void Main(string[] args)

    {

      Hz my = new Hz();

      Console.WriteLine(my.host);

    }

  }

}


결과값: Homzzang.com

 

접근 수정자 사용 이유

 

1.

클래스 멤버의 가시성 제어해,

각 개별 클래스 및 클래스 멤버의 「보안 = 접근 수준 」결정.

 

2.

private 수정자로 선언 시, 「캡슐화」에 도움.

캡슐화 : "민감한" 데이터를 사용자에게 비노출.

 


PS.

접근 수정자 미지정 시, 클래스의 모든 멤버는 기본적으로 private임.

 

class Hz

{

  string host;  // private 상태.

  int open;   // private 상태.

}

 



분류 제목
basic C# - Home (입문) - 추천 링크
basic C# - Intro (소개) - 용도・특징
basic C# - Start (시작) - Visual Studio Community 설치/실행/세팅
basic C# - Syntax (구문)
basic C# - Output (출력)
basic C# - New Lines (줄바꿈)
basic C# - Comment (주석)
basic C# - Variable (변수)
basic C# - User Input (사용자 입력)
basic C# - Data Type (데이터 타입) - 자료형 (종류 + 변환)
basic C# - Operator (연산자)
basic C# - String (문자열)
basic C# - Math (수학)
basic C# - Boolean (참거짓)
basic C# - If ... Else - (이프 조건문)
basic C# - Switch (스위치 조건문)
basic C# - While Loop (와일 반복문)
basic C# - For Loop (포 반복문)
basic C# - Break/Continue (브레이크/컨티뉴) 키워드 - 반복문 빠져나가기 / 특정 조건 건너띄기
basic C# - Arrays (배열)
1/2
목록
찾아주셔서 감사합니다. Since 2012