본문 바로가기
개발/자바

[‘자바의 정석’으로 배우는 자바.2] 변수

by 현석_s 2022. 5. 27.
중요한 프로그래밍 능력 중의 하나가 바로 데이터를 잘 다루는 것이다.

 

 

학습 서적 : 자바의 정석

 

 

변수

 

값을 저장할수 있는 메모리 상의 공간을 의미하며 이때 들어가는 값들은 변경이 가능하다.

int age; //int는 변수의 타입이며 age는 변수의 이름이다. 문장의 끝은 세미콜론!

 

위와 같은 방법으로 변수를 선언 할 수 있지만, 후에 값을 또 넣어주는 과정이 번거로워서 바로 초기화를 진행한다.

int age = 25; 
int x=0, y=1; // 콤마를 활용해서 여러 변수를 한 줄에 선언할 수 있다.

“변수의 초기화란, 변수를 사용하기 전에 처음으로 값을 저장하는 것”

 

 

자바 형식으로 작성해보기
public class Page2 {
    public static void  main(String[] args){   //자바에서의 main
        int year = 2022, age = 14;    //변수 정의
          System.out.println(year);     //자바에서의 print
        System.out.println(age);

          int birth = year - age;      //변수를 통해 사칙연산 가능
        System.out.println(birth);
    }
}

처음으로 인텔리제이에서 코드를 써봤는데 확실히 파이썬과 C언어와 다른 게 조금 더 복잡하게 돼있다는 것을 느꼈다.

print(year) 하나도 System.out.println(year) 이런 식으로 코드가 길어지네요;;


변수의 명명규칙
  1. 대소문자가 구분되며 길이에 제한이 없다.
  2. 예약어는 사용해서는 안 된다.
  3. 숫자로 시작해서는 안 된다.
  4. 특수문자는 ‘_’와 ‘$’만을 허용한다.

 

 

자바의 예약어

 

 

개발자들의 명명규칙
  1. 클래스 이름의 첫 글자는 항상 대문자로 한다.
  2. 여러 단어로 이루어진 이름은 단어의 첫 글자를 대문자로 한다. (낙타 표기법)
  3. 상수의 이름은 모두 대문자로 한다. 여러 단어로 이루어진 경우 ‘_’로 구분한다.

변수의 타입

값(data)과 종류(type)는 크게 ‘문자와 숫자'로 구분되고 숫자는 ‘정수와 실수'로 나눌 수 있다.

자료형은 ‘기본형'과 참조형'으로 크게 나눌 수 있다.

  • 기본형 : 실제 데이터(data) 저장
  • 참조형 : 값이 저장되어 있는 주소(address)를 값으로 가짐

 

참조형 변수를 선언할 때는 변수의 타입으로 클래스의 이름을 사용하므로 클래스의 이름이 참조 변수의 타입이 된다.

Date today = new Date(); //Date객체를 생성해서, 그 주소를 today에 저장
  • 논리형 : boolean - 1byte (true or false)
  • 문자형 : char - 2byte (문자 저장)
  • 정수형 : byte - 1byte(byte는 이진 데이터 관리용), short - 2byte, int - 4byte, long - 8byte
  • 실수형 : float - 4byte(점 미사’f’), double - 8byte (접미사'd’)(실수 저장에 사용)

&볼드체는 많이 쓰는 거!


상수와 리터럴

상수는 한번 정의하면 변하지 않는 값이다.

상수를 선언하는 방법은 변수와 동일하게 하지만 앞에 final을 붙여주면 된다.

final int MAX_SPEED;  //에러 상수는 선언과 동시에 초기화 해야됨
final int MAX_VALUE = 100; //Ok!선언과 동시에 초기화
MAX_VALUE = 200;  //에러! 상수는 변하지 않음!

리터럴 : 그 자체로 값을 의미하는 거 위 코드에서 리터럴은 100!

문자열 리터럴 | 문자 리터럴

char ch = 'j' //문자 리터럴은 단어 하나 
char ch = '' // 에러 공백은 안됨
String name = "java" // 변수 name에 java 저장
String name = "" //가능 문자열 리터럴은 공백 가능
String name = new String("java") //String도 클래스 이기 때문에 원래는 new를 사용해야 하지만 예외도 허용한다.
public  class Page2 {
        public static void main(String[] args) {
            String name = "ja" + "va";
            String str = name + 8.0;

            System.out.println(name);
            System.out.println(str);
            System.out.println(7 + "");
            System.out.println("" + 7);
            System.out.println(7 + 7 + "");
            System.out.println(name + str);

        }

}

 

 

println과 printf

println은 크게 지시자 사용이 제한되고 자동으로 줄 바꿈이 진행된다. 이를 보안하는 것이 바로 printf

지시자

  • %b : true, false
  • %d : 정수 형식 출력
  • %o : 8진 정수 (#기호 사용 ex. %#o%n)
  • %x, %X 16진수 정수 (#기호 사용 ex. %#x%n)
  • %f : 부동 소수점 형식 출력
  • %c : 문자 출력
  • %s : 문자열 출력

 

 

Scanner

필수 입력 내용

import java.unit.*; // 이 문장이 있어야 스케너 사용 가능

사용법

이번 학습 후기 : 초반에는 대부분 코드들이 다 파이썬과 유사했지만 마지막에 값을 받는 스캐너를 보고 굳이 이렇게 쓸 필요가 있나 생각이 들었다…😭

오늘의 학습을 여기서 마치고 고쳐야 될 점이 있다면 댓글을 달아주세요! 🥸

'개발 > 자바' 카테고리의 다른 글

[Java] 클래스와 객체  (9) 2022.06.11
[Java] 계산기 만들기  (0) 2022.06.10
[Java] 메서드 학습  (0) 2022.06.10
[‘자바의 정석’으로 배우는 자바1] 자바에 대해서  (0) 2022.05.26

댓글