산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> C 언어

C# 접근 수정자(Access Modifiers) 완벽 이해: 실전 예제와 함께

C#에서 접근 수정자란?

접근 수정자(Access Modifiers)는 타입과 타입 멤버의 가시성을 제어하는 키워드로, C# 캡슐화의 초석입니다. 어떤 코드가 클래스, 속성, 메서드를 참조할 수 있는지 결정하여 의도한 프로그램 부분만 내부 구현 세부사항과 상호작용할 수 있게 합니다.

C#에는 여섯 가지 접근 수정자가 있습니다:

이 튜토리얼에서 배울 내용:

Private 접근 수정자

멤버를 private으로 표시하면 해당 클래스 내부에서만 사용이 제한됩니다. 동일한 어셈블리 내의 다른 클래스를 포함한 외부 코드는 private 멤버를 참조할 수 없습니다.

Private 접근 수정자 예제

Tutorial.cs의 SetTutorial을 수정하여 이 규칙을 설명해 보겠습니다. public 키워드를 private로 변경합니다:

C# 접근 수정자(Access Modifiers) 완벽 이해: 실전 예제와 함께

이제 Program.cs로 전환합니다. 컴파일러가 SetTutorial 호출에 빨간 물결선을 표시하며 이 위치에서 메서드에 접근할 수 없음을 알립니다.

C# 접근 수정자(Access Modifiers) 완벽 이해: 실전 예제와 함께

Public 접근 수정자

Public 멤버는 포함 타입을 참조할 수 있는 모든 코드에서 볼 수 있습니다. 접근 수정자를 지정하지 않은 멤버의 기본값입니다.

Public 접근 수정자 예제

C# 접근 수정자(Access Modifiers) 완벽 이해: 실전 예제와 함께

SetTutorial이 public으로 선언되어 Program.cs에서 컴파일 오류 없이 호출할 수 있습니다.

Protected 접근 수정자

protected 멤버는 자신의 클래스와 파생 클래스에서만 접근 가능합니다. 이 접근 수준은 재사용 가능한 기본 클래스를 만들면서 내부 구현을 보호하기에 이상적입니다.

Internal 접근 수정자

Internal 멤버는 동일한 어셈블리 내의 모든 코드에서 볼 수 있지만 다른 어셈블리의 코드에서는 볼 수 없습니다. 라이브러리 소비자에게만 노출되어야 하는 라이브러리 구성 요소에 유용합니다.

C# 생성자(Constructors)

생성자는 클래스의 새 인스턴스를 초기화합니다. 클래스와 이름이 같고 반환 타입이 없으며 new 사용 시 자동으로 호출됩니다.

  1. 생성자의 기본 접근은 달리 지정하지 않는 한 public입니다.
  2. 생성자는 반환 타입을 선언할 수 없습니다.

C# 생성자 예제

Tutorial 객체 생성 시 TutorialID와 TutorialName에 기본값을 설정하는 생성자를 시연합니다.

1단계) Tutorial.cs에 생성자 추가:

C# 접근 수정자(Access Modifiers) 완벽 이해: 실전 예제와 함께

코드 설명

  1. Tutorial이라는 이름의 메서드는 생성자로 취급되어 인스턴스 생성 시 자동 실행됩니다.
  2. 생성자는 TutorialID에 0, TutorialName에 "Default"를 할당하여 일관된 초기 상태를 보장합니다.

Program.cs에서 SetTutorial 호출을 제거하여 생성자 동작에 집중합니다:

C# 접근 수정자(Access Modifiers) 완벽 이해: 실전 예제와 함께

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
namespace DemoApplication { 
    class Tutorial { 
        public int TutorialID; 
        public string TutorialName; 
        public Tutorial() { 
            TutorialID = 0; 
            TutorialName = "Default"; 
        } 
        public void SetTutorial(int pID, string pName) { 
            TutorialID = pID; 
            TutorialName = pName; 
        } 
        public string GetTutorial() { 
            return TutorialName; 
        } 
        static void Main(string[] args) { 
            Tutorial pTutor = new Tutorial(); 
            Console.WriteLine(pTutor.GetTutorial()); 
            Console.ReadKey(); 
        } 
    } 
}

코드 설명

  1. new 키워드로 Tutorial 인스턴스 생성
  2. GetTutorial 메서드로 기본 TutorialName 조회 후 Console.WriteLine으로 표시

실행 시 콘솔에 다음이 표시됩니다:

출력:

C# 접근 수정자(Access Modifiers) 완벽 이해: 실전 예제와 함께

출력은 생성자가 실행되어 TutorialName을 "Default"로 초기화했음을 확인시켜줍니다.

참고: "Default" 값은 외부 코드가 아닌 생성자에서 온 것입니다.

요약

C 언어

  1. C++ do-while 루프: 문법, 실전 예제, 중첩 루프
  2. C++ 포인터 완전 정복: 개념, 예제, 실전 활용
  3. C++ 연산자 오버로딩 실전 가이드: 문법, 접근법, 코드 예제
  4. C++ 함수 완전 정복: 실전 코드 예제로 이해하기
  5. C# 컬렉션(Collections) 마스터하기: 실전 예제로 배우는 유연한 데이터 관리
  6. Python str.count() 마스터하기: 문자 및 부분문자열 개수 세기 예제
  7. 파이썬 round() 함수 완전 정복: 실용 예제로 이해하기
  8. 파이썬 map() 함수 마스터하기: 문법, 예제, 모범 사례
  9. 파이썬 timeit()으로 실행 시간 측정하기: 실용 예제
  10. 파이썬 list.count() 전문가 가이드: 실전 예제로 배우는 요소 개수 세기