Java-변수

김동우·2024년 3월 2일
0

Java

목록 보기
2/3

김영한의 실전자바 기본편을 듣고 학습내용을 정리한 글입니다.
자료의 출처는 김영한 실전자바 입문편 입니다.

변수(variable)?
변수(variable)란 데이터(data)를 저장하기 위해 프로그램에 의해 이름을 할당받은 메모리 공간을 의미합니다.
즉, 변수란 데이터(data)를 저장할 수 있는 메모리 공간을 의미하며, 이렇게 저장된 값은 변경될 수 있습니다. 출처-TCP School

글로만 읽는 것보다 직접 코드를 작성 해보는 것이 훨씬 이해하기 쉽다!
코드를 통해서 바로 알아보자!

package variable;
 public class Var1 {
    public static void main(String[] args) {
        System.out.println(10);
        System.out.println(10);
        System.out.println(10);
    }
 }
/*이 코드는 단순하게 숫자 10을 3번 출력하는 코드이다.
갑자기 사용자가 이 숫자를 10에서 20으로 변경 한다고 생각을 해보자*/
package variable;
 public class Var1 {
    public static void main(String[] args) {
        System.out.println(20);
        System.out.println(20);
        System.out.println(20);
    }
 }
 /*숫자 10을 20으로 바꾸었다.
 사실 3번의 숫자륿 변경하는 것은 그리 어렵지 않다. 
 하지만 숫자를 출력하는 부분이 3줄이 아니라 100줄, 200줄이라면
 100번, 200번씩 하나하나 타이핑을 해야한다*/

그러면 여러번 수정해야하는 번거로운 문제를 해결하기 위해서는 어떻게 해야할까?
값을 어딘가에 보관해두고 필요할 때 값을 꺼내쓰면 될 것이다.
모든 프로그래밍 언어는 변수라는 기능을 제공한다.

 package variable;
 public class Var2 {
 	public static void main(String[] args) {
 		int a; //변수 선언
        a = 10; //변수 초기화
        System.out.println(a);
        System.out.println(a);
        System.out.println(a);
    }
 }

a=10일때 실행결과
10
10
10

 package variable;
 public class Var2 {
    public static void main(String[] args) {
        int a; //변수 선언
        a = 20; //10 -> 20으로 변경
        System.out.println(a);
        System.out.println(a);
        System.out.println(a);
    }
 }

a=20일때 실행결과
20
20
20

a의 값을 변경하면 출력결과도 함께 변경된다.

간단히 코드를 분석해보자.

int a; /*정수 타입의 숫자를 보관할 수 있는 데이터 저장소를 만든다 
이것을 변수라고 한다.*/
int b; //이 정수타입 저장소의 이름은 b

/* 이렇게 변수를 만드는 것을 변수 선언이라 한다. 
int 타입이외에 상수, 문자 등등 다양한 타입이 있지만 우선 정수타입 int로 알아보자
즉, int는 변수의 데이터 타입 그뒤 a는 변수의 이름이라고 생각하면 될 것이다.*/
int a =10;
/* 자바에서 '='는 수학에서의 '='과는 다르다. 자바에서는 오른쪽에 있는 값을 왼쪽에 저장한다는 뜻이다.
즉, 10이라는 숫자를 변수 a에 저장하는 것이다. 
또한 선언한 변수에 처음으로 값을 대입해서 저장하는 것은 변수 초기화라 한다.*/

변수 값 변경
변수에 들어있는 값은 얼마든지 변경할 수 있다. 코드를 통해 알아보자.

class
package variable;
public class Var3 {
	public static void main(String[] args) {
        // 변수 선언 및 초기화
        int a = 10;
        // 변수 값 출력
        System.out.println(a); // 10 출력
        // 변수 값 변경
        a = 50;
        // 변경된 변수 값 출력
        System.out.println(a); // 50 출력
    }
}

위 코드의 실행결과
10
50

코드분석를 분석해보자

 a = 10; //변수 초기화: a(10) //1. 변수 a에 10을 저장한다.
 System.out.println(a);     //2. 변수 a의 값을 읽는다. a에는 10이 들어있다. 10을 출력한다.
 a = 50; //변수 값 변경:     //3. 변수 a의 값을 50으로 변경한다. a(10 -> 50)
 System.out.println(a);    //4. 변수 a의 값을 읽는다. a에는 50이 들어있다. 50을 출력한다.

코드는 한줄 한줄씩 실행이 된다.
변수의 값을 변경하면 기존에 들어있던 변수의 값은 삭제되고 새로 저장한 값으로 변경된다.

