객체 지향 프로그래밍이 무엇인가?
: 프로그램의 구현을 시간의 흐름순이 아닌 객체간의 관계와 협력을 기반으로 프로그램 하는 것
프로그래밍: 컴퓨터가 일을 수행하도록 프로그래밍 언어로 명령어 집합(프로그램)을 만드는 일
컴파일 : 프로그래밍 언어를 컴퓨터가 실행 가능한 기계어로 만드는 일
컴파일러 : 기계어로 바꾸어 주는 프로그램
( ex. 자바 컴파일러, gcc )
컴파일러는 작성한 코드(Language Code)를 실행 가능한 파일(Machine Code)로 변환한다.
변수는 값(Data)을 저장할 수 있는 메모리 공간
값은 변할 수 있음
Java는 강형 언어 - 모든 변수의 타입이 컴파일 시에 결정되는 언어
식별자(identifier)는 클래스, 메소드, 변수 등 다양한 대상에 대해 이름이 붙여지는 경우. 그 이름을 뜻 함
하나 이상의 글자로 이루어져야 함
첫번째 글자는 문자이거나 '$', '_'이어야 함
두번째 이후의 글자는 숫자, 문자, '$', '_'이어야 함
'$', '_' 이외의 특수문자 사용 불가능
길이 제한이 없음
키워드는 식별자로 사용할 수 없음
상수 값을 표현하는 단어 true, false, null은 식별자로 사용할 수 없음
상수(常數)란 수식에서 변하지 않는 값을 의미한다.
상수의 선언은
final 상수타입 상수명;
으로 한다.
상수는 대문자로만 구성된 명사로 정하며, 여러 단어로 구성된 이름의 경우 단어 사이에 '_'을 써서 구분한다.
기본형 타입은 가장 기본이 되는 데이터 타입으로서 정수형, 실수형, 문자형, 논리형을 의미한다.
long 타입은 뒤에 알파벳 L을 붙여야 하며, float는 알파벳 F를 붙여야 한다.
character set: 문자를 숫자로 변환한 값의 세트
encoding: 문자가 숫자로 변환되는 것
decoding: 숫자에서 다시 문자로 변환되는 것
ASKII code: 알파벳과 숫자 특수 문자등을 1바이트에 표현하는데 사용하는 문자세트
UNICODE: 전 세계 표준으로 만든 문자 세트
UTF-8: 1바이트에서 4바이트까지 다양하게 문자를 표현할 수 있음
UTF-16: 2바이트로 문자를 표현
컴퓨터 과학 분야에서 리터럴이란, 소스 코드의 고정된 값을 대표하는 용어다.
리터럴은 일종의 값이다. true, false, 10, 11.1, a 등 이런 값 자체를 리터럴이라고 한다. 즉, 프로그램에서 사용하는 숫자, 문자, 논리값을 뜻한다.
리터럴은 상수 풀(constant pool)에 있다.
정수 리터럴은 int 로 실수 리터럴은 double 로 저장된다.
형변환이란, 변수 또는 리터럴의 타입을 다른 타입으로 변환하는 것이다.
크기가 작은 타입을 크기가 더 큰 타입으로 바꿀 때에는 묵시적으로 형을 바꾸어 준다.
int x = 50000;
long y = x;
이를 암묵적 형변환 이라고도 한다.
크기가 더 큰 타입을 작은 타입으로 바꿀 때에는 명시적으로 변환 해주어야 한다.
long x = 50000;
//int y = x; (이렇게 묵시적으로 수행하면 컴파일러는 오류를 발생 시킨다.)
int y = (int) x; (반드시 (타입) 으로 명시적으로 형을 바꾸어 주어야 한다.)
이를 강제 형변환 이라고도 한다.
부호를 결정하는 부호 연산자
산술 연산을 할 수 있는 산술 연산자
1씩 증가하거나 감소 시키는 증감연산자
피연산자가 1개인 연산자는 단항 연산자
피연산자 하나로 연산할 수 없는 연산자는 이항 연산자
int x = 3;
int y = ++x; // 먼저 더하고 대입
// x는 4, y는 4
int z = x++; // 먼저 대입하고 더함
// x는 5, z는 4
== , != , < , > , <= , >=
비교 연산자의 결과는 boolean이다.
i += 10; // i = i + 10;
최우선연산자 ( ., [], () )
단항연산자 ( ++,--,!,~,+/- )
( 부정,bit변환>부호>증감 )
( ++,--는 전위인지 후위인지가 중요! )
산술연산자 ( *,/,%,+,-,shift)
시프트연산자 ( >>,<<,>>> )
비교연산자 ( >,<,>=,<=,==,!= )
비트연산자 ( &,|,,~ )
논리연산자 ( &&, ||, ! )
( AND가 OR보다 우선 )
삼항연산자 (조건식) ? :
대입연산자 ( =,*=,/=,%=,+=,-= )