κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ° 3λ νΉμ± : μλμ±, μμμ±, λ€νμ±
κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°μλ ν΄λμ€μ μ¬μ©μμκ² νμν μ΅μμ κΈ°λ₯λ§ λ ΈμΆνκ³ λ΄λΆλ₯Ό κ°μΆ κ²μ μꡬνλ€.
μ΄κ²μ μλμ±μ΄λΌκ³ νλ€.
ν΄λμ€μ μ μΈλμ΄ μλ νλμ λ©μλ μ€ μ΄λ€ κ²λ€μ μ¬μ©μμκ² λ ΈμΆν κ²μ΄ μλκ° νλ©΄
μ λλ‘ λ ΈμΆμν€μ§ λ§μμΌ νλ κ²λ€λ μλ€.
μ κ·Ό νμ μλ κ°μΆκ³ μΆμ κ²μ κ°μΆκ³ , 보μ¬μ£Όκ³ μΆμ κ²μ 보μ¬μ€ μ μλλ‘ μ½λλ₯Ό μμνλ©°
νλ, λ©μλλ₯Ό λΉλ‘―ν΄ νλ‘νΌν° λ± λͺ¨λ μμμ λν΄ μ¬μ©ν μ μλ€.
C#μμ μ 곡νλ μ κ·Ό νμ μλ λͺ¨λ μ¬μ―κ°μ§λ‘, λ€μκ³Ό κ°λ€.
μ κ·Ό νμ μ | μ€λͺ |
public | ν΄λμ€ λ΄λΆ/μΈλΆ λͺ¨λ κ³³μμ μ κ·Όν μ μλ€. |
protected | ν΄λμ€μ μΈλΆμμλ μ κ·Όν μ μμ§λ§, νμ ν΄λμ€μμλ μ κ·Όμ΄ κ°λ₯νλ€. |
private | ν΄λμ€μ λ΄λΆμμλ§ μ κ·Όν μ μλ€. νμ ν΄λμ€μμλ μ κ·Όμ΄ λΆκ°λ₯νλ€. |
internal | κ°μ μ΄μ λΈλ¦¬μ μλ μ½λμμλ§ publicμΌλ‘ μ κ·Όν μ μλ€. λ€λ₯Έ μ΄μ λΈλ¦¬μ μλ μ½λμμλ privateμ κ°μ μμ€μ μ κ·Όμ±μ κ°μ§λ€. |
protected internal | κ°μ μ΄μ λΈλ¦¬μ μλ μ½λμμλ§ protectedλ‘ μ κ·Όν μ μλ€. λ€λ₯Έ μ΄μ λΈλ¦¬μ μλ μ½λμμλ privateμ κ°μ μμ€μ μ κ·Όμ±μ κ°μ§λ€. |
private protected(μ΄κ°λ ₯) | κ°μ μ΄μ λΈλ¦¬μ μλ ν΄λμ€μμ μμλ°μ ν΄λμ€ λ΄λΆμμλ§ μ κ·Όμ΄ κ°λ₯νλ€. |
μ€μν¬μΈνΈ : μ κ·Ό νμ μλ‘ μμνμ§ μμ ν΄λμ€μ λ©€λ²λ 무쑰건 privateλ‘ μ κ·Ό μμ€μ΄ μλ μ§μ λλ€.
ν΄λμ€ λ΄μ λ©€λ²λ μΌλ¨ κ°μΆκ³ λμ€μ 곡κ°ν μ§λ₯Ό κ²°μ νλ κ²μ΄ μμμ΄κΈ° λλ¬Έμ΄λ€.
using System;
using System.Collections;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static System.Console;
namespace UsingOut
{
class WaterHeater
{
protected int temperature;
public void SetTemperature(int temperature)//SetTemperature() λ©μλλ -5~42 μ¬μ΄μ κ°λ§ λ°μλ€μ΄κ³ , μ΄ λ²μλ₯Ό λ²μ΄λ κ°μ λν΄μλ μμΈλ₯Ό λ°μμν¨λ€.
{
if(temperature < -5 || temperature > 42)
{
throw new Exception("Out of temperature range");
}
this.temperature = temperature;
}
internal void TurnOnWater()
{
WriteLine($"Turn on water : {temperature}");
}
}
class MainApp
{
static void Main(string[] args)
{
try
{
WaterHeater heater = new WaterHeater();
heater.SetTemperature(20);
heater.TurnOnWater();
heater.SetTemperature(-2);
heater.TurnOnWater();
heater.SetTemperature(50); //μμΈκ° λ°μνμ¬ λ€μ νμ μ€νλμ§ μκ³ κ·Έ λ€μ νμ catch λΈλ‘μΌλ‘ μ€ν μμΉκ° μ΄λνλ€.
heater.TurnOnWater();
}
catch(Exception e)
{
WriteLine(e.Message);
}
}
}
}
<μΆλ ₯ κ²°κ³Ό>
Turn on water : 20
Turn on water : -2
Out of temperature range
<μ°μ΅>
using System;
using System.Collections;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static System.Console;
namespace UsingOut
{
class HeatedWater
{
protected int temperature;
public void SetTemperature(int temperature)
{
if (temperature < 5 || temperature > 100)
throw new Exception("Out of range!!!");
this.temperature = temperature;
}
internal void PrintTemperature()
{
WriteLine($"λ¬Όμ μ¨λλ... {temperature}λ μ΄λ€.");
}
}
class MainApp
{
static void Main(string[] args)
{
try
{
HeatedWater oneWater = new HeatedWater();
oneWater.SetTemperature(50);
oneWater.PrintTemperature();
HeatedWater twoWater = new HeatedWater();
twoWater.SetTemperature(-5);
twoWater.PrintTemperature();
HeatedWater threeWater = new HeatedWater();
threeWater.SetTemperature(105);
threeWater.PrintTemperature();
HeatedWater fourWater = new HeatedWater();
fourWater.SetTemperature(55);
fourWater.PrintTemperature();
}
catch(Exception eeee)
{
WriteLine(eeee.Message);
}
}
}
}
<μ°μ΅ μΆλ ₯κ²°κ³Ό>
λ¬Όμ μ¨λλ... 50λ μ΄λ€.
Out of range!!!
<μ°μ΅ 2>
using System;
using System.Collections;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static System.Console;
namespace UsingOut
{
class HeatedWater
{
protected int temperature;
public void SetTemperature(int temperature)
{
if (temperature < 5 || temperature > 100)
throw new Exception("Out of range!!!");
this.temperature = temperature;
}
internal void PrintTemperature()
{
WriteLine($"λ¬Όμ μ¨λλ... {temperature}λ μ΄λ€.");
}
}
class MainApp
{
static void Main(string[] args)
{
try
{
HeatedWater oneWater = new HeatedWater();
oneWater.SetTemperature(50);
oneWater.PrintTemperature();
HeatedWater fourWater = new HeatedWater();
fourWater.SetTemperature(55);
fourWater.PrintTemperature();
}
catch(Exception eeee)
{
WriteLine(eeee.Message);
}
}
}
}
<μ°μ΅ 2 μΆλ ₯κ²°κ³Ό>
λ¬Όμ μ¨λλ... 50λ μ΄λ€.
λ¬Όμ μ¨λλ... 55λ μ΄λ€.
<μ°μ΅ 3>
using System;
using System.Collections;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static System.Console;
namespace UsingOut
{
class HeatedWater
{
protected int temperature;
public void SetTemperature(int temperature)
{
if (temperature < 5 || temperature > 100)
throw new Exception("Out of range!!!");
this.temperature = temperature;
}
internal void PrintTemperature()
{
WriteLine($"λ¬Όμ μ¨λλ... {temperature}λ μ΄λ€.");
}
}
class MainApp
{
static void Main(string[] args)
{
try
{
HeatedWater oneWater = new HeatedWater();
oneWater.SetTemperature(50);
oneWater.PrintTemperature();
oneWater.SetTemperature(-5);
}
catch(Exception eeee)
{
WriteLine(eeee.Message);
}
}
}
}
<μ°μ΅ 3 μΆλ ₯ κ²°κ³Ό>
λ¬Όμ μ¨λλ... 50λ μ΄λ€.
Out of range!!!
'C# > μ΄κ²μ΄ C#μ΄λ€' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[μ€κ°μ κ²] μ κ·Όνμ μ internalμμ κ°μ μ΄μ λΈλ¦¬λ (0) | 2022.02.11 |
---|---|
23. μμ, μ½λ μ¬νμ©, κΈ°λ° ν΄λμ€, νμ ν΄λμ€, base, sealed (0) | 2022.02.11 |
21. this, this() μμ±μ (0) | 2022.02.10 |
20. μμ 볡μ¬(Shallow Copy)μ κΉμ 볡μ¬(Deep Copy) (0) | 2022.02.10 |
19. [static]μ μ νλμ μ μ λ©μλ (0) | 2022.02.10 |