변수 선언
변수를 선언하면 컴퓨터의 메모리 공간을 확보해서 그곳에 데이터를 저장할 수 있다. 마치 책장에 이름표를 붙여 특정 내용을 찾듯, 변수선언은 데이터를 쉽게 찾고 관리할 수 있도록 이름을 붙여 저장하는 공간을 만드는 것

변수 초기화
변수를 선언하고, 처음으로 변수에 값을 저장하는 것.

코드로 알아보자.

 package variable;
 public class Var4 {
	public static void main(String[] args) {
 		int a;
 		int b; //변수는 이렇게 하나씩 선언할 수도 있다,
        
 		int c,d;// 한번에 여러 변수를 선언할 수도 있다.
        
        
        // 1. 변수 선언, 초기화 각각 따로
        int a;
        a = 1;
        System.out.println(a);

        // 2. 변수 선언과 초기화를 한번에
        int b = 2;
        System.out.println(b);

        // 3. 여러 변수 선언과 초기화를 한번에
        int c = 3, d = 4;
        System.out.println(c); 
        System.out.println(d);

        //변수의 선언과 초기화를 각각 따로 할 수도있고, 동시에 할 수도 있다.
        
/*참고로 변수를 초기화 하지않고 변수를 사용하면 컴파일 에러가 발생한다. 
컴퓨터에서 메모리는 여러 시스템이 함께 사용하는 공간이다. 
여러 값들이 계속해서 저장되고 메모리상의 공간을 차지하고 사용한다. 
그런데 이 공간에 기존에 어떤 값이 있는지 아무도 모르기 때문에 초기화를 하지않으면 이상한 값이 출력될 수 있다.
자바는 이런 문제를 예방하기 위해 변수의 초기화를 강제한다.*/
    }
 }

변수 타입 정리
변수는 데이터를 다루는 종류에 따라 다양한 형식을 가지고 있습니다. 이러한 형식을 영어로는 "데이터 타입" 또는 "형식"이라고 부른다. 예를 들어서 int는 정수형 데이터를 다루는 형식이기 때문에 "정수형 데이터 타입" 또는 "정수형"이라고 부른다.

코드로 알아보자

 package variable;
 public class Var7 {
 	public static void main(String[] args) {
 		//변수의 타입
        int a = 100; //정수
		double b = 10.5; //실수
		boolean c = true; //불리언(boolean) true, false 입력 가능
		char d = 'A'; //문자 하나
		String e = "Hello Java"; //문자열, 문자열을 다루기 위한 특별한 타입
	
        //숫자 변수의 타입
        //정수
		byte b = 127; //-128 ~ 127
 		short s = 32767; // -32,768 ~ 32,767
 		int i = 2147483647; //-2,147,483,648 ~ 2,147,483,647 (약 20억)
 		
        //-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
 		long l = 9223372036854775807L;
        
		//실수
		float f = 10.0f;
 		double d = 10.0;
    }
 }

다양한 숫자 변수의 타입을 이렇게 표로 정리해보았다.

변수 명명 규칙
자바에서 변수의 이름을 짓는데는 규칙과 관례가 있다.

  • 규칙은 필수이다. 규칙을 지키지 않으면 컴파일 오류가 발생한다.
  • 관례는 필수는 아니지만 전세계 개발자가 해당 관례를 따르기 때문에 사실상 규칙이라고 생각해도 된다.

규칙

  1. 변수 이름은 숫자로 시작할 수 없다. (예시: 1num, 1st)
    하지만, 이름에 숫자를 포함하는 것은 가능하다. (예시: myVar1, num1)
    이름에는 공백이 들어갈 수 없다.

  2. 자바 예약어를 변수 이름으로 사용할 수 없다. (예시: int, class, public)
    변수 이름에는 영문자(a-z, A-Z), 숫자(0-9), 달러 기호($) 또는 밑줄(_)만 사용할 수 있다.

관례

  1. 소문자로 시작하는 낙타 표기법
    변수 이름은 소문자로 시작하는 것이 일반적이다.
    여러 단어로 이루어진 변수 이름의 경우, 첫 번째 단어는 소문자로 시작하고 그 이후의 각 단어는 대문자로 시작하는 낙타 표기법(camel case)을 사용한다. (예시: orderDetail, myAccount)

예시
올바른 변수 이름: firstName, age, numItems, my_variable, $total
잘못된 변수 이름: 1name, first name, int, class, public
참고

변수 이름은 명확하고 이해하기 쉬운 것이 좋다.
변수의 용도를 나타내는 이름을 지어야 코드를 읽는 데 도움이 된다.
일관된 명명 규칙을 사용하면 코드를 더욱 깔끔하게 만들 수 있다.

profile
블로그 이전 했습니다. https://dongwookim4343.tistory.com/

0개의 댓글