2021년 4월 15일 목요일

Visual Studio C# Day_05

 

Visual Studio C# Day_05

[class 01 ~ 05 C# 구현]
클래스 예제풀이 C#으로 구현 및 정리

20210415_20615034


과제_코드01_ClassNStruct




과제_코드02_FieldNConst




과제_코드03_staticMethod




과제_코드04_Constructor




과제_코드05_Property








ㅡㅡ정리ㅡㅡ

[ 구조체와 클래스 ]
01. C#에서는 구조체도 변수와 함수를 포함할 수 있으므로 구조체와 클래스의 구분이 없다.
02. 가장 큰 차이점
  구조체 = 값형 데이터. / 클래스 = 참조형 데이터, 객체 생성시 new 키워드가 필요하다.

​[ 값형과 참조형의 차이점 ]
01. Struct = 객체를 그냥 생성해도 된다.
   ex) DateStruct sDay;
02. Class = 객체를 생성시 new 키워드가 꼭 필요하다.
   ex) DateClass cDay = new DateClass();
03. sDay는 Stack이라는 영역에 데이터를 가지고 있고 cDay는 Heap영역에 데이터를 가지고 있으며 Stack 영역에는 주소값만 가지고 있다.
04. Stack 영역은 실제 사용하는 데이터들이 저장되어 있다.
05. Heap 영역은 참조형 변수에 의해 만들어진 데이터가 저장되어 있다.

[ ​클래스의 멤버, 필드와 상수 ]
01. 필드 : 클래스 또는 구조체에서 직접 선언되는 모든 형식의 변수. 필드는 기본 제공 숫자형식 또는 다른 클래스의 인스턴스일 수 있다.
02. 상수 : 값이 컴파일 시간에 설정되며 변경할 수 없는 필드나 속성이다.
03. 메소드 : 클래스가 수행하는 작업을 정의한다. 입력으로 매개변수를 사용할 수 있으며, 매개변수를 통해 출력 데이터를 반환할 수 있다. 또 매개변수를 통하지 않고 직접 값을 반환할 수도 있다.
04. 생성자 : 객체를 처음 만들 때 호출되는 메소드. 객체의 데이터를 초기화하는데 사용된다. 

[ ​메소드의 호출 ]
Date  a  =  new  Date();   // 객체의 생성
a.SetYear(2020);
Console.WriteLine(a.GetYear());
a.PrintDate();

[ ​스태틱 메소드 ]
​-Static Method(클래스 메소드) ->  스태틱 필드도 똑같다
-static 키워드를 갖는 메소드
​-객체를 생성하지 않고 사용
-클래스명.메소드()

[ ​​대표적인 클래스의 예 ]
01. Random 클래스 
 Random r = new Random();    ->    객체 이름으로 사용하는 인스턴스 메소드
02. Math 클래스 
 double x = Math.Sin();    ->    클래스 이름으로 사용하는 스태틱 메소드

[ ​캡슐화의 목적 ]
잘못된 값으로 설정되는 것을 방지 

[ ​생성자 메소드 ]
01. 객체가 만들어지면서 수행하는 작업을 포함 
02. 클래스의 이름과 같고, 리턴값이 없음, 중복이 가능.

[ ​속성(Property) ]
01. 캡슐화를 위해 모든 필드에 Set..() 메소드와 Get..() 메소드를 만드는 것은 코딩이 길어지게 됨.
02. 이를  방지하기 위해 속성을 사용.
03. 속성은 자동완성기능을 사용하여 만들 수 있음.








댓글 없음:

댓글 쓰기