1. 변수 시작

Var1

package variable;

public class Var1 {
    public static void main(String[] args) {
        System.out.println(10);
        System.out.println(10);
        System.out.println(10);
    }
}

 

패키지(package)

- 자바 파일을 구분하기 위한 폴더

- variable이라는 패키지를 만들었다면, 해당 패키지에 들어가는 자바 첫줄에 package variable; 과 같이

소속된 패키지를 선언해주어야 한다.

실행 결과

 

숫자 10을 3번 출력하는 대신 숫자 20을 3번 출력하도록 코드를 변경하려면

package variable;

public class Var1 {
    public static void main(String[] args) {
        System.out.println(20); //변경 10->20
        System.out.println(20); //변경 10->20
        System.out.println(20); //변경 10->20
    }
}

숫자 10을 모두 숫자 20으로 변경해야 한다. 지금은 3개라서 간단하지만

만약 코드가 1억개라면?

 

어딘가에 값을 보관해두고 필요할 때 값을 꺼내서 읽을 수 있는 저장소. 즉, 데이터를 담을 수 있는 그릇이 필요하다.

 

변수(variable) 기능 사용

 

Var2

a = 10 실행 결과

package variable;

public class Var2 {
    public static void main(String[] args) {
        int a; //변수 선언 (숫자를 담을 수 있는 그릇을 만듦)
        a = 10; //변수 초기화 (10을 a에 대입)
        System.out.println(a);
        System.out.println(a);
        System.out.println(a);
    }
}

실행 결과

 

a = 20 실행 결과

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의 값을 변경하면 출력 결과가 모두 함께 변경된다.

 

* 개념 정리

1) int a

숫자 정수(integer)를 보관할 수 있는 'a'라는 데이터 저장소. 이것을 변수라고 한다.

변수 선언: 변수를 만드는 것

 

2) a = 10

= : 오른쪽에 있는 값을 왼쪽에 저장한다

변수 a에 값 10을 저장한다

변수 초기화: 선언한 변수에 처음으로 값을 대입해서 저장하는 것

 

3) System.out.printIn(a);

자바는 실행 시점에 변수의 값을 읽어서 사용한다.

System.out.printIn(a)    // 변수 a의 값을 읽음

System.out.printIn(10)  // a의 값인 10으로 변경, 숫자 10 출력

 

 

2. 변수 값 변경

변수 a에 저장된 값은 언제든지 바꿀 수 있다.

변수의 값을 변경하면 변수에 들어있던 기존 값은 삭제된다.

package variable;

public class Var3 {
    public static void main(String[] args) {
        int a; // 변수 선언
        a = 10; // 변수 초기화 a(10)
        System.out.println(a);
        a = 50; // 변수 값 변경: a(10 -> 50)
        System.out.println(a);
    }
}

변수의 값이 변경된 이후에는 10 대신 50이 출력됨

 

 

3. 변수 선언과 초기화

1) 변수 선언

변수를 선언하면 컴퓨터의 메모리 공간을 확보해서 그곳에 데이터를 저장할 수 있고, 변수의 이름을 통해서 해당 메모리 공간에 접근할 수 있다.

즉, 데이터를 보관할 수 있는 공간을 만들고, 그곳에 이름을 부여한다.

package variable;

public class Var4 {
    public static void main(String[] args) {
        int a;
        int b;
        int c,d;
    }
}

 

변수는 하나씩 선언할 수도 있고

int a;
int b;

 

한번에 여러 변수를 선언할 수도 있다.

int c,d;

 

2) 변수 초기화

변수를 선언하고, 선언한 변수에 처음으로 값을 저장하는 것

public class Var5 {
    public static void main(String[] args) {
        //1. 변수 선언, 초기화 각각 따로
        int a;
        a = 1;
        System.out.println(a);

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

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

 

* 변수는 초기화해야 한다.

package variable;

public class Var6 {
    public static void main(String[] args) {
        int a;
        System.out.println(a);
    }
}

변수가 초기화되지 않았다는 컴파일 에러

 

 

4. 변수 타입(type) 1

Var7

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"; // 문자열, 문자열을 다루기 위한 특별한 타입

        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
        System.out.println(d);
        System.out.println(e);
    }
}

