C#/C#언어

4일차_수업내용

minquu 2021. 3. 11. 22:34
반응형

복습

매서드 
핵심_외부에서 어떤 개체에 대한 정보를 알고싶을때 사용된다.
Class 변수는 = 클래스 안에서 어디서든 사용가능
Class 는 정보와 기능을 가지고있다.
Calss 안에있는 변수는 맴버 변수 / 매서드는 맴버 매서드
매서드 안에 있는 변수는 지역 변수

 

매서드는 호출되면 메모리가 스택되고, 반환되지 않으면
스택오버플로가 되어서 다운된다. 
힙은 어떻게 메모리를 반환하는가?
힙에서 사용ㅇ되지 않는것을 판단되면
GC(가비지콜렉터)가 알아서 처리를 한다.

 

 

클래스는 형식이다
클래스를 만드는이유
1. 기능과 정보만들어서 (정의) -> 여러 개체를 만들거야 -> 개체를 만든다는것 )실체화를 만든다(즉,메모리에 올리겠다.)
2. 나만의형식을만들때 (사용자정의형식) (특징)참조형식)

 

정리!
클래스 = 정보 / 기능 (참조형식 / 사용자 정의형식)
클래스 자체는 그냥 파일이다.
클래스를 가지고 개체를 생성 할 수있다.
즉, new라는 연산자를 통해서 클래스에 인스턴스가능 (즉, new라는 연산자를 통해서 메모리에 실체화 된다.)
코드적의미는 참조형식 = 사용자정의 형식 (언어적 측면 = 형식) / 
기본값은 null(Null은 스택에 있지만, 힙에 아무것도 참조하지 않은 것을)

★ 변수는 메모리 상에 위치가 잡혀있는 것이다. (메모리상에서 A라고 잡힌것)
참조형식은 힙과 스택에 저장 // 실제값은 힙 // 주소만 스택 (Null - 주소 (변수)는 잡혔지만, 실제 값(힙)은 없는것)
Null = 어떠한 참조도 없는 상태이다.
heap에서 아무도 참조하지 않으면 GC가 값을 지운다.
(구술면접에서 물어본다..)
stack heap 메모리 // 변수값 참조값 정의 // GC의 처리 방식 등등

 

 

 

클래스

==> 기본구조

 

 

특별한 매서드
public App() [반환타입이 없음] = 생성자 매서드라고 부른다.
//생성자 constructor 라고 불리운다. 
//new라는 키워드를 통해서 클래스가 인스턴스 될 때 호출이 되는 매서드

 

 

 

 

new 라는 키워드
(첫번째역할)new연산자는 새 유형(참조형식 = class)의 인스턴스를 만든다 . (힙 메모리에 올린다.)
new라는 키워드를 통해서만 ★
(두번째역할) class에 (자기 자신의) 생성자를 호출한다.
예 ) 5번 호출되면 5개의 생성자가 호출된다.

 

 

 

 

class의     정보는 맴버 변수는 생성자 기준 위
기능은 맴버 매서드 는 생성자 기준 아래

 

->

 

 

 

Class를 만들때는 

 

1.추상화(유닛-마린, 메딕/유닛 = 공격한다 이런식으로 정의 못한다. = 추상화)를 해야한다.
추상화 할때는 일반화 시켜야함 - 예) 유닛은(추상화) 움직일 수 있다.(일반화)
2. 상속 - 부모.자식 관계 / 유닛(움직이는 특성을 가지고있으면) -> 자식들 (메딕/마린은 움직일 수 있다.) / 부모는 한명
상속 관게 ↑ 으로 표시 / 

 

생성자 법칙
1. 클래스와 이름이 같아야함
2. 반환타입이 없어야한다.
3. 클래스 앞에 public를 붙인다.

 

클래스를 만들었다 = 정보와 기능을 정의할 수있다.
맴버 변수는 어디서든 접근 가능 
지역 변수는 해당메서드가 끝나면 사라진다. / 다른 곳에서 접근 x

 

this - 메모리에 실체화 (인스턴스)가 되지 않으면 사용할 수가 없다.  /


★ 맴버에 무언가 접근을 할 때는 this. 를 다 붙인다. /

해당 인스턴스에 맴버에 접근 (안보인다? private로 되어있을듯! / 맴버 변수 안보인다? -> public으로)

 

참조형식의 기본값은 NULL

 

참조형식 의 주소를 끊고 싶으면  user1 (변수) = null; 해주면 연결이 끊킨다.

 

 

 

 

 

 

반응형

'C# > C#언어' 카테고리의 다른 글

6일차 _ 배열 문제 풀기  (0) 2021.03.15
1주 차 공부내용 정리 _ 형식  (0) 2021.03.15
4일차_클래스 예제연습  (0) 2021.03.11
3일차 _ 메서드 연습 예제  (0) 2021.03.10
3일차_수업_매서드(ReadLine)  (0) 2021.03.10