Java - 자료형과 변수

민찬홍·2023년 7월 28일

Java

목록 보기
2/31
post-thumbnail

자료형과 변수


모든 언어를 공부할 때, 그 언어의 자료형과 변수를 알고가는 것은 매우매우 중요하다.

package sec02.chap03;

public class Ex1 {
    public static void main(String[] args) {
        //  참/거짓 - boolean
        System.out.println(true);
        System.out.println(false);

        //  숫자
        System.out.println(123); // int
        System.out.println(3.14); // double

        //  문자 - char
        System.out.println('A');
        System.out.println('가');
        System.out.println('⭐');

        //  문자열 - String
        System.out.println("동네형보다 많은 자료형");
    }
}
  • 프로그래밍에서 사용되는 다양한 형태의 데이터들
  • 각 종류마다 필요한 용량과 담는 방식이 다름

변수

  • 어떤 값이 코드에서 여러번 쓰일 때, 값을 담는 그릇
package sec02.chap03;

public class Ex2 {
    public static void main(String[] args) {

        System.out.println("\n- - - - -\n"); // 💡 \n : 줄바꿈

        double pi = 3.14;

        System.out.println("원주율: " + pi);
        System.out.println("원의 둘레: 지름 X " + pi);
        System.out.println("원의 넓이: 반지름의 제곱 X " + pi);
        System.out.println("구의 부피: 반지름의 세제곱 X 4/3 X " + pi);
        System.out.println("\n- - - - -\n");

        pi = 3.14159265358979; // 💡 값이 바뀔 수 있으므로 '변수'라 부름

        System.out.println("원주율: " + pi);
        //  자바의 변수: 앞에 담을 데이터의 자료형을 명시
        //  - (이후 배울 var 제외)
        int age; // 💡 변수 선언: 주머니 만들기
        
        //  ⚠️ 아직 값이 없으므로 사용할 수는 없음
        System.out.println(age);
        
        age = 20; // 초기화: 빈 주머니에 값 넣기

        //  이제 해당 값을 사용 가능
        System.out.println(age);
    }
}

대입(할당)연산자

  • 왼쪽의 주머니에 오른쪽의 값을 넣음
public class Ex3 {
    public static void main(String[] args) {
        String 대학 = "학생";

        //  일반적으로는 아래와 같이 선언과 초기화를 동시에
        int age = 20;
        boolean isMarried = false;
        double height = 179.99;
        char sex = 'M';
        String name = "홍길동";
        
        //  변수 - 값을 변경할 수 있다는 의미
        age = 21;
        
        //  ⭐️ 자바는 정적 자료형
        //  ⚠️ 주머니와 자료형이 다른 데이터는 넣을 수 없음
		//  크기가 다른 주판으로 갈아끼울 수 없음
		//  컴파일 단계에서 차단됨
        
		//age = false;
        //isMarried = "안함";
        //sex = 1.2
        //name = 3;   // 모두 에러가 뜸
    }
}
  • = 오른쪽 값(변수가 아닌 데이터 표현)들을 리터럴(literal)이라고 부름

디버그 기능
프로그램 중간중간 멈춰 상태를 확인해가며 실행 가능
맥: control + D / 중지: command + F2
값을 변수에 담으면 디버그 중 각 시점에서 확인 가능
main메소드를 닫는 } 부분에 브레이크포인트를 걸고 디버그 실행

public class Ex4 {
    public static void main(String[] args) {
        // 💡 쉼표를 사용하여 여럿을 한 줄에 선언 및 초기화 가능
        // 모두 같은 자료형으로 선언됨

        char ch1, ch2, ch3; // 선언만

        char ch4 = 'A', ch5 = 'B', ch6 = 'C'; // 초기화까지

        // ⚠️  같은 변수를 두 번 선언하는 것 불가
        int number = 1;  // 에러
        int number = 2;

        //  ⚠️  변수를 선언 & 초기화하기 전 사용 불가
        System.out.println(letter); // 에러

        char letter = 'A';

        System.out.println(letter); 
        
        
        int numberA = 1;

        // 주머니의 값을 다른 주머니에 넣기
        int numberB = numberA;
        
        //  💡 원시타입 데이터는 값을 복사해서 줌
        //  이후 참조타입과 비교하여 자세히 다룰 것
        numberA = 2;
    }
}

상수

  • 변하지 않는 수
public class Ex5 {
    public static void main(String[] args) {

        //  💡 final 연산자 : 변수의 값을 바꾸지 못하게 만듦
        final int INT_NUM = 1;
        INT_NUM = 2; //  불가
    }
}

상수의 네이밍은 일반적으로 대문자를 사용한다.

자바 식별자 명명규칙

  • 문자, 숫자, 언더스코어 _, 달러사인 $ 포함 가능
  • 한글도 사용은 가능 - 권장되지 않음
  • 문자 또는 $, _로 시작해야 함
  • 공백 (스페이스) 을 포함할 수 없음
				//  사용 가능
        int yalco, _yalco, $yalco, 얄코;

        // 사용 불가
        int 1yalco;
        int yal co;
        int #yalco;

식별자 명명 관례

  • 클래스는 대문자로 시작
  • 패키지는 소문자로 만들기
  • 상수는 대문자와 _ 사용 ex) PI, COMPANY_NAME
  • 변수나 메서드는 낙타 표기법 camel case 사용 ex) myName, addNewObject

예약어(reserved words)

  • 식별자로 사용 불가능한 키워드들
  • 자바 언어에서 특정 의미를 담고 있는 단어들
	// 사용 불가
        int double;
        boolean instanceof;
        char new;

이건 너무나도 당연한 얘기지만, 변수의 이름은 의미를 담아서 지을것. 그래야지 어디에 사용되는 변수인지 알기 쉽다.

profile
백엔드 개발자를 꿈꿉니다

0개의 댓글