๊ฐํ๊ณผ ๋ํผ๋ฐ์ค ํ์ ๊ตฌ๋ถํ ์ค ์์์ผ ํ๋ค.
๊ธฐ๋ณธ ์๋ฃํ์ ์ ์ธ๋ง ํ ๊ฒ -> ๊ฐํ
์๊ธฐ๋ง ๋ง๋ ํด๋์ค๋ฅผ new ํด๋์ค๋ช ();ํด์ ๋ง๋ ๊ฒ์ ๊ทธ ํด๋์ค๋ช ์ ๋ฐ์ผ๋ฉด ๋ํผ๋ฐ์คํ!
๋ชจ๋ ํ๋ก๊ทธ๋จ์ ๊ณต์ง๊ฐ ์๋ค. = ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ง๋ถํ๋ค.
ํจ์์ ์คํ์กฐ์ฐจ ๊ณต์ง๊ฐ ์๋ค.
๋ฉ๋ชจ๋ฆฌ์ ๊ตฌ์กฐ๋ฅผ ์๋ค๋ ๊ฒ์ ์ฝ๋์ ๋์์๋ฆฌ๋ฅผ ์๋ ๊ฒ๊ณผ ๊ฐ๋ค.
๊ฐ์ฒด๋ฅผ ๋ง๋ค์๋ค๋ ๊ฒ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ง๋ถํ๋ค๋ ๊ฒ.
[์ฝ๋] : ์์, ํด๋์ค ์ ์ธ ๊ทธ ์์ฒด. ํจ์์ ๋ด์ฉ ๊ทธ์์ฒด. ์์ ์ด ๋ถ๊ฐ๋ฅํ ์ฝ๋๋ค์ด ๋ค์ด๊ฐ
[๋ฐ์ดํฐ]
[ํ] : new ํด๋์ค๋ช () ๋ง๋ค์ด์ง ํด๋์ค ๊ฐ์ฒด๋ค์ ๋ณธ์ฒด๊ฐ ์ฌ๊ธฐ ์๋ค.
[์คํ] :
//๋ฉ์ธ ํจ์
//C#์ ์ฝ์. ์ด๊ณณ์ ์์์ด๋ผ๊ณ ์ก์ ํจ์
//Main์ด๋ผ๋ ์ด๋ฆ์ ํจ์์์๋ถํฐ ์์
static void Main(string[] args)
//์ฆ Main ์์์ ํ๋ฒ ์คํ๋(์ข ๋ฃ๋) ์ฝ๋๋ ์คํ์ ๋ด๊ฒผ๋ค๊ฐ ์ฌ๋ผ์ง
//ํจ์๋ ๋ฌผ๋ก , ๊ทธ ์์ ์๋ ์ธ์๋ ์คํ์ ์๋ค ์ฌ๋ผ์ง.
(์ง์ญ ๋ณ์ ํจ์์ ์คํ ๋ฉ๋ชจ๋ฆฌ์ ์ํ๊ฒ ๋๋ค.)
์ฝ๊ฒ ๋งํด ํจ์์ ๋ฐ์ค- ํจ์์ ์คํ ๋ฉ๋ชจ๋ฆฌ ์์ญ(๊ทธ ๋ฐ์ค ์์ ๋ค์ด์๋ ์ง์ญ๋ณ์)
๋ฉ์ธ ํจ์๊ฐ ์ข ๋ฃ๋๋ฉด ๋จ์์ ํ๋ก๊ทธ๋จ์ด ์ฌ๋ผ์ง
ํด๋์ค ์ธ๋ถ์์ ์ธ์๋ก ๋๊ฒจ์ ํด๋์ค ๋ด๋ถ์์ ๋ฒ์ด์ง๋ ์ผ๋ค์ ๋จ์ง ํด๋์ค ๋ด๋ถ์์ ๋ฒ์ด์ง ๋ฟ์ด๋ค.
๋ง์ฅ๋๊ฐ์ง๋ง ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ดํดํ๋ค๋ฉด ๋ชจ๋ฅผ ์ ์๋ ์ฌ์ค.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
class User
{
private int Hp = 100;
public void Test(int value)
{
value = 1000;
}
}
namespace Example
{
class Program
{
static void Main(string[] args)
{
User NewUser = new User();
int value = 100;
NewUser.Test(value);
}
}
}
๊ทธ๋ ๋ค๋ฉด ํด๋์ค ๋ด๋ถ์์ ๋ฐ์ํ ๋ณ๊ฒฝ ์ฌํญ์ ์ธ๋ถ์๋ ์ ์ฉ์ํค๊ณ ์ถ๋ค๋ฉด ์ด๋ป๊ฒ ํด์ผํ ๊น.
ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๊ฐ๋จ.
return์ ํตํด ํด๋์ค ์ธ๋ถ๋ก ๋ฝ์๋ด์ฃผ๋ฉด ๋๋ค.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
class User
{
private int Hp = 100;
public int Test(int value)
{
value = 1000;
return value;
}
}
namespace Example
{
class Program
{
static void Main(string[] args)
{
User NewUser = new User();
int value = 100;
value = NewUser.Test(value);
}
}
}
์๋ฅผ ๊ฐํ์ ์ฒ๋ฆฌ๋ผ๊ณ ๋ถ๋ฅธ๋ค.
๊ฐ์ฅ ์๋๋ ๋ํผ๋ฐ์ค ํ์ ๊ด๋ จํ ์์ค์ฝ๋์ด๋ค.
ํด๋์ค๊ฐ ๊ฐ์ฒดํ๋ ๊ฒ์ ๋ํผ๋ฐ์ค ํ์ด๋ผ๋ ์๋ฃํ์ด ๋๋ค.
int bool ๋ฑ์ ๊ฐํ๊ณผ
๋ํผ๋ฐ์คํ์ ๋ฉ๋ชจ๋ฆฌ์ ์์น์ ์ฌ์ฉ๋ฒ์ด ์์ ๋ค๋ฅด๋ค. new๋ก ์์ฑํ ์น๊ตฌ๋ค์ ํ์ ์ฌ๋ผ๊ฐ๋ค.
์กฐ๊ธ ๋ ์๋ฐํ ๋งํ์๋ฉด, ๋ํผ๋ฐ์ค๋ ํ์ ์์ฑ๋ ์ด๋ ํ ๋ฉ๋ชจ๋ฆฌ์ ์์น๋ฅผ ๊ฐ๋ฆฌํค๋ ๊ฐ์ด๋ค.
[์ฝ๋] : ์์, ํด๋์ค ์ ์ธ ๊ทธ ์์ฒด. ํจ์์ ๋ด์ฉ ๊ทธ์์ฒด. ์์ ์ด ๋ถ๊ฐ๋ฅํ ์ฝ๋๋ค์ด ๋ค์ด๊ฐ
[๋ฐ์ดํฐ]
[ํ] : new User(); new Monster(); ์ค์ ๋ง๋ค์ด์ง ๋ ์๋ค
[์คํ] :
//๋ฉ์ธ ํจ์
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
class User
{
public int Ap = 10;
public int Hp = 100;
public void Att(Monster monster)
{
monster.Hp -= Ap;
}
}
class Monster
{
public int Ap = 10;
public int Hp = 100;
public void Att(User user)
{
user.Hp -= Ap;
}
}
namespace Example
{
class Program
{
static void Main(string[] args)
{
User NewUser = new User();
Monster NewMonster = new Monster();
int value = 100;
NewMonster.Att(NewUser);//90
}
}
}
'C# > C#' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[C# ์ฝ์] 5x5 ๋๊ทธ๋ผ๋ฏธํ ์ถ๋ ฅ (0) | 2022.02.02 |
---|---|
C# ๊ฐ๋ณ๋ฐฐ์ด (0) | 2022.01.22 |
C#(4) : ์ฐ์ ์ฐ์ฐ์์ ํจ์ (0) | 2022.01.21 |
C#(3) : ๋ฉค๋ฒ๋ณ์, ๋ฉค๋ฒํจ์, ์ง์ญ๋ณ์, ์ ๊ทผ์ ํ์ง์ ์(์บก์ํ, ์๋ํ) (0) | 2022.01.21 |
C#(2) os๊ฐ C#์ฝ๋๋ฅผ ์ฝ๋ ์์, ide์ ํจ๊ปํ๋ ๊ธฐ์ด ๋๋ฒ๊น f10 (0) | 2022.01.21 |