static - 한 클래스의 객체마다 다르지 않고 고정된 값을 주고 싶을 때
스태틱이 아닌 멤버에서는 스태틱 멤버에 접근이 가능하나 스태틱인 멤버는 스태틱이 아닌멤버에 접근 불가능
public int HP; // INSTANT
public static int MaxHP;
public int GetMaxHP(){ // instant 멤버에서는 static 멤버에 접근 가능
return MaxHP;
}
public static int GetHP() // 불가능
{
reutn HP;
}
[단축키 관련 꿀팁]
* Ctrl + Shift + v 클립보드에 있는 n개를 볼 수 있음 (최근 복사내용)
* 책갈피를 사용해서 이동하는데에 혼선을 줄일 수 있음! 이동할 곳에 꽂아두고 ctrl + k, ctrl + p, n 이렇게 이동하셈
* 함수가 호출 된 곳을 찾고싶으면 shift + f12 눌러서 가고싶은곳 엔터로 찾아서 누르면 됨 !
* 오른쪽키 > using 제거 및 정렬 - 안쓰는 using 지워주고 알파벳 순으로 using을 정렬해줌!
* 주석 넣고 싶을때 /// 을 세개치면 문서화 시킬 수있는 summary 템플릿이 나옴 여기에 함수가 하는 일을 적으셈!
- 코드를 잘 구조화 시켜놔야 이름을 짓고 정의할 수 있음!
* 함수로 만들고 싶은 코드를 블록 쳐놓고 마우스 우클릭 > 빠른 리팩토링 > 메서드 생성 하면 메서드를 생성 할 수 있음!
* 보지않고 싶은 함수를 강제로 접어놓고 싶을때 함수 위에 #region CreateAnswers 그리고 끝부분에 #endregion 하면 비쥬얼 스튜디오를 껐다 켜도 유지가 됨.
* 함수로 추출하고 싶은 코드 드래그 ctrl + . 하고 메서드 추츨
- 유용한 단축키 참고
* 중복된 코드는 만악의 근원!!!
SDK : software development kit
API : Application Programming Interface
Win 32 - microsoft에서 윈도우를 만들기 위한 api - (C)
- ShowMessageBox(....) - c이기때문에 클래스가 없어서 함수로만 묶을 수 밖에없고 어마어마한 함수들이 존재,,,
MFC(C++) - Win32 api에있는 일부를 클래스로 묶어놓은 것
*Winform* - 그리드 기반 ui에 특화되어있음! - ex) excel (C#, .NET)
WPF
- Unity.. cross 플랫폼을 지원하기 때문에 리눅스같은곳에서 애플리케이션을 만든다 하면 고려해 볼만 함.ㅎ
클래스 2 )
관련이 있고 없고가 드러나도록 아예 새로운 타입을 만들자 - 클래스의 진정한 정의
=> 객체지향 프로그래밍의 시작!
TDD - Test - Driven Development, 테스트 주도 개발
먼저 사용할 코드를 만들어 놓고 그에 맞는 클래스를 구현하는게 시스템적인 착오를 줄일 수 있음
answer.Create(); - 여기서 . , () 이 두개는 연산자. ( . : 멤버 호출 연산자)
* indexer
public int this[int index] // indexer
{
get
{
return _numbers[index];
}
}
Answer + Guess = NumberData
[추상클래스]
(NumberContainer class)
이런경우에 경우에 따라 [정답] 혹은 [추측]이 나와야하기때문에 이때는 '가상함수'가 필요
1. exception을 사용하기
2. 일단은 추상함수를 만들자 - 자신은 구현해있지 않지만 내자식은 분명히 구현됨을 알 수 있음!
protected abstract string GetPrefix();
-> c#에서는 멤버중 하나라도 추상함수가 있다면 추상클래스로 만들어주어야함!!!!
public abstract class NumberContainer
{
}
-> 그런데 또 이때 이렇게 추상 클래스로 만들면 상속이 안되기 때문에 추상함수 안을 구현을 해야함!!!! (상속된클래스에서!!) - 이때 override 사용
protected override string GetPrefix()
{
return "[추측]";
}
* 추상 메소드가 아닌 Print()는 그대로 물려받는건데 GetPrefix()는 재산이 아닌 오히려 빚을 받는것임! 왜냐하면 직접 구현해놔야 되기 때문에!! 상속-채권 / 추상-채불
* 클래스를 왜만드는지, 함수를 왜만드는지 정도는 생각을 하고 말할 수 있어야함!
'Archive' 카테고리의 다른 글
0906 10-인터페이스 (0) | 2019.09.06 |
---|---|
0906 09-가상메서드-추상메서드 (0) | 2019.09.06 |
0906 서버프로그래밍 기초3 (0) | 2019.09.06 |
0905 FackCraft (0) | 2019.09.05 |
0904 서버프로그래밍 기초지식 (0) | 2019.09.04 |