실행 결과

 

변수 타입

  • int: 정수 ex) 1, 100, 1000
  • double: 실수 ex) 0.2, 1.5, 100.21
  • boolean: 불리언 타입. true, false
  • char: 문자 하나. 작은따옴표(')를 사용해서 감싸야 함 ex) 'A', '가'
  • String: 문자열. 큰따옴표(")를 사용해서 감싸야 함 ex) "hello java"

※ String은 첫 글자가 대문자로 시작하는 특별한 타입

 

리터럴(literal)

코드에서 개발자가 직접 적은 100, 10.5, true, 'A', "Hello Java"와 같은 고정된 값

int a = 100; //정수 리터럴
double b = 10.5; //실수 리터럴
boolean c = true; //불리언 리터럴
char d = 'A'; //문자 하나 리터럴
String e = "Hello Java"; //문자열 리터럴

변수의 값은 변할 수 있지만 리터럴은 개발자가 직접 입력한 고정된 값이다.

따라서 리터럴 자체는 변하지 않는다.

 

 

5. 변수 타입(type) 2

package variable;

public class Var8 {
    public static void main(String[] args) {
        //정수
        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;
    }
}

 

○ 정수형

- byte: -128 ~ 127

파일 전송, 파일 복사 등에 주로 사용

- short: -32,768 ~ 32,767

- int: -2,147,483,648 ~ 2,147,483,647 (약 20억)

- long: -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807

정수 리터럴은 int을 기본적으로 사용한다.

숫자가 int 범위인 약 20억을 넘어가면 L을 붙여서 리터럴을 long으로 변경해야 한다.

(대문자 L, 소문자 l 모두 가능하지만 소문자 l은 숫자 1과 착각할 수 있어서 권장하지 않음)

 

○ 실수형

- float: 대략 -3.4E38 ~ 3.4E38, 7자리 정밀도

float형을 사용하려면 f를 붙여서 float형으로 지정해야 함

- double: 대략 -1.7E308 ~ 1.7E308, 15자리 정밀도

실수는 고민하지 말고 double을 쓰면 된다.

 

○ 기타

- boolean: true, false 참 거짓을 표현 - 조건문에서 자주 사용

- char: 문자 하나를 표현. but 문자 하나를 표현할 때도 문자열(String)을 사용할 수 있음

- String: 문자를 다룰 때는 문자 하나든 문자열이든 모두 String을 사용하는 것이 편리함

 

 

6. 변수 명명 규칙

○ 규칙 (필수)

  • 변수 이름은 숫자로 시작할 수 없다. (ex: 1num, 1st) - cf) 숫자를 이름에 포함하는 것은 가능함 (ex: myVar1)
  • 이름에는 공백이 들어갈 수 없다.
  • 자바의 예약어를 변수 이름으로 사용할 수 없다. (ex: int, class, public)
  • 변수 이름에는 영문자( a-z , A-Z ), 숫자( 0-9 ), 달러 기호( $ ) 또는 밑줄( _ )만 사용할 수 있다.

○ 관례 (필수는 아니지만 전세계 개발자가 따르는 관례)

    ●낙타표기법(Camel Case)

    첫 번째 단어는 소문자로 시작하고 그 이후의 단어는 대문자로 시작하는 표기법

    ex: orderDetail, myAccount

 

    ●클래스는 대문자로 시작, 나머지는 소문자로 시작 (둘 다 낙타표기법은 적용)

    클래스: Person, OrderDetail

    변수를 포함한 나머지: firstName, userAccount

 

cf) 예외 2가지

① 상수

상수는 모두 대문자를 사용하고 언더바로 구분한다.

ex: USER_LIMIT

② 패키지

패키지는 모두 소문자를 사용한다.

ex: org.spring.boot

 

+ Recent posts