C# (36) 썸네일형 리스트형 전위연산자 후위연산자? 자기객관화를 위해서 응시해 보았던 코딩테스트에 나온 연산자 문제이다.여기서 출력되는 값과 그 이유는 무엇일까? 내가 제출했던 답안이다. 틀렸다. 왜냐하면 전위 연산자 개념과 후위 연산자 개념을 정확히 알고 있지 못했기 때문이다 ++y 는 전위 증가 연산자이므로 y가 먼저 1 증가되고, 그 후에 연산이 수행x++ 는 후위 증가 연산자이므로 x의 현재 값인 10을 출력하고 나서 x를 1 증가 따라서 출력되는 값은 10이 되고, 출력 직후에 x는 11이 된다 이런 경험을 해보니 아직 기본이 한참 부족하다고 느껴지는 시간이었다 클래스에 대하여 더 알아보기 클래스에 대하여 알아보려 했더니 뜬금 없는 그림이 나왔다여기에 등장한 사람들은 누구일까? 왼쪽에 하늘을 가리키는 사람은 플라톤, 그리고 정면을 가리키는 사람은 아리스토텔레스학문의 원천이라고 할 수 있는 사람들이다 컴퓨터의 영역을 탄생시킨 사람들은 서양인이다그리고 컴퓨터 뿐만이 아닌, 대다수 학문의 시초는 서양이라고 볼 수 있다그러므로 우리가 배우는 학문에 대하여 이해하고 나아가려면서양인들의 철학 및 생각기반을 이해하고 중요하게 여길 필요가 있다 결국, 우리가 사용하고 있는 클래스도 시작점은 이 곳이다. 플라톤이 가리키는 하늘, 굉장히 추상적인 세계이며 우리가 흔히 말하는 이데야라고 하는 세계이다우리가 사용하는 클래스는 플라톤의 철학을 받아들였으며아리스토텔레스의 철학을 받아들인 것이 프로토타입이다 사과사과.. 추상클래스 실전에서 사용해보기 추상클래스를 사용하여Main / LoginScene / StartScene / StatusScene이 세 가지 스크립트에 정보를 저장하는 것을 해봤다. 이게 왜 어려웠을까? 기존에는 단순히 Character 클래스에서 정보를 전달하면 되었지만,이번에 어려움을 겪은 부분은 직업을 선택하도록 설계하는 과정에서데이터를 인수 인계가 원활하도록 하는 부분이었다. 직업을 선택한다는 것은 Character 클래스로부터 파생시켜 Warrior 와 Wizard 로 각각의 클래스에 상속시킴으로써객체 지향 프로그래밍을 한다는 것에 의의가 있다는 점이다.즉, Character 클래스를 추상클래스로 전환시켜서 사용한다고 할 수 있다. [ 구성 ]메인에서 메서드 호출 ㅡ> 로그인 화면 ㅡ> 게임 시작 메뉴 ㅡ> 캐릭터 .. 예외 처리 [ 예외 처리 ]예외 상황에 대비하여 프로그램을 안정적으로 유지오류 상황을 적절히 처리하고, 프로그램을 계속 실행프로그램의 안정성을 높이고 디버깅을 용이C#에서는 try-catch 블록을 사용하여 예외 처리를 수행try 블록 내에서 예외가 발생할 수 있는 코드를 작성하고, catch 블록에서 예외를 처리 catch 블록의 우선순위catch 블록은 위에서부터 순서대로 실행되며, 예외 타입에 해당하는 첫 번째 catch 블록이 실행예외 타입은 상속 관계에 있는 경우 상위 예외 타입의 catch 블록이 먼저 실행 finally 블록의 역할과 사용법finally 블록은 예외 발생 여부와 상관없이 항상 실행되는 코드 블록finally 블록은 예외 처리의 마지막 단계로, 예외 발생 시.. 인터페이스 , 열거형 enums [ 인터페이스 ]클래스는 단일 상속만을 지원하지만, 인터페이스는 다중 상속을 지원 추상적인 동작만 정의하고, 구현을 갖지 않는다 [ Enums ]서로 관련된 상수들의 집합을 정의할 때 사용열거형의 각 상수는 정수 값으로 지정 제너릭 [ 제너릭 ]클래스나 메서드를 일반화시켜 다양한 자료형에 대응할 수 있는 기능C#에서는 형태의 키워드를 이용하여 제너릭을 선언제너릭 클래스나 메서드에서 사용할 자료형은 선언 시점이 아닌 사용 시점에 결정제너릭 클래스나 메서드를 사용할 때는 대신 구체적인 자료형을 사용 제너릭을 두개 이상 사용하는 경우 클래스의 상속 및 다형성 / 추상 클래스 [ 상속 ]기존의 클래스(상위 클래스) 를 확장하거나 재사용하여 새로운 클래스(하위 클래스) 를 생성자식 클래스는 부모 클래스의 멤버(필드, 메서드, 프로퍼티 등)를 상속받아 사용C#에서 다중 상속은 불가능 [ 다형성 ]다형성은 가상 메서드와 같은 의미로 볼 수 있다.부모 클래스에서 정의되고 자식 클래스에서 재정의할 수 있는 메서드가상 메서드는 virtual 키워드를 사용하여 선언되며, 자식 클래스에서 필요에 따라 override로 재정의될 수 있다. [ 오버라이딩 ]부모 클래스에서 이미 정의된 메서드를 자식 클래스에서 재정의하는 것을 의미 ( 위 사진에서 사용 )이는 상속 관계에 있는 클래스 간에 발생하며, 메서드의 이름, 매개변수 및 반환타입이 동일해야만 함오버라이딩을 통해 자식 클래스는 부모 클래스.. 틱택토 - 턴제 형식 A턴과 B턴으로 나눴으며A턴은 동그라미를 사용하고 B턴은 엑스를 사용한다 짜증났던 부분잘못된 위치를 입력하면 다시 입력시키도록 유도하기 위해서 else로 처리하려 했는데문구가 한 번만 출력되는게 아니라 9번 나왔다.이 코드 블록에서 for 루프는 사용자가 입력한 위치를 게임 보드의 위치와 비교하여 유효한 위치인지를 확인한다.만약 사용자가 잘못된 위치를 입력했다면,즉 사용자 입력이 게임 보드의 어떤 위치와도 일치하지 않는 경우에 해당하는 상황을 처리하기 위해 사용한다.여기서 else if (i == arr.Length - 1)은 for 루프에서 현재 반복이 배열 arr의 마지막 요소에 도달했을 때를 나타낸다.즉, i가 arr.Length - 1과 같을 때라고 하면 9번출력되던 문제를 1번만 출력되게 설정할.. 클래스 & 객체지향 프로그래밍 [ 객체지향 프로그래밍 OOP ]캡슐화 : 관련된 데이터와 기능을 하나의 단위로 묶는 것상속 : 기존의 클래스를 확장하여 새로운 클래스를 만드는 메커니즘다형성 : 하나의 인터페이스나 기능을 다양한 방식으로 구현하거나 사용할 수 있는 능력추상화 : 복잡한 시스템이나 개념을 단순화하여 필요한 기능에 집중객체 : 클래스로부터 생성된 실체 [ 클래스 ]데이터와 메서드를 하나로 묶은 사용자 정의 타입 [ 필드 / 메서드 ] [ 생성자 / 소멸자 ] [ 프로퍼티 ] 객체의 필드에 직접 접근하지 않고, 간접적으로 값을 설정하거나 읽을 수 있도록 함필드와 마찬가지로 객체의 상태를 나타내는 데이터 역할을 하지만, 외부에서 접근할 때 추가적인 로직을 수행 캐스팅 사용 예시 ④ C# 캐스팅 (tistory.com) ④ C# 캐스팅캐스팅 = 형변환 변수를 사용할때 사용하고 있는 자료의 형태를 변환 해야하는 상황이 나올 수 있다. 예) string → int, string → bool 여러가지의 자료형이 있는 만큼 다양한 상황에서의 형변환이 있yoonwoojoo.tistory.com int.pase int.trypase 우주의나라 클래스 맛보기 및 TIL 처음으로 클래스라는 것을 사용해 보았다.세분화하여 작업하기 때문에 확실히 가독성이 좋고 효율적이다.하지만 하드코딩으로만 코딩해와서 생각나는데로 적으면서 내려갔었던거랑은 달리클래스를 사용하게되니 각각의 클래스별로 정상적으로 기능하고 서로 호환될 수 있도록 시나리오를 상정하는 부분들이 낯설다.자주 애용해왔던 string input = ConsoleReadLine(); 에서 if(string == input) 으로 이어지는 콤보대신에 새로운 클래스에 해당 기능을 저장해놓고 case를 사용하는 식으로 하니 간편하였다.위의 코드는 string을 사용하는 문자열이지만 정수를 사용하는 int같은경우로 만드려면if ( int.tryparse(~~~,out @) 과 같은 형식으로 @을 리턴값으로 반환하면 된다. 숫자 맞추기 게임 0부터 100까지의 숫자 값을 자료형 int를 사용하여 배열형식으로 만들었고자료형 int를 사용한 새로운 변수 x를 만든다음에 배열에 있는 숫자값 중에 랜덤하게 하나를 선택하도록 설정 string input = Console.ReadLine(); 으로 입력창을 구성 입력변수 input을 x와 비교하려면 일단 string으로 되어있어서 캐스팅을 해야했는데기존에 계속사용해왔던 int.parse 를 활용하는 시나리오를 상정하였으나 코드를 작성하는데 어려움이 생겼다.그래서 한번도 사용해본적 없던 int.tryparse를 활용하고 out 시킨 변수는 string이 아닌 int형이므로이 out 시킨 변수를 x와 비교하는것이 가능하게 되었고 이에 따라 부등호를 사용하기위한 조건문을 수행하였다.처음으로 실전에서 트라이.. 이전 1 2 3 다음