접근 제한자
- 클래스, 메서드, 변수에 대한 접근 범위를 제한하는 키워드
< public vs private >
1. private 접근제한자
=> 자신의 클래스 내에서만 접근이 가능하고, 다른 외부 클래스에서는 접근이 불가능하도록 제한
(주로, 멤버변수에 private 접근제한자를 사용하여 값을 변경하지 못하도록 제어)
2. public 접근제한자
=> 모든 클래스에서 접근이 가능(접근 제한이 없음)
(주로, 멤버메서드에 public 접근제한자를 사용하여 누구나 접근하도록 제어)
Getter/Setter 정의
클래스 내에서 멤버변수는 주로 private 접근제한자를 통해 외부에서 접근을 금지시킴
=> 따라서, 별도의 메서드(Getter/Setter)를 정의하여 멤버변수 값을 대신 접근하도록 한다.
모든 Getter/Setter 메서드는 접근제한자를 public 으로 지정(누구나 접근할 수 있도록)
1. Getter : 클래스 내부의 멤버변수 값을 외부로 대신 리턴하는 역할의 메서드
=> 메서드명은 주로 getXXX() 으로 지정(XXX : 리턴할 데이터의 변수명)
=> 매개변수는 없고, 리턴값만 있는 메서드로 정의
2. Setter : 외부로부터 데이터를 전달받아 클래스 내부의 멤버변수에 저장하는 역할의 메서드
=> 메서드명은 주로 setXXX() 으로 지정(XXX : 저장할 데이터의 변수명)
=> 매개변수만 있고, 리턴값은 없는 메서드로 정의
ex)
using System;
namespace Test
{
public class Program
{
static void Main(string[] args)
{
privateData d1 = new privateData();
d1.data = 10;
Console.WriteLine("public data : " + d1.data);
//d1.privatedata 접근 불가
d1.setData(20); //setter을 사용하여 private 함수값을 저장
Console.WriteLine("privateData:" + d1.getData());
}
}
public class privateData
{
public int data;
private int privatedata;
// 1. Getter 정의 : 매개변수는 없고, 리턴값(int privatedata)만 있는 메서드
public int getData()
{ // 리턴값이 있으므로 리턴타입 int, 매개변수 없으므로 getData()
return privatedata;
}
// 2. Setter 정의 : 매개변수(입력받을 데이터를 저장할 변수)만 있고, 리턴값은 없는 메서드
public void setData(int data)
{
privatedata = data;
}
}
}
<결과>
반응형
'C#' 카테고리의 다른 글
[C#] var 암시적 데이터형 (0) | 2022.01.28 |
---|---|
[C#] 변수 뒤에 물음표(?)는 Nullable Type (0) | 2022.01.27 |
C# 기초 - 레퍼런스, 생성자 this (0) | 2021.05.15 |
C# 메서드 사용(3) - 메서드 오버로딩(Method Overloading) (0) | 2021.02.21 |
C# 메서드 사용(2) - 매개변수전달:선언 기본형 변수, 참조형 변수 (0) | 2021.02.17 |
댓글