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;
}
}
}
<์๋ฐ์ 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
'C# > ์ด๊ฒ์ด C#์ด๋ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
41. ํ๋กํผํฐ์ ์์ฑ์ (0) | 2022.02.22 |
---|---|
40. ์๋ ๊ตฌํ ํ๋กํผํฐ (0) | 2022.02.22 |
36. ์ธํฐํ์ด์ค์ ๊ธฐ๋ณธ ๊ตฌํ ๋ฉ์๋ (0) | 2022.02.22 |
38. ์ธํฐํ์ด์ค ์์ 1, 2 ๋ณต์ต (0) | 2022.02.22 |
37. ์ถ์ํด๋์ค : ์ธํฐํ์ด์ค์ ํด๋์ค ์ฌ์ด (0) | 2022.02.22 |