본문으로 바로가기

2020/07/15 C#

category 스마트팩토리/C# 2020. 7. 15. 18:30

여기서 세가지가 비슷하다 

내려가면 갈수록 한줄이 추가 되는 형식이다. 

이런 형식은 중복이 많이 된다. 그래서 중복을 방지하고자 초기화 목록을 사용한다

this()를 사용해서 초기화 목록을 사용한다.

this("","","")은 내말고 this를 호출하라는 뜻이다.

맨 밑에 있는 것을 호출한다는 뜻이다.

this()안에 ""과 null은 같은 거다.

 

Tip

생성자는 여러가지 타입이 있을수 있다.
허나 소멸자는 타입이 하나 밖에 없다.

생성자가 디폴트 생성자가 없으면 자동으로 생성해준다.
허나 하나라도 생성자를 만들게 되면 자동으로 만드는 기능은 없어진다.

여기서

값을 읽어오는 방법 2가지

acar.SetName("람보르니");        /     acar.name = "람보르니";

값을 넣는 방법 2가지
name = acar.GetName()          /      name = acer.name;

 

데이터는 직접적으로 노출 시키지 않는다.

다른 사람이 수정할수 있기에 때문이다.
그래서 메소드를 만들어서 간접적으로 바꿀수 있게 한다.
위에 그림이 보통적인 방법이다.

위에서 데이터 변환을 위해서 매일매일 get set을 사용하기에 불편하니
프로퍼티를 사용한다. 위에 것이 프로퍼티이다.

 

const int iNum1 = 10;   const을 쓰면 값을 넣어줘야 한다. const는  수정 여지 없음
readonly int iNUm2;     초반에 바꿀수 있는 여지가 있다. readonly는 수정 여지 있음

readonly은 생성자에 들어가면 그때 한번 바꿀수 있다.

 

Parent생성자가 생기고 Child 생성자가 그위에 쌓이니 치울때도 Child를 먼저 소멸 시키고 Parent를 소멸시키기에

위와 같이 나온다.

 

base는 상위 클래스에서 가져올때 사용하는 단어이다.

this는 본인의 클래스에서만 사용한다는 뜻이다.

 

public Child()라고 적으면 컴파일러가 public Child()  : base()를 넣어서 해준다(자동으로)

 

화살표 받는 쪽이 부모쪽이다. 

 

위에 꺼는 객체 참조변수를 통해서 한것

 

위에꺼는 객체로 판별한다.

 

객체 참조변수가 어떤것으로 선언 되었는지에 따라 달라진다. 

virtuald을 사용하게 되면 객체 기반으로 돌리겠다는 뜻
안쓰게 되면 객체참조변수로 확인을 한다.

밑에 그려 놓은것을 보면 이해가 더 쉬울것이다.

 

좀 더 보광된 설명

객체참조 변수로 하게 되면 무조건 그 객체참조 변수만을 호출 한다 
다른 변수를 호출할수 없다는 단점이 발생한다 
그것을 보완하기 위해서 virtual을 사용한다. 
이렇게 virtual을 사용하면 그 객체를 보고 판단하기에 위와 같은  
단점을 해소 할수 있다. 

 

public new void Name()라고 쓰게 되면 위에 있는 것과 상관이 없는 새로운 것을 사용한다.
아무것도 안쓰게 되면 컴파일러가 new로 간주한다. 
opublic override void Name()은 부모것을 새로 만들어 쓰게 될떄에는 override을 사용한다
둘중( new, override) 하나는 사용해야 한다 

string은 수정할수가 없다.

'스마트팩토리 > C#' 카테고리의 다른 글

2020/07/23~24 C#  (0) 2020.07.23
2020/7/22 C#  (0) 2020.07.22
2020/07/01 C#  (0) 2020.07.01
2020/06/30 C#  (0) 2020.06.30
2020/06/29 C#  (0) 2020.06.29