객체지향 -2

프로그래밍/C# 2020. 3. 20. 15:39

캡슐화

   관련이 있는 변수와 메소드들을 클래스로 묶어 외부로부터 내부 멤버를 은닉하는 것을 캡슐화라고 한다.

   숨겨야 할 변수, 메소드는 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
beautifulhill

,