윈도우즈프로그래밍#3
LeeMir, 11 March 2021
언어 구조
어휘 구조
-
어휘
- 프로그램을 구성하고 있는 기본 소자
- 토큰(token)이라 부름
- 문법적으로 의미있는 최소 단위
-
토큰의 종류
- 특수형태
- 지정어 : abstract, asn, …, while
- 연산자 : +, =, *, /, …, »
- 구분자 : , : . () {} []
- 일반형태
- 명칭(변수 이름) : sum, stk, ptr, …
- 리터럴(상수) : 526, 5.53, 5.97e24, ‘c’, “string”
-
지정어(keyword)
- 프로그래밍 언어 설계시에 그 기능과 용도가 이미 정의되어 있는 단어
- 변수 이름으로 사용하면 안됨
-
명칭
-
명칭의 의미
- 자료의 항목(변수, 상수, 배열, 클래스, 메소드, 레이블)을 식별하기 위하여 붙이는 이름
-
명칭의 형태
- 문자로 시작(통상 메소드는 대문자로 시작)
- 대소문자 구분
- ’@’기호 붙이면 지정어를 명칭으로 사용 가능
- ex)
int @int = 10
- ex)
- 띄어쓰기 불가
- 한글도 사용 가능
- ex)
int 변수 = 10;
-
-
자바 문자 집합(character set)
- 유니코드(Unicode)
- 문자 표현 : 16 Bit
- 세계 모든 언어 표현
static readonly double π = 3.1415926535897
-
@ 기호(at sign)
-
지정어와 함께 사용할 때 지정어와 구분
-
일반 명칭과 함께 사용할 때 동일한 명칭으로 인식
-
int @int = 10; // O (int != @int)
int i, @i; // X (i = @i)
-
-
-
리터럴
-
자신의 표기법이 곧 자신의 값이 되는 상수
-
종류
- 정수형 상수 : 10진수, 16진수
- 실수형 상수 : 고정소수점, 부동소수점
- 부울 상수 : true, false
- 문자 상수
- 스트링 상수
- 객체 참조 리터럴 : nul
-
정수형 상수
- 10진수와 16진수(0x)가 있음
- C#에서는 8진수를 지원하지 않음
- int형(default) : 32비트, long형 : 64비트 (접미어 -L, -I를 붙여야함)
- 65535L : long형 숫자 상수 65535
-
실수형 상수
- 지수(exponent) 부분의 유무에 따라
- 고정소수점 수 : 1.414, 3.1415924, 0.00001
- 부동소수점 수 : 1.1414e01, 0.1414E1, 5E-5f
- 용도에 따라
- float(32 bit), double (64 bit) : 과학 연산
- decimal(128 bit) : 회계 연산
- 정밀도(precision)에 따라
- float 형 : 접미어 -f, -F
- double 형 : default, 접미어 -d, -D
- decimal 형 : 접미어 -m, -M
- 지수(exponent) 부분의 유무에 따라
-
부울형 상수
- binary value
- false, true(절대 정수값 0과 1로 상호 변환되지 않음)
-
문자 상수
-
단일 인용부호(single quote) 사이에 표현
- ex) ‘a’, ‘A’
-
escape sequence : 특수한 문자를 표현
-
\’ : single quote
\” : double quote
\0 : null
\b : backspace
\f : form feed
\n : new line
\r : carriage return
\t : horizontal tab
-
-
-
스트링 상수
-
이중 인용부호(double quote) 사이에 표현된 스트링
-
System.String
클래스의 객체로 취급 -
축어적 스트링 상수(verbatim string literal)
-
스트링 상수 내에 이스케이프 문자열 표현
-
’@’ 기호와 함께 스트링 상수 기술(이스케이프 문자열 무시)
-
string a = “hello\t world”; // hello world
string b = “hello \\t world”; // hello \t world
string c = @”hello \t world”; // hello \t world
-
-
-
-
객체 참조 리터럴 (object reference)
- 널 (null)
- 아무 객체도 가리키지 않는 상태
- 부적당하거나 객체를 생성할 수 없는 경우 사용
- 초기화에 사용
-
-
주석
- 프로그램을 설명하기 위한 문장
- 프로그램의 실행에는 무관
- 프로그램 유지보수에 중요
- 주석의 종류
- // comment
- //부터 새로운 줄 전까지 주석으로 간주
- ex)
int size = 100; //size는 100으로 초기화
- /* comment */
- /*와 다음 */ 사이의 모든 문자들은 주석으로 간주
- 주석문 안에서 또 다른 주석이 포함될 수 없음
- /// comment
- /// 다음의 문자들은 주석으로 간주
- C# 프로그램에 대한 웹 보고서를 작성하는데 사용하는 방법
- XML 태그를 이용하여 기술
- 컴파일 시에 /doc 옵션을 사용하여 XML 문서 생성
- // comment
- 프로그램을 설명하기 위한 문장
자료형
-
자료형의 의미
- 자료 객체가 갖는 형으로 구조 및 개념, 값의 범위, 연산 등을 정의
-
자료형의 종류
- 값형 : 숫자형(정수형, 실수형), 문자형, 논리형, 열거형, 구조체형
- 참조형 : 클래스형, 인터페이스형, 델리게이트형, 배열형
-
값형
- 정수형
- 부호 있는 정수형(signed) : byte, int, long
- 부호 없는 정수형(unsigned) : ubyte, uint, ulong
- 실수형
- 실수의 표현 방법과 실수 연산은 IEEE 754 표준을 따름
- 실수형의 종류
- 부동 소수점
- float(32비트), double(64비트)
- 10진 자료형(decimal)
- 고도의 정밀도를 요하는 계산에 이용(회계나 금융관련 계산)
- 28 유효 자릿수
- 효율성이 떨어짐(구조체로 접근하기 때문)
- 부동 소수점
- 문자형
- 16비트 유니코드(Unicode)를 사용
- 부울형
- true와 false 중 하나의 값만을 가지는 자료형
- 숫자 값을 가질 수 없음
- 다른 자료형으로 변환 불가
- 자료형에 대한 초기값
- 기본적으로 대부분의 선언된 변수가 컴파일러에 의해 묵시적으로 갖게 되는 초기 값으로 0을 가짐
- char형은 Null문자가 초기 값, boolean형은 false가 초기 값임
- 열거형(enum)
- 서로 관련 있는 상수들의 모음을 심볼릭한 명칭의 집합으로 정의한 것
- 기호상수
- 집합의 원소로 기술된 명칭
- 순서값
- 집합에 명시된 순서에 따라 0부터 부여된 값
- 정수형으로 교환하여 사용할 수 있다
- 정수형
-
참조형
-
배열
-
배열형의 의미
- 같은 형의 여러 개의 값을 저장하는데 사용하는 자료형
- 순서가 있는 원소들의 모임
-
배열을 사용하기 위한 과정
-
배열 선언
-
배열이름, 차원, 그리고 원소의 형 등을 명시
-
int[] vector; // 1차원 배열
short[,] matrix; // 2차원 배열
object[] myArray;
int[] initArray = {0,1,2,3,4,5}; // 선언과 함께 초기값 부여
-
-
배열 객체 생성
-
new 연산자를 통해서 동적으로 생성
-
배열의 객체를 생성함으로써 배열 이름은 특정 배열 객체를 가리킴
-
vector = new int[100];
matrix = new short[10,100];
myArray = new Point[3];
-
-
배열에 값 저장
- 배열의 인덱스는 0부터 시작
- Length 프로퍼티 통한 배열의 길이 접근(vector.Length)
- 인덱스 범위 초과 : IndexOutOfRangeException 발생
-
-
배열의 배열
- 배열의 원소가 다시 배열이 되는 배열
- 다차원 배열과 구분
- 각 원소에 해당하는 배열이 서로 다른 크기를 가질 수 있다.
int[][] arrayOfArray;
-
-
스트링형
-
스트링형의 의미
- 문자열을 표현하기 위해 사용하는 자료형
- System.String 클래스형과 동일한 자료형
-
StringBuilder 클래스
-
효율적으로 스트링을 다루기 위한 클래스
-
객체에 저장된 내용을 임의로 변경 가능
-
스트링 중간에 삽입, 추가시키는 다양한 메소드 제공
-
-
-