캡슐화
관련이 있는 변수와 메소드들을 클래스로 묶어 외부로부터 내부 멤버를 은닉하는 것을 캡슐화라고 한다.
숨겨야 할 변수, 메소드는 private 접근제한자로, 외부에 노출한 기능은 public 접근제한자를 사용한다.
접근제한자
private : 내부에서만 접근 가능
protected : 내부 OR 파생클래스에서 접근 가능
public : 외부에서도 접근 가능
internal : 동일한 어셈블리 내에서 접근 가능
internal protected : 동일 어셈블리 내에서 접근 가능, 다른 어셈블리의 경우 파생클래시인 경우에 접근
default 접근제한자
class : internal
class내부 멤버 : private
접근자 메서드 & 설정자 메서드 ( getter, setter)
class Program
{
static void Main(string [] args)
{
Album album = new Product.Album();
album.SetAlbum("아이들", "I am");
album.SetAlbum("아이들", "I made");
album.SetAlbum("아이들", "Uh-Oh");
Console.WriteLine(album.GetAlbum() + "개");
}
}
class Album
{
private int numb;
private string singer;
private string album_name;
public int GetAlbum()
{
return numb;
}
public void SetAlbum(string singer, string album_name)
{
numb += 1;
this.singer = singer;
this.album_name = album_name;
}
}
프로퍼티
setter, getter를 편리하게 사용할 수 있도록하는 문법
using System;
using Product;
namespace Example
{
class Program
{
static void Main(string [] args)
{
Album album = new Album();
album.Numb = 0;
album.Singer = "아이들";
album.Album_name = "Uh-Oh";
album.Numb = 0;
album.Singer = "아이들";
album.Album_name = "I am";
Console.WriteLine(album.Num+"개");
}
}
}
namespace Product {
class Album
{
private int numb;
private string singer;
private string album_name;
public int Numb {
get {
return numb;
}
set
{
numb += 1;
}
}
public string Singer
{
get
{
return singer;
}
set
{
singer = value;
}
}
public string Album_name
{
get
{
return album_name;
}
set
{
album_name = value;
}
}
}
}
'프로그래밍 > C#' 카테고리의 다른 글
as, is 연산자 (0) | 2020.03.20 |
---|---|
객체지향 - 3 (0) | 2020.03.20 |
Main 함수를 알아보자 (0) | 2020.03.20 |
객체지향-1 (0) | 2020.03.19 |
break, continue, goto (0) | 2020.03.19 |
WRITTEN BY
,