[자바] 변수 이름(naming) / 초기화 및 리터럴 / 변수 사용 범위

2020. 3. 18. 23:15·SW 공학 & 프로그래밍 언어/Java
728x90
반응형

 

변수란, 하나의 값을 저장할 수 있는 메모리 공간이다.

변수를 사용한다는 것은 변수에 값을 저장하고 읽는 행위를 말한다.

변수는 선언된 블록 내에서만 사용이 가능(Ex. 메소드)

 

1. naming 

변수 이름은 메모리 주소에 붙여진 이름이다. 변수 이름을 통해 메모리 주소에 접근하여 값을 저장하거나 값을 읽는다. 

 

자바 언어에서 정한 명명 규칙(naming convention)이 있는데 다음과 같다.

작성 규칙 예
첫 번째 글자는 문자이거나 '$', '_' 이어야 한다 (숫자는 안됨) 가능: price, $price, _price / 안됨: 1vv, @dfd
영어 대소문자 구분 firstname, firstName은 다른 변수
카멜표기법(낙타 등 모양) : 첫 문자는 소문자로 시작, 다른 단어가 붙으면 첫 문자는 대문자로 한다. (관례) maxSpeed
어떤 언어든 같겠지만 예약어는 사용 불가능 아래 예약어 표 참조
분류 예약어
기본 데이터 타입 boolean, byte, char, short, int, long, float, double
접근지정자 private, protected, public
클래스와 관련된 것 class, abstract, intercace, extends, implements, enum
객체와 관련된 것 new, instanceof, this, super, null
메소드와 관련된 것 void, return
제어문과 관련된 것 if, else, switch, case, default, for, do, while, break, continue
논리값 true, false
예외 처리와 관련된 것 try, catch, finally, throw, throws
기타 transient, volatile, package, import, synchronized, native, final, static, strictfp, assert

네이밍을 함에 있어서 관례란 필수적인 것은 아니지만 개발자 간의 코드 작성 패턴이기도하고 서로간의 공유하는데 있어서 코드 리뷰가 좋기 때문에 가급적 지켜주는 것이 좋다.

 

2. 초기화 및 리터럴

초기화란, 변수에 값을 저장하는 행위이다.

int input = 10; // 초기화됨

리터럴이란, 변수에 입력된 값을 리터럴이라고 부른다. 흔히들 우리는 상수(constant)라고 알고 있는데 상수는 전체적인 의미를 담고 있고 리터럴은 상수의 개념에서 분류를 한 것이다.

  • 정수 리터럴
  • 실수 리터럴
  • 문자 리터럴
  • 문자열 리터럴
  • 논리 리터럴
// 정수 리터럴(10진수) 
0, 75, -100

// 정수 리터럴(8진수): 0으로 시작하는 값은 8진수로 간주함.
02, -04

// 정수 리터럴(16진수)
0x5, 0xA

// 실수 리터럴(10진수)
0.25, -3.14

// 실수 리터럴(지수와 가수)
5E7		// 5 X 10^7
0.12E-5 // 0.12 X 10^-5

// 문자 리터럴
'A', '한'

// 문자열 리터럴
"대한민국"

// 논리 리터럴
true, false

3. 변수의 사용 범위

자바 변수는 중괄호{} 내에서만 선언되고 사용된다. 중괄호를 사용하는 곳은 클래스, 생성자, 메소드이다.

여기서 우리는 메소드라는 것만 생각하자.(메소드를 함수라고 생각해도 무방하다)

메소드 내에서 선언된 변수를 특히 지역변수(local variable)라고 부른다. 

지역변수의 특징은 메소드 실행이 끝나면 메모리에서 자동으로 없어진다.

 

단순 예시로 1번 메소드와 2번 메소드가 있다.

1번 메소드 안에 a 변수를 선언하였는데 2번 메소드에서 a를 사용하려고 하면 에러가 난다.

 

왜 에러가 생길까?

 

이유는 앞서 말한 지역변수 특징 때문이다. 1번 메소드에서 a가 선언 되어도 1번 메소드 실행이 끝나면 a는 소멸 되기 때문이다.

  

 

728x90
반응형

'SW 공학 & 프로그래밍 언어 > Java' 카테고리의 다른 글

[자바] 전달인자(Argument)와 매개변수(Parameter)의 차이점  (0) 2020.04.01
[자바] 데이터 타입 ( 변수 선언시 고려할 사항)  (1) 2020.03.22
[자바] 프로그래밍이란? / 프로그래밍 기초이론  (0) 2020.02.12
[자바] JAVA 공부 기록  (0) 2020.02.12
[자바] 리눅스, JDK / 이클립스 설치  (0) 2020.02.11
'SW 공학 & 프로그래밍 언어/Java' 카테고리의 다른 글
  • [자바] 전달인자(Argument)와 매개변수(Parameter)의 차이점
  • [자바] 데이터 타입 ( 변수 선언시 고려할 사항)
  • [자바] 프로그래밍이란? / 프로그래밍 기초이론
  • [자바] JAVA 공부 기록
크크크크
크크크크
공뷰를 합시다.
    반응형
  • 크크크크
    Tom's Note
    크크크크
  • 전체
    오늘
    어제
    • 분류 전체보기 (130)
      • IT 지식 (6)
      • CS (66)
        • 알고리즘 & 자료구조 (19)
        • 운영체제 (41)
        • 네트워크 (1)
        • 데이터베이스 (5)
      • 보안 (6)
      • SW 공학 & 프로그래밍 언어 (5)
        • Java (28)
        • 디자인 패턴 (1)
        • 형상관리 (2)
        • 톰캣(WAS) (2)
        • SW 방법론 (3)
        • 스프링부트 (5)
      • 시스템 설계 (4)
        • Docker (2)
      • 자격증 (2)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      단반향
      DI
      Chage
      스프링부트
      ADsP
      passwd
      whatis
      usermod
      docker
      자바
      DTO
      whereis
      암호설정
      1급
      cifs
      man
      2차
      chmod
      알고리즘
      비트연산
      su
      java
      apropos
      /etc/passwd
      REST API
      불변
      분석기법
      리눅스
      which
      문제해결
    • 최근 댓글

    • 최근 글

    • 250x250
    • hELLO· Designed By정상우.v4.10.3
    크크크크
    [자바] 변수 이름(naming) / 초기화 및 리터럴 / 변수 사용 범위
    상단으로

    티스토리툴바