์์ฑ์
-
์ธ์์ ๋ชจ๋ ๊ฒ์ ๊ฐ์ฒด์ด๋ค. ์บก์ํ(encapsulation) ๊ฐ์ฒด์ ๋ณธ์ง์ ์ธ ํน์ฑ ๊ฐ์ฒด๋ฅผ ์บก์๋ก ์ธ์ ๊ทธ ๋ด๋ถ๋ฅผ ๋ณดํธํ๊ณ ๋ณผ ์ ์๊ฒ ํจ ์บก์์ ๋ ์ฝ์ ์ด๋ค ์์ธ์ง ์ด๋ค ์ฑ๋ถ์ธ์ง ๋ณด์ด์ง ์๊ณ , ์ธ๋ถ๋ก๋ถํฐ ์์ ์บก์ํ ์ฌ๋ก ์บก์ํ์ ๋ชฉ์ ๊ฐ์ฒด ๋ด ๋ฐ์ดํฐ์ ๋ํ ๋ณด์, ๋ณดํธ, ์ธ๋ถ ์ ๊ทผ ์ ํ ๏จ ํด๋์ค ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด๋ด๊ธฐ ์ํด ์ ์๋ ์ค๊ณ๋, ํ ํด๋์ค๋ ๊ฐ์ฒด๊ฐ ์๋. ์ค์ฒด๋ ์๋ ๋ฉค๋ฒ ๋ณ์์ ๋ฉค๋ฒ ํจ์ ์ ์ธ ๏จ ๊ฐ์ฒด ๊ฐ์ฒด๋ ์์ฑ๋ ๋ ํด๋์ค์ ๋ชจ์์ ๊ทธ๋๋ก ๊ฐ์ง๊ณ ํ์ ๋ฉค๋ฒ ๋ณ์์ ๋ฉค๋ฒ ํจ์๋ก ๊ตฌ์ฑ ๋ฉ๋ชจ๋ฆฌ์ ์์ฑ, ์ค์ฒด(instance)๋ผ๊ณ ๋ ๋ถ๋ฆ ํ๋์ ํด๋์ค ํ์์ ์ฐ์ด๋ธ ์ฌ๋ฌ ๊ฐ์ ๊ฐ์ฒด ์์ฑ ๊ฐ๋ฅ ๊ฐ์ฒด๋ค์ ์ํธ ๋ณ๋์ ๊ณต๊ฐ์ ์์ฑ C++ํด๋์ค ๋ง๋ค๊ธฐ ํด๋์ค ์์ฑ ๏ค ๋ฉค๋ฒ ๋ณ์์ ๋ฉค๋ฒ ํจ์๋ก ๊ตฌ์ฑ ๏ค..
[C++] ํด๋์ค์ ๊ฐ์ฒด | Class | C++์ธ์์ ๋ชจ๋ ๊ฒ์ ๊ฐ์ฒด์ด๋ค. ์บก์ํ(encapsulation) ๊ฐ์ฒด์ ๋ณธ์ง์ ์ธ ํน์ฑ ๊ฐ์ฒด๋ฅผ ์บก์๋ก ์ธ์ ๊ทธ ๋ด๋ถ๋ฅผ ๋ณดํธํ๊ณ ๋ณผ ์ ์๊ฒ ํจ ์บก์์ ๋ ์ฝ์ ์ด๋ค ์์ธ์ง ์ด๋ค ์ฑ๋ถ์ธ์ง ๋ณด์ด์ง ์๊ณ , ์ธ๋ถ๋ก๋ถํฐ ์์ ์บก์ํ ์ฌ๋ก ์บก์ํ์ ๋ชฉ์ ๊ฐ์ฒด ๋ด ๋ฐ์ดํฐ์ ๋ํ ๋ณด์, ๋ณดํธ, ์ธ๋ถ ์ ๊ทผ ์ ํ ๏จ ํด๋์ค ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด๋ด๊ธฐ ์ํด ์ ์๋ ์ค๊ณ๋, ํ ํด๋์ค๋ ๊ฐ์ฒด๊ฐ ์๋. ์ค์ฒด๋ ์๋ ๋ฉค๋ฒ ๋ณ์์ ๋ฉค๋ฒ ํจ์ ์ ์ธ ๏จ ๊ฐ์ฒด ๊ฐ์ฒด๋ ์์ฑ๋ ๋ ํด๋์ค์ ๋ชจ์์ ๊ทธ๋๋ก ๊ฐ์ง๊ณ ํ์ ๋ฉค๋ฒ ๋ณ์์ ๋ฉค๋ฒ ํจ์๋ก ๊ตฌ์ฑ ๋ฉ๋ชจ๋ฆฌ์ ์์ฑ, ์ค์ฒด(instance)๋ผ๊ณ ๋ ๋ถ๋ฆ ํ๋์ ํด๋์ค ํ์์ ์ฐ์ด๋ธ ์ฌ๋ฌ ๊ฐ์ ๊ฐ์ฒด ์์ฑ ๊ฐ๋ฅ ๊ฐ์ฒด๋ค์ ์ํธ ๋ณ๋์ ๊ณต๊ฐ์ ์์ฑ C++ํด๋์ค ๋ง๋ค๊ธฐ ํด๋์ค ์์ฑ ๏ค ๋ฉค๋ฒ ๋ณ์์ ๋ฉค๋ฒ ํจ์๋ก ๊ตฌ์ฑ ๏ค..
2021.03.23 -
ํด๋น ํฌ์คํ ์ "์ํ์ฝ๋ฉ"์ ์ด๊ณ ์ ๋์ ๊ฐ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ฌ๋ฆฐ ๊ฒ์๊ธ ์ ๋๋ค. ์์ ์ ์ธ ์ฉ๋๊ฐ ์๋, ๊ฐ์ธ ๊ณต๋ถ ์ ๋ฆฌ ๋ชฉ์ ์ผ๋ก ์ฌ๋ฆฌ๋ ๊ธ์์ ๋ฏธ๋ฆฌ ์๋ฆฝ๋๋ค. ์์(inheritance)์ด๋? ๊ฐ์ฒด๋ ์ฐ๊ด๋ ๋ก์ง๋ค๋ก ์ด๋ฃจ์ด์ง ์์ ํ๋ก๊ทธ๋จ์ด๋ผ๊ณ ํ ์ ์๋ค. ์์์ ๊ฐ์ฒด์ ๋ก์ง์ ๊ทธ๋๋ก ๋ฌผ๋ ค ๋ฐ๋ ๋ ๋ค๋ฅธ ๊ฐ์ฒด๋ฅผ ๋ง๋ค ์ ์๋ ๊ธฐ๋ฅ์ ์๋ฏธํ๋ค. ๋จ์ํ ๋ฌผ๋ ค๋ฐ๋ ๊ฒ์ด๋ผ๋ฉด ์๋ฏธ๊ฐ ์์ ๊ฒ์ด๋ค. ๊ธฐ์กด์ ๋ก์ง์ ์์ ํ๊ณ ๋ณ๊ฒฝํด์ ํ์๋ ์๋ก์ด ๊ฐ์ฒด๋ฅผ ๋ง๋ค ์ ์๊ฒ ํด์ค๋ค. ์ฆ, ์ฝ๊ฒ ์ค๋ช ํ์๋ฉด ๊ฐ์ฒด๋ ๋ณ์์ ๋ฉ์๋๋ฅผ ๋ฌถ์ด๋์ ๋ฌถ์ ์ด๋ผ๊ณ ๋ณด๊ณ ์ด๋ฌํ ๊ฐ์ฒด์ ์์ฑ์ ๊ทธ๋๋ก ๋ฌผ๋ ค๋ฐ์ ์๋ ๊ฐ์ฒด (๋ถ๋ชจ๊ฐ์ฒด์ ๋ณ์์ ๋ฉ์๋ ๋ฅผ ๋ฌผ๋ ค๋ฐ์) ๋ฅผ ๋ง๋ค๊ณ , ์์ ํ๊ณ ๋ณ๊ฒฝ๊ฐ๋ฅํ ๊ฒ์ด ๋ฐ๋ก ์์์ธ ๊ฒ์ด๋ค. ์๋ ์ฝ๋๋ ์ด์ ์๊ฐ์ ..
[Js] ์์ | javascript์์ | prototypeํด๋น ํฌ์คํ ์ "์ํ์ฝ๋ฉ"์ ์ด๊ณ ์ ๋์ ๊ฐ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ฌ๋ฆฐ ๊ฒ์๊ธ ์ ๋๋ค. ์์ ์ ์ธ ์ฉ๋๊ฐ ์๋, ๊ฐ์ธ ๊ณต๋ถ ์ ๋ฆฌ ๋ชฉ์ ์ผ๋ก ์ฌ๋ฆฌ๋ ๊ธ์์ ๋ฏธ๋ฆฌ ์๋ฆฝ๋๋ค. ์์(inheritance)์ด๋? ๊ฐ์ฒด๋ ์ฐ๊ด๋ ๋ก์ง๋ค๋ก ์ด๋ฃจ์ด์ง ์์ ํ๋ก๊ทธ๋จ์ด๋ผ๊ณ ํ ์ ์๋ค. ์์์ ๊ฐ์ฒด์ ๋ก์ง์ ๊ทธ๋๋ก ๋ฌผ๋ ค ๋ฐ๋ ๋ ๋ค๋ฅธ ๊ฐ์ฒด๋ฅผ ๋ง๋ค ์ ์๋ ๊ธฐ๋ฅ์ ์๋ฏธํ๋ค. ๋จ์ํ ๋ฌผ๋ ค๋ฐ๋ ๊ฒ์ด๋ผ๋ฉด ์๋ฏธ๊ฐ ์์ ๊ฒ์ด๋ค. ๊ธฐ์กด์ ๋ก์ง์ ์์ ํ๊ณ ๋ณ๊ฒฝํด์ ํ์๋ ์๋ก์ด ๊ฐ์ฒด๋ฅผ ๋ง๋ค ์ ์๊ฒ ํด์ค๋ค. ์ฆ, ์ฝ๊ฒ ์ค๋ช ํ์๋ฉด ๊ฐ์ฒด๋ ๋ณ์์ ๋ฉ์๋๋ฅผ ๋ฌถ์ด๋์ ๋ฌถ์ ์ด๋ผ๊ณ ๋ณด๊ณ ์ด๋ฌํ ๊ฐ์ฒด์ ์์ฑ์ ๊ทธ๋๋ก ๋ฌผ๋ ค๋ฐ์ ์๋ ๊ฐ์ฒด (๋ถ๋ชจ๊ฐ์ฒด์ ๋ณ์์ ๋ฉ์๋ ๋ฅผ ๋ฌผ๋ ค๋ฐ์) ๋ฅผ ๋ง๋ค๊ณ , ์์ ํ๊ณ ๋ณ๊ฒฝ๊ฐ๋ฅํ ๊ฒ์ด ๋ฐ๋ก ์์์ธ ๊ฒ์ด๋ค. ์๋ ์ฝ๋๋ ์ด์ ์๊ฐ์ ..
2021.02.04 -
ํด๋น ํฌ์คํ ์ "์ํ์ฝ๋ฉ"์ ์ด๊ณ ์ ๋์ ๊ฐ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ฌ๋ฆฐ ๊ฒ์๊ธ ์ ๋๋ค. ์์ ์ ์ธ ์ฉ๋๊ฐ ์๋, ๊ฐ์ธ ๊ณต๋ถ ์ ๋ฆฌ ๋ชฉ์ ์ผ๋ก ์ฌ๋ฆฌ๋ ๊ธ์์ ๋ฏธ๋ฆฌ ์๋ฆฝ๋๋ค. ์์ฑ์์ new ๊ฐ์ฒด ์๋ฐ์คํฌ๋ฆฝํธ ์ธ์ด์ ์ํ๋ ๊ณ์ด์ ์ธ์ด๋ค์ prototype - based programming์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค. ๊ฐ์ฒด๋ ์๋ก ์ฐ๊ด๋ ๋ณ์์ ํจ์๋ฅผ ๊ทธ๋ฃนํํ ๊ทธ๋ฆ์ด๋ผ๊ณ ํ ์ ์๋ค. ๊ฐ์ฒด ๋ด์ ๋ณ์๋ฅผ ํ๋กํผํฐ(property) ํจ์๋ฅผ ๋ฉ์๋(method)๋ผ๊ณ ๋ถ๋ฅธ๋ค. ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด๋ณด์. ์ ์ฝ๋์์ this๋ ํจ์๊ฐ ์ํด์๋ ๊ฐ์ฒด ์ฆ person์ด๋ผ๋ ๋ณ์๊ฐ ๋ด๊ณ ์๋ ๊ฐ์ฒด๋ฅผ ์๋ฏธํ๋ค. ๊ฐ์ฒด๋ฅผ ๋ง๋๋ ๊ณผ์ ์ ๋ถ์ฐ๋์ด ์๋ค. ๊ฐ์ฒด๋ฅผ ์ ์ ํ ๋ ๊ฐ์ ์ ํ ํ๋๋ก ์ฝ๋๋ฅผ ๋ฐ๊ฟ๋ณด์. ๊ฐ๋ ์ฑ๋ ์ข๊ณ , ๋ด์ฉ์ด ์ค๊ฐ์ ๋ผ์ด๋ค๊ฑฐ๋ ๋ณ์กฐ๋๋ ์ํฉ์ ..
[Js] ์์ฑ์์ new | javascript์ ๊ฐ์ฒด ์งํฅ ํน์ง | ๊ฐ์ฒดํด๋น ํฌ์คํ ์ "์ํ์ฝ๋ฉ"์ ์ด๊ณ ์ ๋์ ๊ฐ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ฌ๋ฆฐ ๊ฒ์๊ธ ์ ๋๋ค. ์์ ์ ์ธ ์ฉ๋๊ฐ ์๋, ๊ฐ์ธ ๊ณต๋ถ ์ ๋ฆฌ ๋ชฉ์ ์ผ๋ก ์ฌ๋ฆฌ๋ ๊ธ์์ ๋ฏธ๋ฆฌ ์๋ฆฝ๋๋ค. ์์ฑ์์ new ๊ฐ์ฒด ์๋ฐ์คํฌ๋ฆฝํธ ์ธ์ด์ ์ํ๋ ๊ณ์ด์ ์ธ์ด๋ค์ prototype - based programming์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค. ๊ฐ์ฒด๋ ์๋ก ์ฐ๊ด๋ ๋ณ์์ ํจ์๋ฅผ ๊ทธ๋ฃนํํ ๊ทธ๋ฆ์ด๋ผ๊ณ ํ ์ ์๋ค. ๊ฐ์ฒด ๋ด์ ๋ณ์๋ฅผ ํ๋กํผํฐ(property) ํจ์๋ฅผ ๋ฉ์๋(method)๋ผ๊ณ ๋ถ๋ฅธ๋ค. ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด๋ณด์. ์ ์ฝ๋์์ this๋ ํจ์๊ฐ ์ํด์๋ ๊ฐ์ฒด ์ฆ person์ด๋ผ๋ ๋ณ์๊ฐ ๋ด๊ณ ์๋ ๊ฐ์ฒด๋ฅผ ์๋ฏธํ๋ค. ๊ฐ์ฒด๋ฅผ ๋ง๋๋ ๊ณผ์ ์ ๋ถ์ฐ๋์ด ์๋ค. ๊ฐ์ฒด๋ฅผ ์ ์ ํ ๋ ๊ฐ์ ์ ํ ํ๋๋ก ์ฝ๋๋ฅผ ๋ฐ๊ฟ๋ณด์. ๊ฐ๋ ์ฑ๋ ์ข๊ณ , ๋ด์ฉ์ด ์ค๊ฐ์ ๋ผ์ด๋ค๊ฑฐ๋ ๋ณ์กฐ๋๋ ์ํฉ์ ..
2021.02.04 -
lucete1230-cyberpolice.tistory.com/229?category=876734 ์ ๋ฒ๊ธ์์ ํด๋์ค์ ๊ฐ๋ ์ ์ตํ๊ณ ์๋ ์์ ๋ฅผ ์ค์ตํด๋ณด์ธ์~ * ์ ๊ณต๋ถ ๋ชฉ์ ์ฉ๋๋ก ์ค์ต ํ ๊ฒ์ด๋ผ ๋ด์ฉ์ด ์กฐ๊ธ ๋ถ์กฑ ํ ์ ์์ต๋๋ค. #์์ 1 class Student: def start(self): print('์๋ ํ์ธ์') def printName(self,name): print('์ด๋ฆ์ {0} ์ ๋๋ค'.format(name)) stu = Student() Student.start(stu) stu.printName('ํ๊ธธ๋') #์์ 2 class Student: schoolName = 'Korea' stu1 = Student() # ๊ฐ์ฒด ์์ฑ stu2 = Student() #id () : ๊ฐ์ฒด์ ์ฃผ..
[Python] ํด๋์ค ์์ ์ฝ๋lucete1230-cyberpolice.tistory.com/229?category=876734 ์ ๋ฒ๊ธ์์ ํด๋์ค์ ๊ฐ๋ ์ ์ตํ๊ณ ์๋ ์์ ๋ฅผ ์ค์ตํด๋ณด์ธ์~ * ์ ๊ณต๋ถ ๋ชฉ์ ์ฉ๋๋ก ์ค์ต ํ ๊ฒ์ด๋ผ ๋ด์ฉ์ด ์กฐ๊ธ ๋ถ์กฑ ํ ์ ์์ต๋๋ค. #์์ 1 class Student: def start(self): print('์๋ ํ์ธ์') def printName(self,name): print('์ด๋ฆ์ {0} ์ ๋๋ค'.format(name)) stu = Student() Student.start(stu) stu.printName('ํ๊ธธ๋') #์์ 2 class Student: schoolName = 'Korea' stu1 = Student() # ๊ฐ์ฒด ์์ฑ stu2 = Student() #id () : ๊ฐ์ฒด์ ์ฃผ..
2020.11.03