17. C#μ ν΄λμ€
ν΄λμ€λ κ°μ²΄λ₯Ό λ§λ€κΈ° μν μ²μ¬μ§
(μ¦, μ€κ³λ)
| ν΄λμ€(μ€κ³λ) | κ°μ²΄(μ€μ²΄) |
| νμ λλ μ€κ³λ | λ©λͺ¨λ¦¬μ μ μ¬λ μ€μ²΄ |
| κ° νμ/ν΄λμ€ λ³λ‘ νλλ§ μ‘΄μ¬ | μ΄λ‘ μ μΌλ‘λ 무νλλ‘ μμ± κ°λ₯νλ©°, λ©λͺ¨λ¦¬λ₯Ό μ°¨μ§ν¨ |
| κ°μ²΄κ° μ΄λ€ λ°μ΄ν° νλͺ©μ κ°μ§λμ§ μ μ | μ μΈλ λ°μ΄ν° νλͺ©μ μ€μ λ°μ΄ν° μ μ₯ |
| μ΄λ€ λ©μλλ₯Ό κ°μ§μ§λ₯Ό μ μ | μ μλμ΄ μλ λ©μλλ₯Ό μ€ν |
κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°μ OOPλΌκ³ λ νλλ°,
μ½λ λ΄μ λͺ¨λ κ²μ κ°μ²΄λ‘ νννκ³ μ νλ νλ‘κ·Έλλ° ν¨λ¬λ€μμ λ»νλ€.
κ°μ²΄λ μΈμμ λͺ¨λ κ²μ μ§μΉνλ λ¨μ΄μ΄λ€.
μ¬λλ κ°μ²΄μ΄κ³ μ°νλ κ°μ²΄μ΄κ³ λͺ¨λ κ²μ΄ κ°μ²΄μ΄λ€.
νλ‘κ·Έλλ¨Έλ μΆμμ£Όμ μμ κ°κ° λ λ§λ₯
κ°μ²΄μ μ£Όμ νΉμ§λ§ λ½μλ΄λ μ΄λ₯Έλ° μΆμνλ₯Ό νκ² λλ€.
κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ―Έμ μμνκΈ° μν΄μλ κ°μ²΄κ° κ°μ§ μμ±κ³Ό κΈ°λ₯μ 골λΌλΌ μ μλ λμ΄ νμνλ€.
μμ±μ λ°μ΄ν°λ‘, κΈ°λ₯μ λ©μλλ‘ νννλ©΄ λλ€.
κ°μ²΄λ λ°μ΄ν°μ λ©μλλ‘ μ΄λ£¨μ΄μ Έμλ€.
ν΄λμ€λ κ°μ²΄λ₯Ό λ§λ€κΈ° μν μ²μ¬μ§μ΄λ€.
ν΄λμ€κ° μλμ°¨ μ€κ³λλΌλ©΄, κ°μ²΄λ μμ°λ μ€μ μλμ°¨λΌκ³ ν μ μλ€.
μ€κ²λλ μλμ°¨κ° μ΄λ€ μμ±κ³Ό μ΄λ€ κΈ°λ₯μ κ°μ ΈμΌ νλμ§λ₯Ό μ§μ νκ³ ,
μμ± μ€μ λ³κ²½ κ°λ₯ν κ²κ³Ό λ³κ²½ λΆκ°λ₯ν κ²μ κ²°μ νλ€.
ν΄λμ€λ κ°μ²΄κ° κ°μ§κ² λ μμ±κ³Ό κΈ°λ₯μ μ μνμ§λ§ μ€μ²΄λ₯Ό κ°μ§μ§ μλλ€. ν΄λμ€λ₯Ό μ΄μ©ν΄ λ§λ κ°μ²΄κ° μ€μ²΄λ₯Ό κ°μ§λ€. (λμΌ ν΄λμ€λ‘ κ°μ²΄ 3κ°λ₯Ό λ§λ€λ©΄, μ΄ μΈ κ°μ²΄λ μλ‘κ° κ΅¬λΆλλ κ³ μ ν μ€μ²΄λ₯Ό κ°μ§λ©° μ λ§λ€ λ©λͺ¨λ¦¬ 곡κ°μ μ°¨μ§ νλ€.)
string a = "123";
string b = "Hello";
μ μ½λμμ stringμ C#μμ μ΄λ―Έ μ μλ λ¬Έμμ΄μ λ€λ£¨λ ν΄λμ€μ΄κ³
aμ bλ κ°μ²΄μ΄λ€.
stringμ λ¬Έμμ΄μ λ΄λ κ°μ²΄λ₯Ό μν μ²μ¬μ§μ΄κ³ ,
aμ bλ μ€μ λ‘ λ°μ΄ν°λ₯Ό λ΄μ μ μλ μ€μ κ°μ²΄μ΄λ€.
aμ bλ₯Ό μΌμ»¬μ΄μ stringμ μ€μ²΄λΌκ³ νλλ°,
μΌλ°μ μΌλ‘ μΈμ€ν΄μ€λΌκ³ λΆλ₯Έλ€. (κ·Έλμ κ°μ²΄λ₯Ό μΈμ€ν΄μ€λΌκ³ λΆλ₯΄κΈ°λ νλ€.)
- κ°μ²΄μμ λ½μλΈ μμ±κ³Ό κΈ°λ₯μ ν΄λμ€ μμ λ³μμ λ©μλλ‘ ννλλ€. μ΄λ° μμΌλ‘ νλ‘κ·Έλλ°νλ κ²μ΄ λ°λ‘ κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°μ΄λ€.
<ν΄λμ€λ λ³΅ν© λ°μ΄ν° νμμ΄λ€>
ν΄λμ€λ μ¬λ¬ κ΄μ μμ κ·Έ μλ―Έλ₯Ό μ΄ν΄ν΄μΌ νλ€.
κ°μ²΄ μ§ν₯μ μΈ κ΄μ μμ 보면 ν΄λμ€λ κ°μ²΄λ₯Ό μν μ²μ¬μ§μΈ λμμ
λ°μ΄ν°μ λ©μλλ₯Ό λ¬Άλ μ§ν©μ΄λ€.
μ½λμμ 보λ ν΄λμ€λ λ νλμ λ°μ΄ν° νμμ΄λ€.
(κΈ°λ³Έ λ°μ΄ν° νμμ μ‘°ν©ν΄μ λ§λλ λ³΅ν© λ°μ΄ν° νμ)
<ν΄λμ€μ μ μΈκ³Ό κ°μ²΄μ μμ±>
ν΄λμ€λ λ€μκ³Ό κ°μ΄ class ν€μλλ₯Ό μ΄μ©ν΄μ μ μΈνλ€.
class ν΄λμ€ μ΄λ¦
{
//λ°μ΄ν°μ λ©μλ
}
<κ³ μμ΄ μΆμν>
class Cat
{
private string name; //ν΄λμ€ μμ μ μΈλ λ³μ : νλ
private string color; //ν΄λμ€ μμ μ μΈλ λ³μ : νλ
public void Meow() //λ©μλ
{
WriteLine($"{name} : μΌμΉ");
}
}
μ μ½λμ Cat ν΄λμ€μ μ μΈλ nameκ³Ό colorμ²λΌ ν΄λμ€ μμ μ μΈλ λ³μλ€μ μΌμ»¬μ΄ 'νλ'λΌκ³ νλ€.
κ·Έλ¦¬κ³ νλμ λ©μλλ₯Ό λΉλ‘―νμ¬ νλ‘νΌν°, μ΄λ²€νΈ λ± ν΄λμ€ λ΄μ μ μΈλλ μμλ€μ μΌμ»¬μ΄ λ©€λ²λΌκ³ νλ€.
ν΄λμ€λ μ²μ¬μ§μ΄μ§ μ€μ²΄(μΈμ€ν΄μ€)κ° μλλ€.
catμ μΈμ€ν΄μ€ λ λ§λ¦¬λ₯Ό λ§λ€λ©΄ λ€μκ³Ό κ°λ€.
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 Cat
{
private string name; //ν΄λμ€ μμ μ μΈλ λ³μ : νλ
private string color; //ν΄λμ€ μμ μ μΈλ λ³μ : νλ
public void SetName(string newName)
{
name = newName;
}
public string GetName()
{
return name;
}
public void SetColor(string newColor)
{
color = newColor;
}
public string GetColor()
{
return color;
}
public void Meow() //λ©μλ
{
WriteLine($"{color} κ³ μμ΄ {name}κ° μΌμΉ!");
}
}
class MainApp
{
static void Main(string[] args)
{
Cat kitty = new Cat(); //kitty κ°μ²΄ μμ±
kitty.SetColor("νμμ");
kitty.SetName("ν€ν°");
kitty.Meow();
WriteLine($"{kitty.GetName()}μ μκΉμ {kitty.GetColor()}μ΄λλλ€.");
Cat nero = new Cat(); //nero κ°μ²΄ μμ±
nero.SetColor("κ²μμ");
nero.SetName("λ€λ‘");
nero.Meow();
WriteLine($"{nero.GetName()}μ μκΉμ {nero.GetColor()}μ΄λλλ€.");
}
}
}
<μΆλ ₯ κ²°κ³Ό>
νμμ κ³ μμ΄ ν€ν°κ° μΌμΉ!
ν€ν°μ μκΉμ νμμμ΄λλλ€.
κ²μμ κ³ μμ΄ λ€λ‘κ° μΌμΉ!
λ€λ‘μ μκΉμ κ²μμμ΄λλλ€.
Cat kitty = new Cat();
μ΄ λ¬Έμ₯ κ°μ₯ λμ μλ Cat()μ μμ±μλΌκ³ νλ νΉλ³ν λ©μλμ΄λ€.
μμ±μλ κ°μ²΄λ₯Ό μμ±νλ μν μ νλ€. ν΄λμ€μ μ΄λ¦κ³Ό λμΌν μ΄λ¦μ κ°μ§λ€.
Cat()μμ new ν€μλλ μμ±μλ₯Ό νΈμΆν΄μ κ°μ²΄λ₯Ό μμ±νλ λ° μ¬μ©νλ μ°μ°μμ΄λ€.
(new μ°μ°μμ μμ±μλ λ°λκ³Ό μ€ κ°μ μ‘΄μ¬λΌκ³ ν μ μλ€.)
λͺ¨λ ν΄λμ€λ λ³΅ν© λ°μ΄ν° νμμ΄λ€.
κ·Έλ¦¬κ³ λ³΅ν© λ°μ΄ν° νμμ μ°Έμ‘° νμμ΄λ€.
Cat neko; //nekoλ³μκ° μ μΈλμμ§λ§ μ¬μ©λμ§ μμμ΅λλ€!
μμ μ μΈλ¬Έμμ nekoλ nullμ κ°μ§λ€.
neko μ체μ λ©λͺ¨λ¦¬κ° ν λΉλλ κ²μ΄ μλκ³
nekoλ μ°Έμ‘°(κ·Έλμ neko μ κ°μ λμ νλ©΄ μλ³Έμ΄ λ°λλ κ²μ΄λ€.)λ‘μ¨ κ°μ²΄κ° μλ κ³³μ κ°λ¦¬ν¬ λΏμ΄λ€.
(λ³΅ν© λ°μ΄ν° νμμ μ°Έμ‘° νμμ΄λ€. ν΄λμ€λ 볡ν©λ°μ΄ν° νμμ΄λ€. κ·Έλ¬λ―λ‘ ν΄λμ€λ μ°Έμ‘°νμμ΄λ€.)
Cat kitty = new Cat();
κ·Έλμ new μ°μ°μμ μμ±μκ° νμν κ²μ΄λ€.
new μ°μ°μμ μμ±μλ₯Ό μ΄μ©ν΄μ
νμ κ°μ²΄λ₯Ό μμ±νκ³ ,
kitty(μ΄κ±΄ κ·Έλ₯ λ³μ=ν΄λμ€ λ³μ)λ μμ±μκ° νμ μμ±ν κ°μ²΄λ₯Ό κ°λ¦¬ν€λ κ²μ΄λ€.
μ¬λ΄ : μ¬μ€ new μ°μ°μμ μμ±μλ λͺ¨λ λ°μ΄ν° νμμ μ¬μ©ν μ μλ€.
C#μμλ intλ float, stringκ³Ό κ°μ λ°μ΄ν° νμλ μμ±μλ₯Ό κ°κ³ μλ€.
λ°λΌμ λ€μκ³Ό κ°μ΄ λ³μ μ μΈν μλ μλ€.(κ·Έλ¬λ κ΅³μ΄ ν νμκ° μλ€.)
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 MainApp
{
static void Main(string[] args)
{
int a = new int();
a = 3;
string lovemessage = new string(new char[] {'I',' ', 'l', 'o', 'v','e', ' ', 'y','o','u' });
WriteLine(a);
WriteLine(lovemessage);
}
}
}
<μΆλ ₯ κ²°κ³Ό>
3
I love you