728x90

분류 전체보기 159

[Unity] abstract, 인터페이스, struct, 메모리

abstract: 추상화 클래스부모 클래스에서 선언만 해두면 되고, 자식 클래스에선 필수로 이에 대한 설명을 해줘야 된다 abstract class로 선언한 Animal의 abstract 함수는 이를 상속하는 자식 클래스에서 필수적으로 정의해줘야 한다 이전에 만든 동물 클래스에 새 종류에 관해 날기를 추가하고 싶은데 날기 함수를 넣어버린 다면 동물로 선언한 객체들이 다 날기라는 함수를 쓸 수 있어버린다날기가 가능한 조류 클래스를 만들고, 비둘기, 참새 클래스는 조류를 상속하게 했다면 조류가 아닌데 나는 박쥐 / 조류인데 못 나는 펭귄은 어떻게 처리할 것인가? 클래스는 계층적이지만, 인터페이스는 기능이라고 생각하면 된다계층에 상관없이 사용한다 인터페이스는 메소드 선언만 가능하고, 멤버 변수를 가지는 것은..

공부/Unity 2025.05.23

[C#] 생성자, 파괴자

생성자, 파괴자클래스의 이름과 같은 함수를 만든다면, 생성자가 된다생성자는 객체가 생성될 때 호출되며 매개변수 즉 parameter가 있는 생성자도 만들 수 있다~클래스의 이름 함수는 파괴자이며, 객체가 파괴될 때 호출된다객체를 사용하는 곳이 없으면 가비지 컬렉터에 의해 자동으로 호출된다*프로그래머가 메모리를 정리하기엔 복잡하기에 가비지 컬렉터가 안쓰는 메모리를 자동으로 정리해줌 using System.Collections;using System.Collections.Generic;using UnityEngine;public class Practice4 : MonoBehaviour{ class 동물 { int 나이; public 동물() { ..

공부/Unity 2025.05.22

[C#] 객체 지향 추상화, 상속성, 다형성

이전 내용:https://dani2344.tistory.com/142 [C#] OOP 객체 지향, 4대 특징 중 캡슐화와 프로퍼티객체 지향 프로그래밍 OOP객체: 속성과 동작객체 지향 프로그래밍(Object-Oriented Programming): 객체 위주로 프로그래밍 하는 것 절차적 프로그래밍: 기능 구현에 초점, 함수를 역할별로 나누어 개발데dani2344.tistory.com*키워드*캡슐화: class은닉화: 접근 지정자 (private)상속: 콜론(:), extends다형성: override추상화: abstract, interface 객체 지향의 4대 특징캡슐화 (Encapsulation) 추상화 (Abstraction)객체간의 공통점을 뽑아 추상화 객체로 만듦추상화가 잘 될 수록 공통점이 모여..

공부/C# 2025.05.22

[C#] OOP 객체 지향, 4대 특징 중 캡슐화와 프로퍼티

객체 지향 프로그래밍 OOP객체: 속성과 동작객체 지향 프로그래밍(Object-Oriented Programming): 객체 위주로 프로그래밍 하는 것 절차적 프로그래밍: 기능 구현에 초점, 함수를 역할별로 나누어 개발데이터 접근이 쉬움문제점) 이곳 저곳에서 데이터에 접근해 유지보수가 어려움문제점) 스케일이 커지며 관리가 어려워짐 객체 지향 프로그래밍: 객체를 역할별로 나누어 개발클래스가 데이터를 보호해 데이터 접근이 어려움스케일이 커져도 관리가 쉬움문제점) 제한적으로 데이터에 접근시키려 객체화로 설계하는 부분이 비교적 어려움 객체화: 속성과 동작을 정의클래스: 객체화 시킨 개념을 프로그래밍하기 위한 정의서, 각 칼럼에 적당한 데이터 타입과 제한 접근을 지정인스턴스: 생성된 객체객체 지향의 4대 특징 ..

공부/C# 2025.05.22

[Unity] 명명규칙 (파스칼 케이스 / 카멜 케이스), print vs Debug.Log

파스칼 케이스 (Pascal Case)스크립트, 클래스, 파일 등의 이름에는 파스칼 케이스를 사용 파스칼 케이스: 단어를 연결하는 방식으로 이름을 짓고, 새로운 단어의 첫 글자는 대문자로 쓰는 명명 규칙ex) CalculateCurrentHealth 카멜 케이스 (Camel Case)변수, 함수 등의 이름에는 카멜 케이스를 사용 카멜 케이스: 파스칼 케이스와 비슷하지만 첫 글자는 소문자로 작성하는 명명 규칙ex) isPlayerDieprint vs Debug.Log 둘 다 Unity 에디터의 Console 창에 출력print에서 내부적으로 Debug.Log를 호출한다고 한다 하지만 print는 class가 Monobehaviour이라는 class를 상속받을때만 사용이 가능하지만, Debug.Log는 상속..

공부/Unity 2025.05.22

[C#] 합이 n이 되는 순열 구하기 (백트래킹 DFS)

*개선할 점귀찮아서 list.Contains 썼지만 그러면 매번 내장함수로 O(n) 탐색이 일어나 bool[] visited를 따로 만들어서 확인해도 됨코드에서는 1~4까지 조건에 맞춰 상수를 넣었지만, 필요시 4에 해당되는 부분을 변수로 빼기using System;using System.Collections.Generic;public class Program{ static int count = 0, n = 4; public static void Main(){ List patterns = new List(); Find(patterns, 0); } static void Find(List patterns, int sum){ if(sum >= n) { if (sum == n){ Console...

공부/C# 2025.05.21

파동 함수 붕괴 알고리즘 (Wave Function Collapse)

스도쿠의 풀이 방법과 비슷하게 생각소규모 맵을 기반으로 대규모 맵을 생성 / 특수 조건이 있는 타일로 맵을 생성할 때 주로 사용 https://bolddunkley.itch.io/wfc-mixed Wave Function Collapse - Mixed Initiative Demo by Martin DonaldDemo of a mixed initiative WFC implementation.bolddunkley.itch.io위에 링크를 들어가보고 해보면 감이온다 들어가면 나오는 화면인데, 노란 네모가 한 구역이다.저 안에서 16가지 경우중 하나를 선택하면 그 구역때문에 주변에 올 수 없는 경우의 수가 없어진다기둥 머리 부분을 고르니, 그 아래있는 구역은 기둥을 잇기 위해 기둥만 선택이 가능하고 주위에도 불..

공부 2025.05.21

[C#] 함수, 클래스 (+소수 둘째자리까지 출력)

StackOverFlow (스택 오버플로우)?메모리는 크게 힙 / 스택으로 구성함수 호출은 스택 영역을 사용함수 호출시 스택 메모리에 쌓이고, 함수 종료시 스택 메모리에서 빠진다하지만 재귀호출이 계속 반복되면 스택 메모리에 계속 쌓이고,사용 가능한 스택 범위를 넘어서면 스택 오버플로우가 발생한다.따라서 꼭 종료 조건을 추가할 것클래스복합 데이터: 여러 데이터를 하나로 묶어둔 것 (class, struct, record 등 가능)멤버 변수: 클래스에 포함된 변수접근 제한 수준 지정 가능- public: 누구나 접근 가능- protected: 파생클래스까지 접근 가능- private: 소유자만 접근 가능 프로필을 저장하기 위해 무조건 new로 신규 프로필 생성각 멤버변수에 접근하려면 . 점을 찍어 접근 생..

공부/C# 2025.05.21
728x90
반응형