C#

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

1,902
목차
  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 - (이프 조건문)
1/3
목록
  • 채팅방
  • 필독
1. 채팅창 헤드에서 접속자 확인 2. 닉네임 클릭해 1:1 채팅 가능 3. 닉네임 클릭해 귓속말 가능 4. 닉네임 클릭해 호출하기 가능 5. 우하단 클릭해 환경 설정 가능 6. 의뢰글 작성 후 의뢰 상담 가능 7. 질문글 작성 후 질문 상담 가능 8. 채팅방에 개인정보 입력 금지 9. 채팅방에 광고 욕설 비방 금지
 홈  PC버전 로그인 일본어
웹디자인언어
서버관리언어
고급코딩언어
그누보드
제작의뢰
Q&A
커뮤니티 2
웹유틸
회원센터
홈짱 PC버전 로그인