관리 메뉴

Partially Committed

[CH02.] λ³€μˆ˜ (Variable) λ³Έλ¬Έ

πŸ’» Study !/JAVA

[CH02.] λ³€μˆ˜ (Variable)

WonderJay 2022. 7. 5. 22:46
728x90
λ°˜μ‘ν˜•
SMALL

 

  λ³€μˆ˜(Variable)λž€ ν•˜λ‚˜μ˜ 값을 μ €μž₯ν•  수 μžˆλŠ” λ©”λͺ¨λ¦¬ 곡간을 μ˜λ―Έν•˜λ©°, λ³€μˆ˜λ₯Ό μ‚¬μš©ν•˜λ €λ©΄ type κ³Ό name 을 μ„ μ–Έν•΄μ•Ό ν•œλ‹€. μ„ μ–Έ μ΄ν›„λ‘œλŠ” λ³€μˆ˜λ₯Ό λ°˜λ“œμ‹œ μ΄ˆκΈ°ν™”(initialization)ν•΄μ•Ό ν•œλ‹€. μ΄ˆκΈ°ν™”λ₯Ό ν•˜μ§€ μ•ŠμœΌλ©΄ garbage value κ°€ λ‚¨μ•„μžˆκ²Œ 되고 μ΄λŠ” μ˜λ„μΉ˜ μ•Šμ€ λ™μž‘μ„ μ•ΌκΈ°ν•  수 μžˆλ‹€. 

 

  λ³€μˆ˜ Swap

public class source {
    public static void main(String[] args){
        int x = 10, y = 20;
        int temp = 0;

        System.out.println("x:" + x + "y:" + y);

        temp = x;
        x = y;
        y = temp;

        System.out.println("x:" + x + "y:" + y);
    }
}

 

  μžλ£Œν˜•μ€ 크게 κΈ°λ³Έν˜•, μ°Έμ‘°ν˜•μœΌλ‘œ λ‚˜λˆŒ 수 μžˆλ‹€. κΈ°λ³Έν˜• λ³€μˆ˜λŠ” μ‹€μ œ data λ₯Ό μ €μž₯ν•˜μ§€λ§Œ μ°Έμ‘°ν˜•μ€ 값이 μ €μž₯λ˜μ–΄ μžˆλŠ” μ£Όμ†Œλ₯Ό κ°’μœΌλ‘œ 가진닀. JAVA λŠ” C 와 달리 μ°Έμ‘°ν˜• λ³€μˆ˜ κ°„μ˜ 연산이 μ•ˆλ˜κΈ° λ•Œλ¬Έμ—, 사싀 μ‹€μ œ 연산에 μ‚¬μš©λ˜λŠ” 것은 λͺ¨λ‘ κΈ°λ³Έν˜• λ³€μˆ˜μ΄λ‹€. μ°Έμ‘°ν˜• λ³€μˆ˜(Reference type)λ₯Ό μ„ μ–Έν•  λ•Œμ—λŠ” λ³€μˆ˜ νƒ€μž…μœΌλ‘œ class 의 이름을 μ‚¬μš©ν•˜κΈ° λ•Œλ¬Έμ— class 의 이름이 μ°Έμ‘° λ³€μˆ˜μ˜ type 이 λœλ‹€. κ·ΈλŸ¬λ―€λ‘œ μƒˆλ‘œμš΄ class λ₯Ό λ§Œλ“ λ‹€λŠ” 것은 μƒˆλ‘œμš΄ μ°Έμ‘°ν˜• λ³€μˆ˜λ₯Ό μΆ”κ°€ν•˜λŠ” 것이닀.

  

  μ°Έμ‘°ν˜• λ³€μˆ˜λ₯Ό μ„ μ–Έν•˜κΈ° μœ„ν•΄μ„œ ν΄λž˜μŠ€μ΄λ¦„κ³Ό λ³€μˆ˜ 이름을 λ‚˜λž€νžˆ 적어주면 λœλ‹€. 예λ₯Ό λ“€μ–΄ Data 클래슀 νƒ€μž…μ˜ μ°Έμ‘° λ³€μˆ˜ today λ₯Ό μ„ μ–Έν•˜λ©΄ μ•„λž˜μ™€ κ°™λ‹€.

 

Data today = new Date();

  객체λ₯Ό μƒμ„±ν•˜λŠ” operator 인 new λŠ” μƒˆλ‘œ λ§Œλ“€μ–΄μ§„ 객체의 μ£Όμ†Œλ₯Ό λ°˜ν™˜ν•œλ‹€. 

 

   μƒμˆ˜(Constant) λŠ” λ³€μˆ˜μ™€ λ™μΌν•˜κ²Œ 값을 μ €μž₯ν•  수 μžˆλŠ” κ³΅κ°„μ΄μ§€λ§Œ, λ³€μˆ˜μ™€λŠ” λ‹€λ₯΄κ²Œ 값을 ν•œλ²ˆ μ§€μ •ν•˜λ©΄ λ‹€λ₯Έ κ°’μœΌλ‘œ λ³€κ²½ν•  수 μ—†λ‹€. μƒμˆ˜λŠ” μ„ μ–Έν•  λ•Œ μ•žμ— final μ„ λΆ™μ—¬μ£Όλ©΄ λœλ‹€.

