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

4. object ํ˜•์‹, ๋ฐ•์‹ฑ๊ณผ ์–ธ๋ฐ•์‹ฑ

Rainbow๐ŸŒˆCoder 2022. 2. 7. 10:38
728x90

object๋Š” ๋ฌผ๊ฑด, ๊ฐ์ฒด๋ผ๋Š” ๋œป์˜ ์˜์–ด ๋‹จ์–ด์ด๋‹ค.

object ํ˜•์‹์€ ์–ด๋–ค ๋ฌผ๊ฑด(๋ฐ์ดํ„ฐ)์ด๋“ ์ง€ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ํ˜•์‹์ด๋‹ค.(์ƒ์†์˜ ํšจ๊ณผ)

 

C#์€ object๊ฐ€ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋„๋ก ์ƒ์†์ด๋ผ๋Š” ์กฐ์น˜๋ฅผ ์ทจํ–ˆ๋‹ค.

(์ƒ์† : ๋ถ€๋ชจ๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ์™€ ๋ฉ”์†Œ๋“œ๋ฅผ ๋ฌผ๋ ค๋ฐ›์€ ์ž์‹์€ ๋ถ€๋ชจ์™€ ๋˜‘๊ฐ™์ด ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ž์‹์„ ๋ถ€๋ชจ๋กœ ๊ฐ„์ฃผํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.)

๋ชจ๋“  ๋ฐ์ดํ„ฐ ํ˜•์‹(๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ ํ˜•์‹๋ฟ ์•„๋‹ˆ๋ผ ๋ชจ๋“  ๋ณตํ•ฉ ๋ฐ์ดํ„ฐ ํ˜•์‹, ์‹ฌ์ง€์–ด ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ๋งŒ๋“  ๋ฐ์ดํ„ฐ ํ˜•์‹ ๋งˆ์ €๋„)์ด ์ž๋™์œผ๋กœ object ํ˜•์‹์œผ๋กœ๋ถ€ํ„ฐ ์ƒ์†๋ฐ›๊ฒŒ ํ•˜์˜€์œผ๋ฏ€๋กœ,

object ํ˜•์‹์€ ๋ชจ๋“  ๋ฐ์ดํ„ฐ ํ˜•์‹์˜ ์กฐ์ƒ์ด๋‹ค.

 

int, long, char, bool, string ~~~

using System;
using static System.Console;

namespace Hello
{
    class MainApp
    {
        static void Main(string[] args)
        {
            object a = 123;
            object b = 3.141234567890m;
            object c = true;
            object d = "์•ˆ๋…•ํ•˜์„ธ์š”.";
            object e = 5.14;

            WriteLine(a);
            WriteLine(b);
            WriteLine(c);
            WriteLine(d);
            WriteLine(e);
        }
    }
}

์ถœ๋ ฅ

123
3.141234567890
True
์•ˆ๋…•ํ•˜์„ธ์š”.
5.14

 

์ •์ˆ˜ ํ˜•์‹์€ ๋ถ€ํ˜ธ ์žˆ๋Š” ํ˜•์‹๊ณผ ๋ถ€ํ˜ธ ์—†๋Š” ํ˜•์‹์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์ด ์„œ๋กœ ๋‹ค๋ฅด๊ณ ,

๋ถ€๋™ ์†Œ์ˆ˜์  ํ˜•์‹๊ณผ decimal ํ˜ˆ์‹์ด ์„œ๋กœ ์†Œ์ˆ˜๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์ด ๋‹ค๋ฅธ๋ฐ

object ํ˜•์‹์ด ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค ๋‹ด์„ ์ˆ˜ ์žˆ๋Š” ๋†€๋ผ์šด ์ผ์„ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ

๋ฐ•์‹ฑ๊ณผ ์–ธ๋ฐ•์‹ฑ์˜ ๋งค์ปค๋‹ˆ์ฆ˜์„ ์ดํ•ดํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค.

 

<๋ฐ•์‹ฑ๊ณผ ์–ธ๋ฐ•์‹ฑ>

 

