C#/์ด๊ฒƒ์ด C#์ด๋‹ค

39. ํ”„๋กœํผํ‹ฐ ๊ธฐ๋ณธํ˜• ์„ ์–ธ

Rainbow๐ŸŒˆCoder 2022. 2. 22. 17:57
728x90

 

https://youtu.be/QXakJJHkz8k ์ฐธ ๊ณ  ์˜ ์ƒ 

 

๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด๋ผ๋ฉด '์€๋‹‰์„ฑ'์„ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.

๊ฐ์ฒด์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์˜๋„ํ•˜์ง€ ์•Š๊ฒŒ ์˜ค์—ผ๋˜๋Š” ๊ฒƒ์„ ๋ง‰์•„์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

C++์ด๋‚˜ Java์—์„œ๋Š” private๋‚˜ protected ์ ‘๊ทผ ํ•œ์ •์ž๋ฅผ ์ด์šฉํ•ด์„œ ํด๋ž˜์Šค ๋‚ด์˜ ํ•„๋“œ๋ฅผ ์™ธ๋ถ€์—์„œ ๋ณด์ด์ง€ ์•Š๊ฒŒ ๊ฐ์ถ”๊ณ ,

์ด ํ•„๋“œ์— ์ ‘๊ทผํ•˜๋Š” ๋ฉ”์†Œ๋“œ๋“ค์„ public์œผ๋กœ ๋”ฐ๋กœ ์ œ๊ณตํ•œ๋‹ค.

 

C# ํ”„๋กœ๊ทธ๋ž˜๋จธ๋„ ์ด ๋ฐฉ๋ฒ•์„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์„ ๋ฟ๋”๋Ÿฌ,

๋” ์šฐ์•„ํ•œ ์žฅ์น˜๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

๋ฐ”๋กœ 'ํ”„๋กœํผํ‹ฐ'์ด๋‹ค.

 

ํ”„๋กœํผํ‹ฐ๋ฅผ ์ด์šฉํ•˜๋ฉด ์€๋‹‰์„ฑ๊ณผ ํŽธ์˜์„ฑ, ๋‘ ๋งˆ๋ฆฌ ํ† ๋ผ๋ฅผ ๋‹ค ์žก์„ ์ˆ˜ ์žˆ๋‹ค.

์•„๋ž˜์™€ ๊ฐ™์€ ํ•„๋“œ๊ฐ€ ์žˆ์œผ๋ฉด

class MyClass
{
     private int myField;
}

Java์—์„œ๋Š” get/set ๋ฉ”์†Œ๋“œ๋ฅผ ์ด๋ ‡๊ฒŒ ์ž‘์„ฑํ•  ๊ฒƒ์ด๊ณ 

class MyClass
{
     private int myField;
     public int GetMyField(){return myField;}
     public void SetMyField(int NewValue){myField = NewValue;}
}

ํด๋ž˜์Šค์˜ ๊ฐ์ฒด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉํ•  ๊ฒƒ์ด๋‹ค.

MyClass obj = new MyClass();
obj.SetMyField(3);
Console.WriteLine(obj.GetMytField());

ํ•˜์ง€๋งŒ ๋‚˜๋Š” C#์„ ๋‹ค๋ฃจ๋ฏ€๋กœ Get/Set ๋ฉ”์†Œ๋“œ๋ณด๋‹จ ํ”„๋กœํผํ‹ฐ ^^

class ํด๋ž˜์Šค์ด๋ฆ„

{

     ๋ฐ์ดํ„ฐํ˜•์‹ ํ•„๋“œ์ด๋ฆ„;

     ์ ‘๊ทผํ•œ์ •์ž ๋ฐ์ดํ„ฐํ˜•์‹ ํ”„๋กœํผํ‹ฐ์ด๋ฆ„

     {

          get

          {

               return ํ•„๋“œ์ด๋ฆ„;

          }

 

          set

          {

               ํ•„๋“œ์ด๋ฆ„ = value;

          }

     }

}

value๋Š” ํ”„๋กœํผํ‹ฐ ๋ฐ์ดํ„ฐํ˜•์‹(ํ•„๋“œ์˜ ๋ฐ์ดํ„ฐํ˜•์‹๊ณผ ๋™์ผํ•ด์•ผํ•จ!!!)๊ณผ ๋ฐ์ดํ„ฐํ˜•์‹์ด ๋™์ผํ•œ... ํ˜•์„ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค!

