[자바의 정석] 변수

yejichoi·2023년 11월 21일

JAVA

목록 보기
2/7

2.1 기본형

기본형(primitive type)

실제 값을 저장

  • boolean , char, 정수형(byte, short, int, long), 실수형(float, double)

참조형(reference type)

어떤 값이 저장되어 있는 주소를 값으로 갖음

  • 기본형 제외 나머지
  • 클래스의 이름이 참조변수 타입 -> 클래스 이름 변수이름

2.2 상수와 리터럴(constant & literal)

상수 선언

final 키워드
상수 변경 x
상수 이름은 모두 대문자

final int MAX_SPEED = 10; // 선언과 동시에 초기화해야 ok

리터럴

상수의 다른말

변수 - 하나의 값을 저장하기 위한 공간
상수 - 값을 한번만 저장할 수 있는 공간
리터럴 - 그 자체로 값을 의미하는 것

float pi = 3.14; // float 타입에 리터럴 생략 불가
double rate = 1.618;  // 가능

문자 리터럴과 문자열 리터럴

  • 문자 리터럴 : 작은 따옴표로 문자 하나를 감싼 것
    반드시 ''안에 하나의 문자가 있어야 한다.
    문자열 리터럴 : 큰 따옴표로 두 문자 이상을 감싼 것
    ""안에 아무런 문자도 넣지 않은 것(빈 문자열)을 허용한다.
    어떤 타입의 변수와 문자열과 덧셈연산 수행 시 문자열을 반환한다.

2.3 형식화된 출력 - printf()

System.out.prinf("age:%d", age);
➡️ System.out.prinf("age:%d", 14);
➡️ System.out.prinf("age:14"); // "age:14"가 화면에 출력된다.

그리고 C언어에서는 char타입의 값을 지시자 '%d'로 출력할 수 있지만, 자바에서는 허용되지 않는다. 아래와 같이 int타입으로 형변환해야만 '%d'로 출력할 수 있다.

char c = 'A';

System.out.printf("c=%c, %d %n", c, (int)c); // 형변환이 꼭 필요하다.

// "c=A, 65"이 화면에 출력된다.

화면에서 입력받기 - Scanner

import java.util.*; // Scanner클래스를 사용하기 위해 추가

Scanner scanner = new Scanner(System.in); // Scanner클래스의 객체를 생성

String input = scanner.nextLine(); // 입력받은 내용을 input에 저장
int num = Integer.parseInt(input); // 입력받은 내용을 int타입의 값으로 

5. 형변환

변수 또는 상수의 타입을 다른 타입으로 변환하는 것

  • 자동 형변환 : float f = 1234;
    int -> float : 좁은 범위에서 넓은 범위로 형변환
  • 명시적 형변환 : char ch = (char) 1000;
    int -> char : 넓은 범위에서 좁은 범위로 형변환, 값 손실 발생
    boolean을 제외한 나머지 7개의 기본형은 서로 형변환이 가능하다.
  • 기본형과 참조형은 서로 형변환할 수 없다.
    서로 다른 타입의 변수간의 연산은 형변환을 하는 것이 원칙이지만, 값의 범위가 작은 타입에서 큰 타입으로의 형변환은 생략할 수 있다.

0개의 댓글