StackOverFlow (스택 오버플로우)?
메모리는 크게 힙 / 스택으로 구성
함수 호출은 스택 영역을 사용
함수 호출시 스택 메모리에 쌓이고, 함수 종료시 스택 메모리에서 빠진다
하지만 재귀호출이 계속 반복되면 스택 메모리에 계속 쌓이고,
사용 가능한 스택 범위를 넘어서면 스택 오버플로우가 발생한다.
따라서 꼭 종료 조건을 추가할 것
클래스
복합 데이터: 여러 데이터를 하나로 묶어둔 것 (class, struct, record 등 가능)
멤버 변수: 클래스에 포함된 변수
접근 제한 수준 지정 가능
- public: 누구나 접근 가능
- protected: 파생클래스까지 접근 가능
- private: 소유자만 접근 가능
프로필을 저장하기 위해 무조건 new로 신규 프로필 생성
각 멤버변수에 접근하려면 . 점을 찍어 접근
생성과 동시에 중괄호 안에서 값 초기화 가능
배열로도 가능, 대신 배열마다 신규 프로필 생성 및 저장 필수
배열로 넣는 경우, 왼쪽처럼 하나하나 점을 찍으면서 접근도 가능하지만, 오른쪽처럼 선언할 때 배열로 선언해 값을 주면서 만드는 것도 가능하다.
다만 오른쪽의 경우 클래스 배열에 크기를 쓰지 않는다.
메소드: 클래스 내부에 추가하는 함수
메소드 안에서는 점 없이 멤버 변수에 접근 가능
위의 사진 형태에서 아래 형태의 사진으로 넣을 수 있음
엄연히 말하면 c.이름 에서 this.이름이 되어 this를 생략해 사용한 것
메소드안에서 this없이 접근해도 컴파일러가 자동으로 연결
소수 둘째자리까지 출력
변수.ToString("F2") -> 소수 둘째자리까지 출력
변수.ToString("F1") -> 소수 첫째자리까지 출력
변수가 3.0f여도 3.00f로 출력해준다
참고:
https://mentum.tistory.com/304
C# 글자 표기 문자 형식 string.Format / ToString
https://bananamandoo.tistory.com/30 https://slaner.tistory.com/92 http://www.dreamy.pe.kr/zbxe/CodeClip/157656 일반적으로 변수를 string으로 바꿀때는 변수.ToString(); 를 사용한다. 여기에 추가적으로 표기형식을 정의해 줄
mentum.tistory.com
'공부 > C#' 카테고리의 다른 글
[C#] OOP 객체 지향, 4대 특징 중 캡슐화와 프로퍼티 (0) | 2025.05.22 |
---|---|
[C#] 합이 n이 되는 순열 구하기 (백트래킹 DFS) (0) | 2025.05.21 |
[C#] 배열 (0) | 2025.05.20 |
[C#] 캐스팅, 리터럴 (0) | 2025.05.19 |
[C#] 프로그래머스 해시 - 의상 (0) | 2025.03.13 |