final int MAX_SPEED = 10;

  μƒμˆ˜λŠ” μ„ μ–Έκ³Ό λ™μ‹œμ— μ΄ˆκΈ°ν™”λ₯Ό ν•΄μ•Όν•˜λ©°, 이후에 값을 λ³€κ²½ν•  수 μ—†λ‹€.

 

  ν”Όμ—°μ‚°μž 쀑 ν•˜λ‚˜κ°€ String 인 경우 + 연산을 ν•˜λ©΄, λ‚˜λ¨Έμ§€ ν•œ μͺ½μ„ String 으둜 λ³€ν™˜ν•œ λ‹€μŒ 두 개의 ν”Όμ—°μ‚°μžλ₯Ό String 으둜 κ²°ν•©ν•œλ‹€. 이λ₯Ό μ‘μš©ν•˜μ—¬ κΈ°λ³Έν˜• νƒ€μž…μ˜ λ³€μˆ˜μΈ 7 을 String 으둜 λ°”κΎΈκ³ μž ν•  λ•Œ, 빈 λ¬Έμžμ—΄ "" 을 λ”ν•˜λŠ” 것도 κ°€λŠ₯ν•˜λ‹€.

 

  println() ν•¨μˆ˜λŠ” λ³€μˆ˜μ˜ 값을 κ·ΈλŒ€λ‘œ 좜λ ₯ν•˜κΈ° λ•Œλ¬Έμ— 값을 λ³€ν™˜ν•˜μ§€ μ•Šκ³ λŠ” λ‹€λ₯Έ ν˜•μ‹μœΌλ‘œ 좜λ ₯ν•  수 μ—†λ‹€λŠ” 것이 단점이닀. μ΄λŠ” printf ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜λ©΄ 해결이 κ°€λŠ₯ν•˜λ©°, μ‚¬μš©λ²•μ€ C 와 거의 μΌμΉ˜ν•œλ‹€. μ€„λ°”κΏˆ μ‹œμ—λŠ” %n μ΄λ‚˜ \n 을 μ‚¬μš©ν•˜λ©΄ λœλ‹€. μ£Όμ˜ν•΄μ•Ό ν•  점은 C μ–Έμ–΄μ—μ„œλŠ” char νƒ€μž…μ˜ 값을 %d 둜 좜λ ₯ν•  수 μžˆμ—ˆμ§€λ§Œ Java μ—μ„œλŠ” ν—ˆμš©λ˜μ§€ μ•ŠμœΌλ©°, μ΄λŠ” int νƒ€μž…μœΌλ‘œ casting ν•œ λ’€μ—μ„œμ•Ό κ°€λŠ₯해진닀. λ˜ν•œ 10μ§„μˆ˜λ₯Ό 2μ§„μˆ˜λ‘œ 좜λ ₯ν•΄μ£ΌλŠ” μ§€μ‹œμžλŠ” μ—†μ–΄μ„œ μ •μˆ˜λ₯Ό 2진 λ¬Έμžμ—΄λ‘œ λ°”κΎΈμ–΄μ£ΌλŠ” λ©”μ„œλ“œμΈ Integer.toBinaryString(int i) λ₯Ό μ‚¬μš©ν•΄μ•Ό ν•œλ‹€.

public class source {
    public static void main(String[] args){
        int num = 1234;
        System.out.printf("num = %s\n", Integer.toBinaryString(num));
        // num = 10011010010
    }
}

  ν™”λ©΄μ—μ„œ μž…λ ₯λ°›κΈ° μœ„ν•΄μ„œ Console class λ₯Ό μ‚¬μš©ν•˜λŠ” 것이 μ΅œμ‹ μ΄λ‚˜ IDE 에 λ”°λΌμ„œ λ™μž‘ν•˜μ§€ μ•ŠλŠ” κ²½μš°λ„ μžˆμœΌλ―€λ‘œ 이와 μœ μ‚¬ν•œ Scanner class λŠ” μ•„λž˜μ™€ 같이 μ‚¬μš©ν•  수 μžˆλ‹€. 

import java.util.Scanner;

public class source {
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);

        System.out.println("please input your numbers\n");
        String input = scanner.nextLine();
        int num = Integer.parseInt(input);

        System.out.println("your input : " + input);
        System.out.println("num = " + num + '\n');
    }
}

 


References

https://opentutorials.org/course/1223/4551

 

μ–Έμ–΄μ†Œκ°œ - μƒν™œμ½”λ”©

Java의 역사 1995λ…„ μžλ°”μ˜ 아버지라고 λΆˆλ¦¬λŠ” μ œμž„μŠ€ 고슬링과 그의 λ™λ£Œλ“€μ— μ˜ν•΄μ„œ μ‹œμž‘λœ ν”„λ‘œμ νŠΈλ‹€. JavaλŠ” μ›λž˜ κ°€μ „μ œν’ˆμ„ μ œμ–΄ν•˜κΈ° μœ„ν•œ μ–Έμ–΄λ‘œ κ³ μ•ˆλ˜μ—ˆμ§€λ§Œ μ›Ήμ˜ λ“±μž₯으둜 μ—„μ²­λ‚œ 성곡

opentutorials.org

http://www.yes24.com/Product/Goods/24259565

 

Java의 정석 - YES24

졜근 7λ…„λ™μ•ˆ μžλ°” λΆ„μ•Όμ˜ 베슀트 μ…€λŸ¬ 1μœ„λ₯Ό μ§€μΌœμ˜¨ `μžλ°”μ˜ 정석`의 μ΅œμ‹ νŒ. μ €μžκ°€ μΉ΄νŽ˜μ—μ„œ 12λ…„κ°„ 직접 λ…μžλ“€μ—κ²Œ 닡변을 ν•΄μ˜€λ©΄μ„œ μ΄ˆλ³΄μžκ°€ μ–΄λ €μ›Œν•˜λŠ” 뢀뢄을 잘 νŒŒμ•…ν•˜κ³  μ“΄ μ±…. 뿐만 μ•„

www.yes24.com

 

728x90
λ°˜μ‘ν˜•
LIST
Comments