1. 구조체와 클래스(Struct, Class)
1) 구조체(Struct)
- 값 타입 Data
- 상속 x
- new 선언 x
- 간단한 구조 정의 할때 구조체를 사용
2) 클래스(Class)
- Heap Memory
- 상속 가능
- new로 생성 후 사용
- 필드 초기화 x
- new로 생성 시 생성자 자동 호출
- 소멸자 ~Class()
* 캡슐화 - 객체 밖에서 알 필요 없는 내부 변수 들을 숨김
1) 접근 제한자 - 외부로 부터 클래스, 클래스 내부 맴버의 접근 권한을 설정
- public / protected / private / internal
모든 / 파생 / 클래스 안 / 동일한 Assembly
* 다형성(override, overload)
- 오버로딩 : 동일한 이름으로 여러 개의 메서드를 작성
* 매개변수 개수, 형식이 다름
- 오버라이딩 : 기존에 있는 연산자를 재정의 하여 기존과 다른 기능을 수행하도록 함
* 부모 클래스의 메서드를 자식 클래스에서 재정의
*static
클래스에서 new로 할당받은 인스턴스는 각 객체마다 고유하게 메모리를 확보하기 때문에
클래스 전역적으로 값이 유지되지 않는다.
public class StaticAccess {
public static int sint = 0;
public int nint = 0;
public static void Main(){
StaticAccess sa = new StaticAccess();
sa.sint = 555; // 틀린 구문
StaticAccess.sint = 3333; // 맞는 구문
- 스태틱의 접근은 근본적으로 클래스의 이름으로만 접근할 수 있다.
- 모든 클래스에서 공유하기 위한 멤버를 선언하는 데 사용
- 변수, 메서드, 속성, 연산자 및 생성자에 사용할 수 있음
- 인덱서, 소멸자에는 사용할 수는 없음
- 클래스내의 모든 곳에서 사용할 수 있는 공유 변수
*Main 메서드 규칙
- 메서드 이름은 반드시 Main
- 정적 메서드여야함 static
- Main 메서드가 정의된 클래스의 이름은 자유 단, 2개 이상의 클래스에서 Main 메서드를 정의하고 있다면 컴파일러가 구분 가능하게 어떤클래스의 Main을 실행할지 클래스를 지정해야함.
- Main메서드의 반환값은 void 또는 int만 가능
- Main 메서드의 매개변수는 없거나 string 배열만 허용
'C#' 카테고리의 다른 글
1.22 영상 강의(16~20) 내용 정리 (0) | 2022.01.22 |
---|---|
1.22 C# 오버로딩 오버라이딩 (0) | 2022.01.22 |
1.20 영상 강의(6~10) 내용 정리 (0) | 2022.01.20 |
1.19 영상 강의(1~5) 내용 정리 (0) | 2022.01.19 |
using 문 (0) | 2022.01.18 |