본문 바로가기

C#17

정적 변수 + 정적 함수 static: 모든 오브젝트들이 공유하는 단 하나의 변수 static 왜 필요해? 전체 Dog 수를 count 하고 싶을 때, 그냥 Dog class에 넣어버리면 전체 수 count 할 수 없을 뿐만 아니라 각각 개체들이 다 count를 부르기 때문에 매우 비효율적. count는 모든 오브젝트들이 공유해야함. 하지만 개별 오브젝트이기 때문에 각각 count 정보가 공유가 안됨. 따라서 모든 오브젝트들이 공유할 수 있는 변수가 필요함. count 라는 변수를 모든 오브젝트에게 찍어내지 않고 모든 개별 오브젝트가 단 하나의 count를 사용하게 하는 것. 즉 count 라는 변수가 하나의 클래스 안에 실존하고 그 하나의 count를 모든 오브젝트들이 공유하면 되는 것. static : dynamic의 반댓말.. 2021. 7. 13.
오버로드 오버로드: 함수의 여러가지 버전을 만듦 함수 이름은 똑같이 하되, 함수가 받는 입력이나 출력을 다르게 하면 다른 버전의 함수가 만들어짐. 오버로드 사용 이유? 내부 동작은 비슷한데 굳이 이름을 쪼개서 혼란을 일으킬 필요가 없어서! 2021. 7. 13.
벡터 연산 기초 -좌표, 방향, 거리, 속도를 나타낼 때 씀 Vector3 (x, y, z) , (x, y, z, w) Vector2 ( x, y) -벡터는 내부에 있는 원소들이 같은 개수의 원소만 가지면 벡터임. (1, 2, 3) ->Vector3 (3, 2, 1) ->Vector3 (100, 100) -> Vector2 (x, y, z, w, ...원소 개수가 11개면 ) -> Vector11 -벡터는 길이와 방향을 가진 존재 그래서 어떤 점에서 시작하는지는 별로 관심이 없음. ex. (-3, 3) ( 2, 3 ) 내 위치에서 '상대적으로' (2,3)만큼 가고 있다. (1, 1) 내가 어떤 위치에서 상대적으로 오른쪽 한칸 위쪽 한칸으로 떨어진 곳으로 향하고 있고 그 속도, 즉 거리는 피타고라스 법칙에 의해 루트2. .. 2021. 7. 12.
OOP(Object-Oriented Programming) 언어 - 사람에게 직관적 - 기능과 자료를 하나의 개체(Object)에 합침 - 물체의 개념 - 오역 때문에 객체라고 주로 부르긴 함 - 가장 널리 쓰이는 프로그래밍 패러다임 - 사람에게 매우 직관적이고 - 복잡한 프로그램의 구조를 잡기 쉽다 변수는 값 자체가 아니라 값을 가리키는 화살표다. 변수는 실제 존재하는 오브젝트의 살아있는 그림자일 뿐 오브젝트 그 자체가 아님. =는 jack이라는 그림자에게 새로 탄생된 Animal을 붙여주는 것. nate=jack; jack이라는 변수가 가지고 있던 화살표가 nate에게 덮어씌워지는 것. nate가 가리키던게 사라져서 미아가 됨. 이걸 c#이나 자바에서는 garbage 컬렉션이라 해서 지워주는데 이걸 Call by Reference 라고 부름. 즉, 변수는 실존하는.. 2021. 6. 18.
변수, 함수, 스코프, 형변환, 배열 Scope: 변수가 관측 가능한 영역 Start()부분에서는 GetRadius()부분의 radius 변수가 안보임 형변환 배열: 여러개의 값을 하나의 변수로 다루게 해준다. 2021. 6. 17.