object ํ˜•์‹์€ ์ฐธ์กฐ ํ˜•์‹์ด๊ธฐ ๋•Œ๋ฌธ์— ํž™์— ๋ฐ์ดํ„ฐ๋ฅผ ํ• ๋‹นํ•œ๋‹ค.

๊ทธ๋ž˜์„œ int๋‚˜ double ๊ฐ™์€ ๊ฐ™์€ ๊ฐ’ ํ˜•์‹์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํž™์— ํ• ๋‹นํ•˜๊ธฐ ์œ„ํ•ด '๋ฐ•์‹ฑ'๊ธฐ๋Šฅ์ด ์žˆ๋‹ค.

 

object ํ˜•์‹์— ๊ฐ’ ํ˜•์‹์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ• ๋‹นํ•˜๋ ค๋Š” ์‹œ๋„๊ฐ€ ์ด๋ฃจ์–ด์ง€๋ฉด

object ํ˜•์‹์€ ๋ฐ•์‹ฑ์„ ์ˆ˜ํ–‰ํ•ด์„œ ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ ํž™์— ํ• ๋‹นํ•œ๋‹ค.

 

[๋ฐ•์‹ฑ]

ํŠน์ • ๊ฐ’์„ ๋ฐ•์Šค์— ๋‹ด์€ ๋’ค์— ํž™์— ํ• ๋‹นํ•˜๊ณ ,

๋ณ€์ˆ˜๋Š” ๊ทธ ์ฃผ์†Œ๋ฅผ ์ฐธ์กฐํ•˜๋Š” ํ˜•ํƒœ์ด๋‹ค.

 

 

์•„๋ž˜์™€ ๊ฐ™์ด ํž™์— ์žˆ๋˜ ๊ฐ’ ํ˜•์‹ ๋ฐ์ดํ„ฐ๋ฅผ

๊ฐ’ ํ˜•์‹ ๊ฐ์ฒด์— ๋‹ค์‹œ ํ• ๋‹นํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค.

using System;
using System.Text;
using static System.Console;

namespace Hello
{

    class MainApp
    {
        static void Main(string[] args)
        {
            object a = 123;
            int af = (int)a;
            WriteLine(af);
        }
    }
}

a๋Š” 123์ด ๋ฐ•์‹ฑ๋˜์–ด ์ €์žฅ๋œ ํž™์„ ์ฐธ์กฐํ•˜๊ณ  ์žˆ๋‹ค.

af๋Š” a๊ฐ€ ์ฐธ์กฐํ•˜๊ณ  ์žˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ๋กœ๋ถ€ํ„ฐ ๊ฐ’์„ ๋ณต์‚ฌํ•˜๋ ค๊ณ  ํ•œ๋‹ค.

์ด๋•Œ ๋ฐ•์‹ฑ๋œ ๊ฐ’์„ ๊บผ๋‚ด ๊ฐ’ ํ˜•์‹ ๋ณ€์ˆ˜์— ์ €์žฅํ•˜๋Š” ๊ณผ์ •์„ ์ผ์ปฌ์–ด์„œ '์–ธ๋ฐ•์‹ฑ'์ด๋ผ๊ณ  ํ•œ๋‹ค.

 

<์ตœ์ข… ์ •๋ฆฌ ์ฝ”๋“œ>

using System;
using System.Text;
using static System.Console;

namespace Hello
{
    class MainApp
    {
        static void Main(string[] args)
        {
            int a = 123;
            object b = a; //a์— ๋‹ด๊ธด ๊ฐ’์„ ๋ฐ•์‹ฑํ•ด์„œ ํž™์— ์ €์žฅ
            int c = (int)b; //b์— ๋‹ด๊ธด ๊ฐ’์„ ์–ธ๋ฐ•์‹ฑํ•ด์„œ ์Šคํƒ์— ์ €์žฅ

            WriteLine(a); //123
            WriteLine(b); //123
            WriteLine(c); //123
        }
    }
}
728x90