<์ž๋ฐ”์™€ C# ๋น„๊ต>

์ž๋ฐ”

class MyClass
{
     private int myField;
     public int GetMyField(){return myField;}
     public void SetMyField(int NewValue){myField = NewValue;}
}

C# (๊ทธ์•ผ๋ง๋กœ ์šฐ์•„ํ•จ์˜ ๊ทน์น˜๋ฅผ ๋‹ฌ๋ฆฐ๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค-...(์ •๋ง?))

class ํด๋ž˜์Šค์ด๋ฆ„
{
     ๋ฐ์ดํ„ฐํ˜•์‹ ํ•„๋“œ์ด๋ฆ„;
     ์ ‘๊ทผํ•œ์ •์ž ๋ฐ์ดํ„ฐํ˜•์‹ ํ”„๋กœํผํ‹ฐ์ด๋ฆ„
     {
          get{return ํ•„๋“œ์ด๋ฆ„;}
          set{ํ•„๋“œ์ด๋ฆ„ = value;}
     }
}

<์ฝ๊ธฐ ์ „์šฉ :  ํ”„๋กœํผํ‹ฐ๋ฅผ ํ†ตํ•ด ํ•„๋“œ๊ฐ€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋Š” ์ƒํƒœ ,์ฆ‰ ์ฝ๊ธฐ ์ „์šฉ ํ”„๋กœํผํ‹ฐ๋ฅผ ๋งŒ๋“ค๊ณ  ์‹ถ๋‹ค๋ฉด

set ์ ‘๊ทผ์ž๋ฅผ ๊ตฌํ˜„ํ•˜์ง€ ์•Š์œผ๋ฉด ๋œ๋‹ค.>

get ์ ‘๊ทผ์ž๋Š” ํ•„๋“œ๋กœ๋ถ€ํ„ฐ ๊ฐ’์„ ์ฝ์–ด์˜ค๊ณ  set ์ ‘๊ทผ์ž๋Š” ํ•„๋“œ์— ๊ฐ’์„ ํ• ๋‹นํ•œ๋‹ค.

set ์ ‘๊ทผ์ž ์•ˆ์— ์žˆ๋Š” value ํ‚ค์›Œ๋“œ๋Š” ๊ทธ ๋ˆ„๊ตฌ๋„ ์„ ์–ธํ•œ ์ ์ด ์—†์ง€๋งŒ,

C# ์ปดํŒŒ์ผ๋Ÿฌ๋Š” set ์ ‘๊ทผ์ž์˜ ์•”๋ฌต์  ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๊ฐ„์ฃผํ•˜๋ฏ€๋กœ ์ „ํ˜€ ๋ฌธ์ œ ์‚ผ์ง€ ์•Š ๋Š” ๋‹ค ! 

 

์ฆ‰ java์—์„œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ์ฒ˜๋ฆฌํ–ˆ๋˜ ๋ถ€๋ถ„์ด

MyClass obj = new MyClass();
obj.SetMyField(3);
Console.WriteLine(obj.GetMytField());

C#์—์„œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ์ฒ˜๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.

MtClasss obj = new MyClass();
obj.MyField = 3;
Console.WriteLine(obj.MyField);

<์˜ˆ์ œ>

using System;

namespace Property
{
    class BirthdayInfo
    {
        private string name;
        private DateTime birthday;
        public string Name
        {
            get
            {
                return name;
            }
            set
            {
                name = value;
            }
        }

        public DateTime Birthday
        {
            get
            {
                return birthday;
            }
            set
            {
                birthday = value;
            }
        }

        public int Age
        {
            get
            {
                return new DateTime(DateTime.Now.Subtract(birthday).Ticks).Year;
            }
        }

    }

    class MainApp
    {
        static void Main(string[] args)
        {
            BirthdayInfo birth = new BirthdayInfo();
            birth.Name = "์„œ์ฃผํ˜„";
            birth.Birthday = new DateTime(1996,04,12);

            Console.WriteLine($"Name:{birth.Name}");
            Console.WriteLine($"Birthday:{birth.Birthday}");
            Console.WriteLine($"Birthday:{birth.Birthday.ToShortDateString()}");
            Console.WriteLine($"Age:{birth.Age}");
        }
    }
}

<์ถœ๋ ฅ ๊ฒฐ๊ณผ>

Name:์„œ์ฃผํ˜„
Birthday:1996-04-12 ์˜ค์ „ 12:00:00
Birthday:1996-04-12
Age:26

728x90