본문 바로가기

프로그래밍 언어/Java

Java 문법 정리

변수(Variable)

- 하나의 값을 저장하기 위한 메모리 공간

 

a. 숫자로 시작할 수 없음 

b. _ 와 & 외 특수 문자는 사용할 수 없다.

c. Java 키워드는 사용할 수 없다. 

d. 초기화를 하지 않아도 더미 값이 들어간다. (실제 들어가는 값 = Literal)

자료형(Data Type)

a. 기본형 (1byte = 8bit = 2^8)

 - boolean

 - 정수형: int, short, long (4byte, 2byte, 8byte)

 - 실수형: float, double (4byte, 8byte)

 - char (2byte)

 

b. 참조형

 - Class

 - Interface 

 - Array

 - etc

 

형변환(Type Conversion)

 - 기본 자료형 간 변형

 

a. 묵시 형변환 (자동)

 - 변환하려는 범위가 더 큰 경우

 

b. 명시 형변환(수동)

 - Type Cast 를 통해 범위가 작은 자료형으로 형변환

 

연산자(Operator)

a. 산술 연산자: +, -, *, /, %

b. 대입 연산자: =. ?=(= 앞에 다른 연산자를 추가)

c. 증감 연산자: ++, --

d. 비교 연산자: <, >, <=, >=, ==, !=

e. 논리 연산자: &&, ||, !

f. 비트 연산자: ~, &, |, ^(xor), <<, >>, >>>

g. 3항 연산자:  a > b ? c : d;

h. instanceof: 인스턴스가 오른쪽 객체의 Class 혹은 Interface 를 상속 받았는지

 

조건문

a. if

b. else

c. 3항 연산식

d. switch case

 

반복문

a. while

b. do while

c. for

 - for(초기; 조건; 증감)

 - for(type variable : object) (실제 객체가 아닌 Copy)

 - name : for() (continue, break 시 parameter 로 해당 반복문 명시 종료 가능)

 

제어자(Modifier)

- Class, Method, Variable 에 대한 제어 권한을 나타내는 구분자

 

a. static : 클래스가 메모리에 로드 될 경우 같이 생성, 클래스 내 모든 인스턴스에서 공통으로 사용 가능

b. final: Class 상속 불가, Variable 변경 불가, Method Overriding 불가능(C의 constant)

c. abstract: 추상 Class 선언 시 사용, 인스턴스 생성 불가

 

+ 접근 제어자

Name Same Class Same Package Child Class else
public O O O O
protected O O O X
(default) O O X X
private O X X X

 

Generic

 - Class 의 데이터 타입을 사용자가 직접 명시하는 것

 

ex)  ClassName<E>

 

중괄호에 들어가는 내용은 무엇이 들어가도 관계없으나 아래의 암묵적인 규칙을 따름

<T> Type
<E> Element
<K> Key
<V> Value
<N> Number

 

ClassName<? extends ClassName> 으로 제약을 걸 수 있음

 

Overloading&Overriding

Overloading: Original Method 와 ReturnType or Parameter 가 달라야함

Overriding: 상위 클래스의 Method 상속 받음, 완벽히 동일하지만 기능은 재정의됨

 

Class&Interface

Class: Object 를 정의하는 틀

 - Object 의 상태를 나타내는 Field(=Variable)

 - Object 의 Action 을 나타내는 Method

 - Class 내부에서 Field 와 Method 의 접근, 제어 등을 정의

 

Interface: Object 를 지정하는 틀

 - 지정된 Field(public, static, final)

 - 지정된 Method(public, abstract)

 - 지정된 Method 를 상속받는 Class 는 반드시 Overriding 되어야함

 

상속(Inheritance)

- 하위 객체(자식)가 상위 객체(부모)의 특징을 물려받는 것.

- 부모 객체의 인스턴스는 자식 객체로 생성가능(다형)

 

a. extends(확장)

 - 자식이 부모의 속성을 상속 받기 위해 사용

 - 같은 Class 혹은 Interface 끼리 사용가능 

 - 부모 객체는 오직 1개

 

b. implements(구현)

 - Class 가 Interface 의 지정 객체들을 사용하기 위해 상속

 - Class 와 Interface 사이만 사용가능

 - 다중 상속 가능