본문 바로가기
프로그래밍 언어/Java

Java ) 2. 기본 문법(1) - 식별자와 자료형, 제어문

by nomfang 2021. 3. 16.
728x90
반응형

식별자

  • 클래스, 변수, 메소드, 레이블 등의 이름
  • 프로그래머가 작명함

작명 규칙

  • 대소문자 구분
  • 길이 제한 없음
  • 영문 대소문자, 한글, 숫자, _, $ 등 사용
  • 숫자로 시작할 수 없음
  • 키워드, boolean 값, null 불가

식별자를 만들 때의 관례

  • 클래스 : 첫 글자와 단어의 첫 글자는 대문자, 나머지 소문자 (카멜 표기법)
  • 메소드, 변수(필드) : 위와 같으나 첫 글자가 소문자
  • 상수 : 모든 문자를 대문자로 표기하고, 단어 사이에 '_'를 넣어 구분
    -> static final int : 상수
  • 변수의 경우 자료형을 표기하기 위한 접두어를 붙이기도 함 (헝가리안 표기 법)

키워드

  • 의미가 미리 정해진 단어
  • 프로그램에서 정해진 의미로만 사용해야함 (변수명으로 사용 불가)

자료형

변수와 자료형

  • 변수를 선언할 때, 저장되는 값의 자료형 선언
  • 메소드 선언 시 , 반환 값의 자료형을 선언
  • 자료형에 따라 적용 가능한 연산이 다르다

변수의 종류

  • 인스턴스 변수 : g1.e = 80; 일 때 .e에 해당하는 필드
  • 클래스 변수 : static으로 정의한 클래스 내부 필드

변수의 사용 범위

지역 변수와 파라미터

  • 선언된 곳부터 해당 블록이 종료될 때 까지 유효함
    -> 메소드가 실행될 때 생성, 끝나면 없어진다
  • 지역변수는 초기값을 지정한 후 사용해야함 (초기값을 설정하지 않을 시 0으로 초기화 됨)
  • 지역변수 선언에서 접근 제어자를 사용하지 않음 (접근 제어자 - 어디에서 사용될 수 있는지)
  • 데이터 필드 (인스턴스 변수, 클래스 변수)
  • 선언된 클래스 내부에서 사용 가능
  • 클래스 외부에서의 사용 여부는 접근 제어자(access modifier)에 따라 다르다

자바의 기본 자료형

리터럴

상수

  • 리터럴(실제 데이터 값) 또는 값이 변하지 않는 변수
  • 예 : final int nConst = 3; (선언 시 초기 값을 지정

정수형 리터럴

  • byte, short, int, long
  • 소문자 l이나 대문자 L로 끝나면 long, 나머지는 int
    -> byte와 short는 허용 범위 안에서 int와 호환됨
  • 26L, 26, 0b11010(2진수), 032(8진수), 0x1a(16진수)

실수형 리터럴

  • 소수점이 있는 숫자
  • f나 F로 끝나면 float형, 나머지는 double형
  • 123.4f , 123.4, 1.234e2

문자형 리터럴

  • 1개의 문자를 표현하고 16비트 유니코드로 인코딩됨
  • 단일 따옴표를 사용하고 유니코드 사용 가능
    -> '\u0000''\uFFFF'
    -> 0
    65536의 수와 호환됨
  • (char) 65, 'A', '\u0041

참조형 (C에서의 포인터 같은)

  • 기본형을 제외한 모든 자료형
    -> 참조 값(주소)을 가지는 자료형
  • 대표적으로 배열, 클래스 등이 있다
    -> int anArray[];
    -> String szStr;
  • 참조형 변수는 저장 공간에 참조 값을 저장
    -> 실제 데이터는 별도의 공간에 저장됨
  • 기본형 변수는 저장 공간에 값 자체를 저장함

형변환

묵시적 자료형의 변환

  • 작은 타입에서 큰 타입으로는 자동 형변환 가능

명시적 자료형의 변환

  • 큰 타입에서 작은 타입으로 변환할 때는 명시적 형변환이 필요
    -> 예 : (자료형)피연산자

연산자와 제어문

연산자의 종류

  • 비트이동 : >> 두 개는 양수일 경우 0으로 음수는 1로 채우고 >>> 세 개는 상관 없이 0으로 채움

명령 행 매개 변수

  • 프로그램을 실행할 때 전달하는 인자
  • main() 함수에 전달되는 인자
  • 문자열로 전달됨

문장의 종류

  • 수식문
  • 변수 선언문
  • 제어문
  • 기타
    • 블록문 -> {}
    • 레이블문 -> LABEL : 문장 )
    • 예외처리문 -> try-catch
    • 동기화문 -> synchronized

제어문

  • 프로그램의 실행은 기본적으로 위에서 아래로 순차 실행됨
  • 제어문은 실행 흐름을 바꾼다

제어문의 종류

  • 선택문 : if, switch
  • 반복문 : for, while, do-while
  • 점프문(분기문) : return, break, continue

선택문

  • if
  • if else
    -> else는 자기 짝이 없는 가장 가까운 if와 짝을 이룬다
  • switch
    -> 다중 선택구조
    -> case 조건은 정수와 호환되거나 String 값
    -> default는 생략 가능
    -> case조건마다 break를 사용
    • 배열이나 컬렉션의 원소들을 차례로 다룰 때 편리
    • 형식 : for (변수선언 : 배열) { 실행문; }
  • for-each문 (개선된 for문)

break

  • 반복문, switch문을 빠져나올 때 사용
  • 레이블을 사용하여 특정 블록 또는 특정 반복문을 빠져나갈 수 있음
    -> 중첩 for문에서 바깥 for문을 종료하는 경우
    -> 형식 : break LABEL
        -> 반복문에 레이블을 지정할 경우 LABEL:반복문

continue

  • 반복문 안에서 사용
  • 가장 가까이 있는 반복문의 다음 반복으로 이동
  • 레이블을 사용하여 특정 반복문의 다음 반복으로 이동 가능
    -> 중첩 for문에서 바깥 for문의 다음 반복으로 갈 때
    -> 형식 : continue LABEL;
반응형

댓글