자바의 구성요소
<자바의 구성요소>
1. 클래스와 객체
- 클래스(class): 객체지향에서 객체를 정의하는 사용하는 프로그래밍 요소로 필드들과 메소드들로 구성
- 필드(field): 객체의 특징과 상태를 저장할 수 있는 데이터들
- 메소드(method): 객체가 수행할 수 있는 동작을 정의해 놓은 실행코드
- 객체(object): 작업을 수행하는 프로그래밍 실체로, new 예약어를 이용하여 클래스로부터 객체를 생성함
2. 문장(statement)
- 정의: 알고리즘을 프로그래밍 언어로 기술한 것으로 제어 흐름 관련 예약어와 식과 세미콜론(;)으로 구성
- 종류: 배정문, 혼합문, 제어문(조건문, 반복문, 분기문), 예외처리문, 표준입출력문, 동기화문
- 식(expression): 새로운 값을 지정하거나 변수를 수정하는 데 사용되는 변수, 리터럴, 연산자들의 모임으로, 연산자에 따라 산술식, 관계식, 논리식 등으로 구분
3. 어휘(tokens)
- 정의: 문법적으로 의미 있는 프로그램을 구성하는 최소 단위, 문장을 구성하는 요소. 어휘들로 구성된 문장(statement), 메서드(method), 클래스(class)을 고수준의 어휘라고 하고, 처리의 단위가 됨. 시스템 정의형(system-defined) 어휘와 사용자 정의형(user-defined) 어휘로 나뉨
- system-defined tokens: 예약어, 연산자, 공백문자, 주석
- user-defined tokens: 식별자, 리터럴
- 예약어(reserved words): 언어 설계 시 기능과 용도가 예약된 단어로, 지정어 혹은 키워드라고도 함. 예약어는 다른 요소로 사용할 수 없고, 소문자가 강제됨
- 연산자(operator): 언어 설계 시 특수한 연산을 수행하도록 예약된 단어
- 구분자/공백 문자(delimiter/white space): 어휘들을 구분하여 정확한 컴파일이 가능하도록 도와주는 프로그래밍 요소로, 컴파일러가 올바른 바이트 코드를 생성할 수 있도록 항목들을 구별하는데 사용되는 기호
- 주석(comment): 프로그램을 설명하기 위해 소스 프로그램 내에 기술하는 문장으로, 컴파일러에 의해서 무시되어 프로그램 실행에서 배제
- 식별자(identifier): 프로그래머가 프로그램을 구성하는 요소를 식별하기 위해 부여한 이름
- 식별자 생성 시 규칙:
(1)첫 글자는 문자, _ 또는 $로만 시작 가능(대부분 문자로 시작)
(2)중간에 문자, 숫자 모두 가능하고 길이 제한 없음
(3)공백문자나 _, $를 제외한 특수문자 사용 불가
(4)대소문자를 구분하고, 예약어는 사용이 불가능함
4.. 변수(variable)
- 정의: 자료가 저장된 주소를 식별하기 위해 부여된 이름으로, 실행시간에 그 값이 결정되고, 실행시간 동안에 변경 가능한 요소
- 자료형에 따른 분류
(1)기본형 변수: 변수의 주소가 자료가 저장된 공간의 주소와 동일
(2)참조형 변수: 변수는 참조 대상에 대한 주소를 가지고 있음. 즉, 참조 변수의 저장위치와 참조 대상의 위치가 다름
- 유효범위에 따른 분류
(1)지역변수: 메소드 안에서 선언된 변수를 의미하며, 지역 변수에 저장된 값은 메소드 안에서 만 유효
(2)인스턴스 변수, 멤버 변수: 필드를 의미하고, 메소드 안에서 선언된 것이 아니라 클래스 안에서 선언된 변수를 의미. 해당 객체가 실행되는 동안에는 유효
(3)클래스 변수, 정적 변수: static 예약어를 갖는 변수를 의미하고, 클래스로 생성되는 객체들이 공유할 목적으로 사용. 객체의 생성에 관계없이 클래스 접근이 시작되면서 프로그램이 종료될 때까지 유효
- 상수 변수: 소스 작성시 그 값이 결정되고, 실행시간 동안에 그 값이 변하지 않는 요소
5. 리터럴(literal)
- 정의: 소스 프로그램에 표현된 모습과 그 값이 일치하는 요소로, 소스 작성시 그 값이 결정되고, 실행시간 동안에 그 값이 불변
- 종류: 정수 리터럴, 실수 리터럴, 논리 리터럴, 문자 리터럴, 문자열 리터럴, 객체 참조 리터럴
- 실수(floating-point) 리터럴: 부동소수점 표현 시에는 묵시적으로 double형 자료형을 사용
- 문자(character) 리터럴: 단일 인용부호 사이에 표현된 문자를 의미한다. 문자의 값은 문자 집합의 수치값을 의미하며, 16비트 unicode를 사용
- escape sequence: 문자 리터럴의 일종으로, 인쇄할 수 없는 문자나 특수 문자를 표현
- 문자열(string) 리터럴: ""에 둘러싸인 문자열을 의미. Null도 문자열 리터럴의 일종
참고자료: 자바 프로그래밍 강의 - 유응구 교수님