C#

1.21 영상 강의(11~15) 내용 정리

용성 2022. 1. 21. 09:15

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 배열만 허용

 

 

 

728x90

'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