Class And Object(2)

JungWooยท2022๋…„ 12์›” 28์ผ
0
post-thumbnail

๐Ÿ“ŒClass

ํ‘œํ˜„ํ•˜๊ณ  ์‹ถ์€ ๋Œ€์ƒ์„ ์ถ”์ƒํ™”ํ•˜์—ฌ ๋Œ€์ƒ๊ณผ ๊ด€๋ จ๋œ ๋ณ€์ˆ˜์™€ ๋ฉ”์„œ๋“œ๋ฅผ ์ •์˜ํ•˜๋Š” ํ‹€

cf) MonoBehaviour Class

  • ๊ฒŒ์ž„ ์˜ค๋ธŒ์ ํŠธ์˜ ์ปดํฌ๋„ŒํŠธ๋กœ์„œ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ๋“ค์„ ์ œ๊ณต -> ์ปดํฌ๋„ŒํŠธ๋กœ ์ถ”๊ฐ€ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•จ
  • new๋กœ ์˜ค๋ธŒ์ ํŠธ ์ƒ์„ฑ ๋ถˆ๊ฐ€๋Šฅ

๐Ÿ“ŒObject

์‹ค์ œ๋กœ ์กด์žฌํ•˜๋Š” ๋ฌผ๊ฑด(๊ฒŒ์ž„ ์›”๋“œ ์† ์‚ฌ๋ฌผ)

๋…๋ฆฝ์„ฑ

  • ์„œ๋กœ ๋…๋ฆฝ์ 
  • ๊ตฌ๋ณ„ ๊ฐ€๋Šฅํ•œ ์‹ค์ฒด

โœ…Class์™€ Object์˜ ๊ด€๊ณ„

์ธ์Šคํ„ด์Šคํ™” = Class๋กœ Object๋ฅผ ์‹ค์ฒดํ™” ํ•˜๋Š” ๊ฒƒ
์ธ์Šคํ„ด์Šค = ์ธ์Šคํ„ด์Šคํ™”๋กœ ์ƒ์„ฑ๋œ Object

ex)
public class Person {
	// ๋ณ€์ˆ˜
    public string name;
    public int age;
    
    // ๋ฉ”์„œ๋“œ
    public void print() {
    	Debug.Log(name + ":" + age);
    }
}


using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Student : MonoBehaviour {
	void Start() {
    	Person kim = new Person();
        kim.name = "KIM";
        kim.age = 24;
    }
}

Class ํ•˜๋‚˜๋กœ ์—ฌ๋Ÿฌ๊ฐœ์˜ Object ๋งŒ๋“ค์ˆ˜ ์žˆ์Œ

โœ”๏ธnew ์—ฐ์‚ฐ์ž = ํด๋ž˜์Šค๋กœ๋ถ€ํ„ฐ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ

โœ”๏ธPerson() ๋ฉ”์„œ๋“œ = Person ํด๋ž˜์Šค์˜ ์ƒ์„ฑ์ž

โ—Tip

ํด๋ž˜์Šค ์ •์˜ํ•  ๋•Œ ์ƒ์„ฑ์ž๋ฅผ ๋”ฐ๋กœ ๋งŒ๋“ค์ง€ ์•Š์•„๋„ ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๊ฐ€ ์•”์‹œ์ ์œผ๋กœ ์ƒ์„ฑ


  • ๋ฉค๋ฒ„ : Object ๋‚ด๋ถ€์˜ ๋ณ€์ˆ˜๋‚˜ ๋ฉ”์„œ๋“œ
    -> .์—ฐ์‚ฐ์ž๋กœ ์ ‘๊ทผ
  • Class ๋ฉค๋ฒ„ : Class ๋‚ด๋ถ€์˜ ๋ณ€์ˆ˜๋‚˜ ๋ฉ”์„œ๋“œ
  • Class ํ•„๋“œ : Class ๋ฉค๋ฒ„ ์ค‘์—์„œ ๋ณ€์ˆ˜
  • ์ ‘๊ทผ ์ œํ•œ์ž
    -> ์„ ํƒ์ ์œผ๋กœ ๋ฉค๋ฒ„์˜ ๊ณต๊ฐœ ์—ฌ๋ถ€ ๊ฒฐ์ •
    • public : Class ์™ธ๋ถ€์—์„œ๋„ ์ ‘๊ทผ ๊ฐ€๋Šฅ
      • public ๋ณ€์ˆ˜๋Š” ์ธ์ŠคํŽ™ํ„ฐ ์ฐฝ์—์„œ ํŽธ์ง‘ ๊ฐ€๋Šฅ
    • private : Class ๋‚ด๋ถ€์—์„œ๋งŒ ์ ‘๊ทผ ๊ฐ€๋Šฅ (default๊ฐ’)
    • protected : Class ๋‚ด๋ถ€์™€ ํŒŒ์ƒ Class์—์„œ๋งŒ ์ ‘๊ทผ ๊ฐ€๋Šฅ

๐Ÿ“Œ์ฐธ์กฐ ํƒ€์ž…

๋ณ€์ˆ˜์— ์ ‘๊ทผํ•˜๋ฉด ์ฐธ์กฐ๋ฅผ ํ†ตํ•ด ์‹ค์ฒด์— ์ ‘๊ทผํ•˜๋Š” ๋ณ€์ˆ˜

  • ๋ณ€์ˆ˜ = ์‹ค์ฒด๊ฐ€ ์•„๋‹Œ ์‹ค์ฒด๋กœ ํ–ฅํ•˜๋Š” ์ฐธ์กฐ๊ฐ€ ํ• ๋‹น
  • ์ฐธ์กฐ ํƒ€์ž…์˜ ๋ณ€์ˆ˜๋Š” ์‹ค์ฒดํ™”๋œ ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ์•„๋‹˜(์‹ค์ œ ์˜ค๋ธŒ์ ํŠธ์˜ ๋ถ„์‹ )
    new๋ฅผ ์‚ฌ์šฉํ•ด ์˜ค๋ธŒ์ ํŠธ๋ฅผ ๊ฐœ๋ณ„์ ์œผ๋กœ ์ƒ์„ฑํ•ด์•ผ ํ•จ
  • ์ฐธ์กฐ๊ฐ’ : ์‹ค์ œ ์˜ค๋ธŒ์ ํŠธ์˜ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ์— ๋Œ€์‘๋˜๋Š” ๊ฐ’

๊ฐ’ ํƒ€์ž…

ํ•ด๋‹น ๋ณ€์ˆ˜ ๊ณต๊ฐ„์— ๊ฐ’ ์ž์ฒด๋ฅผ ์ €์žฅ

  • ex)
    C#๋‚ด์žฅ๋ณ€์ˆ˜(int, bool, string...), structํƒ€์ž…(Vector3, Color...)

์ฐธ์กฐ ํƒ€์ž…

๊ฐ’์œผ๋กœ ํ–ฅํ•˜๋Š” ์ฐธ์กฐ์„ ์ €์žฅ

  • ex)
    class ํƒ€์ž…, ์œ ๋‹ˆํ‹ฐ์˜ ๋ชจ๋“  ์ปดํฌ๋„ŒํŠธ, C#์Šคํฌ๋ฆฝํŠธ(MonoBehaivour์ƒ์†๋ฐ›๋Š” ํด๋ž˜์Šค)
profile
UnrealEngine ๊ฟˆ๋‚˜๋ฌด

0๊ฐœ์˜ ๋Œ“๊ธ€