피곤핑
코딩일탈
피곤핑
전체 방문자
오늘
어제
  • 분류 전체보기
    • Kotlin & Java
    • Spring
      • Spring Security
      • Spring
    • 네트워크
    • JavaScript & Node js
    • Docker
    • Python3
    • Unity
    • 딥러닝
    • 객체지향프로그래밍
    • Error 보고서
    • 나의 이야기 & 회고
    • HTML & CSS
    • Archive
    • 독서

블로그 메뉴

  • 홈
  • 방명록

공지사항

인기 글

태그

  • 코딩테스트준비
  • 항해99
  • TiL
  • JavaScript
  • 티스토리챌린지
  • 오블완
  • 개발자취업
  • Client
  • 99클럽
  • nodejs

최근 댓글

hELLO · Designed By 정상우.
피곤핑

코딩일탈

0905 서버프로그래밍 기초 2
Archive

0905 서버프로그래밍 기초 2

2019. 9. 5. 13:55

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 + . 하고 메서드 추츨 

 

 - 유용한 단축키 참고 

https://shjz.tistory.com/32


* 중복된 코드는 만악의 근원!!! 

 

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
    'Archive' 카테고리의 다른 글
    • 0906 09-가상메서드-추상메서드
    • 0906 서버프로그래밍 기초3
    • 0905 FackCraft
    • 0904 서버프로그래밍 기초지식
    피곤핑
    피곤핑

    티스토리툴바