Dreaming Dean
Hello, I'm Studying
  • Secure
  • Java
  • Oracle
  • +others
Coding.
I AM STUDYING PROGRAMING LANGUAGE. IF YOU WANT TO SEE MY WORK THE PROGRAMMING PROJECT, CHECK IT OUT MY BLOG AND GITHUB.

Variable and Constant 변수와 상수

Dean92
2017. 3. 26. 23:50

변수

 변수란 단 하나의 값을 저장할 수 있는 공간을 뜻하고 하나의 값만 저장할 수 있으므로 새로운 값을 저장해 버리면 기존의 값은 없어지게 된다. 


변수의 선언

 변수의 선언 방법은 아래와 같다.

int dean;    //dean이라는 이름의 변수를 타입을 int로 선언했다는 의미
변수의타입 변수이름;

변수타입은 변수에 저장될 값의 타입을 지정하는 것으로 변수 타입에는 정수형, 실수형, 문자형등이 존재한다.

변수이름은 변수가 들어갈 메모리 공간에 이름을 부여하는 것으로 이 이름을 이용하여 메모리에 저장된 값을 읽어오거나 값을 저장하게 된다. 변수의 이름(메서드, 클래스의 이름도 포함한다)을 선언할 때 대,소문자 구분해야한다. 그리고 숫자로 시작하거나, 프로그램이 사용하는 예약어를 사용하면 안 된다. 특수문자는 '_'와 '$'만 사용 가능하다.


변수의 초기화

 변수를 선언하고, 처음으로 값을 저장하는 것을 변수의 초기화Initialization 라고 한다. 메모리상에는 여러프로그램에서 쓰인 필요없는 값Garbage value이 남아있을 수 있기 때문에 변수의 초기화가 필요하다.

 변수에 값을 저장 하는 방법은 대입연산자 = 를 사용하고 그 의미는 대입연산자 오른쪽의 값을 왼쪽 변수에 저장하라는 명령을 의미한다.

int score = 90;
//타입이 int이고 이름이 score인 변수를 선언하고 90을 저장하여 초기화함

예제
  • Code
    package com.dean.example;
    
    public class Example {
    
    	public static void main(String[] args) {
    		int mathScore = 90;
    		int scienceScore = 70;
    		int average = 0;
    		
    		System.out.println("수학점수 : " + mathScore);
    		System.out.println("과학점수 : " + scienceScore);
    		
    		mathScore = mathScore - 5;
    		System.out.println("수학점수 : " + mathScore);
    		
    		average = (mathScore + scienceScore)/2;
    		System.out.println("평균점수 : " + average);
    	}
    
    }
    
  • Result




변수의 명명규칙

자바에서 사용하는 모든 이름은 식별자Identifier라고 불리며 변수나 상수, 메서드, 사용자가 정의하는 클래스 등을 구분할 수 있게 해준다. 하지만 마음대로 이름을 붙이는 것이 아닌 아래와 같이 정해진 규칙을 지켜야 한다.

1. 대소문자를 구분하며 길이에 제한은 없다.
2. 첫 문자가 문자나 '_', '$'의 특수문자로 시작되어야 한다. 숫자로 시작할 수 없다.
3. 공백은 포함할 수 없다.
4. 예약어를 사용해선 안된다.

예약어란 자바가 사용하는 미리 정해진 명령어 이름으로서 클래스나 변수, 메서드 이름으로 사용할 수 없다.


abstract class

false

importpackageswitchvoid
assert const

final

instanceofprivatesynchronizedvolatile
boolean continue finallyint

protected

thiswhile

break

default

float

interface

publicthrow
byte do forlongreturnthrows
case double goto

native

short

transient
catch else ifnewstatictrue
char extends implementsnullsupertry


변수의 타입

 모든 변수에는 타입이 있으며, 변수의 타입 따라 변수에 저장할 수 있는 값의 종류와 범위가 달라진다. 변수를 선언할 때 저장하고자 하는 값을 고려하여 가장 알맞은 타입을 선택하면 된다. 값의 종류에는 크게 문자와 숫자로 나뉘고 숫자는 다시 정수와 실수로 나눌 수 있다. 변수의 타입은 크게 기본형과 참조형, 2가지로 나눌 수 있는데, 기본형 변수는 실제 값(Data)을 저장하는 반면에, 참조형 변수는 어떤 값이 저장되어 있는 주소를 값으로 갖는다.

기본형Primitive Type
논리형Boolean, 문자형Char, 정수형Int/Short/Byte/Long, 실수형Float/Double 8개로써 실제값을 저장한다.

참조형Reference Type → Class
8개의 기본형을 제외한 나머지 타입, 객체의 주소를 저장한다. 프로그래머가 추가하는 타입

 참조형 변수를 선언하면 변수의 타입으로 클래스의 이름이 사용되므로 클래스의 이름이 변수의 타입이 된다. 그러므로 새로운 클래스를 작성한다는 것은 새로운 참조형을 만드는 것이다.

 참조형 변수를 선언하고 초기화 하는 방법은 아래와 같다.

클래스이름 변수이름;
Score mathScore = new Score();    //Score라는 개체를 생성 후 그 주소를 mathScore에 저장, new는 개체를 생성하는 연산자


기본형


1 byte 2 byte 4 byte 8 byte
논리형
boolean
문자형
char(유니코드)
정수형
byte short int long
실수형
float double


논리형 : 논리형은 크기가 1byte이고 true와 false 중에 한 가지 값을 가지고 조건식에 사용된다.
문자형 : 문자형은 2byte크기를 가지고 문자는 작은따옴표를 이용하여 변수당 한 글자를 표현할 수 있다.
정수형 : 정수형은 정수를 저장할 때 사용되고 주로 쓰는 것은 int 와 long이 있다.
실수형 : 실수를 저장하는데 사용되고 주로 double을 쓴다.


상수

상수는 변수처럼 값을 저장할 수 있는 공간을 뜻하지만 한번 값을 저장(초기화)해 버리면 다른 값으로 변경할 수 없다. 상수를 선언하는 방법은 타입 앞에 키워드로 final을 선언하는 것이다. static final로 선언한 변수는 클래스가 로딩되어 있는 동안 같은 값을 유지하게 되고 일반적으로 어떤 변수가 상수라는 것을 쉽게 알 수 있도록 변수명은 모두 대문자로 쓰게된다.

final int MAXSCORE = 10;    //상수 MAXSCORE을 선언하고 초기화 함



Comments