[JAVA] 1. Variable_λ³€μˆ˜

λ§λž‘μ΄Β·2023λ…„ 6μ›” 13일
0

JAVA

λͺ©λ‘ 보기
5/13
post-thumbnail

1 λ³€μˆ˜μ„ μ–Έκ³Ό μ €μž₯

🩷 λ³€μˆ˜(variable) : 값을 μ €μž₯ν•  수 μžˆλŠ” μ €μž₯곡간

  • λ³€μˆ˜λŠ” 였직 ν•˜λ‚˜μ˜ κ°’λ§Œ μ €μž₯ν•  수 있음
  • 값이 μžˆλŠ” λ³€μˆ˜ β†’ μƒˆλ‘œμš΄ κ°’ μ €μž₯ ➑️ κΈ°μ‘΄ κ°’ μ§€μ›Œμ§

1️⃣ λ³€μˆ˜μ„ μ–Έ

πŸ“ λ³€μˆ˜νƒ€μž… λ³€μˆ˜μ΄λ¦„;
	int x;

πŸ“ λ³€μˆ˜μ— κ°’ μ €μž₯
	x = 5;

2️⃣ Java code

class Variable4 {
    public static void main(String[] args) {
        int x = 5;
        System.out.println(x);

        // κΈ°μ‘΄ x κ°’ μ§€μ›Œμ§
        x = 10;
        System.out.println(x);
    }
}

2 λ³€μˆ˜νƒ€μž…

λ³€μˆ˜ μ„ μ–Έ μ‹œ λ³€μˆ˜μ— μ €μž₯ν•  κ°’μ˜ μ’…λ₯˜ ➑️ λ³€μˆ˜νƒ€μž… 선택

λΆ„λ₯˜λ³€μˆ˜νƒ€μž…μ •μ˜
숫자intμ •μˆ˜(integer) μ €μž₯νƒ€μž…
longμ •μˆ˜(integer) μ €μž₯νƒ€μž…, (20μ–΅ λ„˜μ„ λ•Œ)
floatμ‹€μˆ˜(floating-point number) μ €μž₯νƒ€μž…, (7자리)
doubleμ‹€μˆ˜(floating-point number) μ €μž₯νƒ€μž…, (15자리)
문자char문자(character) μ €μž₯νƒ€μž…
Stringμ—¬λŸ¬λ¬Έμž(λ¬Έμžμ—΄) μ €μž₯νƒ€μž…

πŸ“Ž Java code

class Variable5 {
    public static void main(String[] args) {
        int x = 100;
        double pi = 3.14;
        char ch = 'a';
        String str = "abc";

        System.out.println(x);
        System.out.println(pi);
        System.out.println(ch);
        System.out.println(str);
    }
}

3 μƒμˆ˜μ™€ λ¦¬ν„°λŸ΄

1️⃣ μƒμˆ˜

🩷 μƒμˆ˜(constant) : λ³€μˆ˜μ™€ 달리 κ°’ 변경이 λΆˆκ°€λŠ₯ν•œ μ €μž₯곡간

πŸ“Ž μƒμˆ˜μ„ μ–Έ

final int MAX_SPEED = 10;
  • λ³€μˆ˜νƒ€μž… μ•ž, final λΆ™μž„
  • μƒμˆ˜μ΄λ¦„ β†’ λͺ¨λ‘ λŒ€λ¬Έμž
  • μ—¬λŸ¬λ‹¨μ–΄ β†’ _둜 ꡬ뢄

2️⃣ λ¦¬ν„°λŸ΄

🩷 λ¦¬ν„°λŸ΄(literal) : κΈ°μ‘΄ μˆ˜ν•™μ  κ°œλ…μ˜ μƒμˆ˜μ˜ λ‹€λ₯Έμ΄λ¦„

int year = 2023;
final int MAX_VALUE = 100;

πŸ“ λ³€μˆ˜ : year
πŸ“ μƒμˆ˜ : MAX_VALUE
πŸ“ λ¦¬ν„°λŸ΄ : 2023, 100

πŸ“Ž λ¦¬ν„°λŸ΄ νƒ€μž…κ³Ό 접미사

μ’…λ₯˜λ¦¬ν„°λŸ΄μ ‘미사
λ…Όλ¦¬ν˜•false, true❌
μ •μˆ˜ν˜•int νƒ€μž… (byte, short 포함)❌
long νƒ€μž…L or l
μ‹€μˆ˜ν˜•float νƒ€μž…F or f (μƒλž΅λΆˆκ°€)
double νƒ€μž…D or d (μƒλž΅κ°€λŠ₯)
λ¬Έμžν˜•char νƒ€μž…βŒ
λ¬Έμžμ—΄String νƒ€μž…βŒ
  • μ •μˆ˜ν˜• int νƒ€μž… β†’ κΈ°λ³Έμžλ£Œν˜• ➑️ 접미사 μƒλž΅ βœ…
  • μ‹€μˆ˜ν˜• double νƒ€μž… β†’ κΈ°λ³Έμžλ£Œν˜• ➑️ 접미사 μƒλž΅ βœ…

πŸ“Ž 문자 및 λ¬Έμžμ—΄ λ¦¬ν„°λŸ΄

πŸ“ λ¬Έμžλ¦¬ν„°λŸ΄ : μž‘μ€λ”°μ˜΄ν‘œλ‘œ 문자 ν•˜λ‚˜λ₯Ό 감싼 것
	char ch = 'J';

πŸ“ λ¬Έμžμ—΄λ¦¬ν„°λŸ΄ : ν°λ”°μ˜΄ν‘œλ‘œ 두 문자 이상을 감싼 것
	String name = "Java";
ꡬ뢄곡백 ν—ˆμš©μ—¬λΆ€
λ¬Έμžλ¦¬ν„°λŸ΄' ' β†’ κ³΅λ°±λΆˆκ°€ ⛔️
λ¬Έμžμ—΄λ¦¬ν„°λŸ΄" " β†’ 곡백가λŠ₯ βœ…

πŸ“Ž String class

  • String은 클래슀 β†’ 객체생성 μ—°μ‚°μž newλ₯Ό μ‚¬μš©ν•΄μ•Όν•¨
  • νŠΉλ³„νžˆ κ°„λ‹¨ν•œ ν‘œν˜„λ„ ν—ˆμš©
String name = new String("Java"); // String 객체 생성
String name = "Java";

4 λ¬Έμžμ—΄κ²°ν•©

🩷 λ¬Έμžμ—΄κ²°ν•©

  • 숫자 뿐 μ•„λ‹ˆλΌ 두 λ¬Έμžμ—΄μ„ ν•©μΉ λ•Œ (+) μ‚¬μš©κ°€λŠ₯
  • 피연산쀑 ν•˜λ‚˜κ°€ String β†’ λ‚˜λ¨Έμ§€ ν”Όμ—°μ‚°μžλ„ String으둜 λ³€ν™˜
    ➑️ 두 String을 κ²°ν•©
πŸ“ μ–΄λ–€ νƒ€μž…μ΄λ“  λ¬Έμžμ—΄κ³Ό λ§μ…ˆμˆ˜ν–‰ β†’ κ²°κ³Ό λͺ¨λ‘ λ¬Έμžμ—΄
	String + any type β†’ String + String ➑️ String
	any type + String β†’ String + String ➑️ String

1️⃣ μˆ«μžν˜•μ„ λ¬Έμžμ—΄λ‘œ ν˜•λ³€ν™˜

πŸ“ μˆ«μžν˜• type + 빈 λ¬Έμžμ—΄ " " β†’ String type
	System.out.println(7 + "");
    // 7

2️⃣ Java code

 class Variable6 {
    public static void main(String[] args) {
        String name = "Ja" + "va"; // Java
        String str = name + 19; // Java19

        System.out.println(name);
        System.out.println(str);

        // μˆ«μžν˜• + λ¬Έμžμ—΄ -> λ¬Έμžμ—΄
        System.out.println(22 + " ");
        System.out.println(22 + "");

        // λ§μ…ˆ μˆœμ„œμ— 따라 λ‹€λ₯Έ κ²°κ³Όκ°’
        System.out.println(20 + 2 + ""); // String 22
        System.out.println("" + 2 + 2); // String 22
    }
 }

5 두 λ³€μˆ˜ κ°’ λ°”κΎΈκΈ°

🩷 두 λ³€μˆ˜ κ°’ λ°”κΎΈκΈ° : 값을 μž„μ‹œλ‘œ μ €μž₯ν•  λ³€μˆ˜λ₯Ό ν•˜λ‚˜ 더 μƒμ„±ν•œλ‹€

 class Variable7 {
    public static void main(String[] args) {
        int x = 10, y = 5;

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

        // 1. x -> trans
        int trans = x;
        // 2. y -> x
        x = y;
        // 3. trans -> y
        y = trans;

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

6 μžλ£Œν˜•

🩷 μžλ£Œν˜•(data type)

  • data type에 따라 값이 μ €μž₯될 곡간크기 및 μ €μž₯ν˜•μ‹μ„ μ§€μ •ν•œ 것
  • κΈ°λ³Έν˜•κ³Ό μ°Έμ‘°ν˜•μœΌλ‘œ λ‚˜λˆ„μ–΄μ§

1️⃣ κΈ°λ³Έν˜•κ³Ό μ°Έμ‘°ν˜•

πŸ“ κΈ°λ³Έν˜•(primitive type)
	- λ…Όλ¦¬ν˜•, λ¬Έμžν˜•, μ •μˆ˜ν˜•, μ‹€μˆ˜ν˜• 계산을 μœ„ν•œ μ‹€μ œκ°’ μ €μž₯
    - κΈ°λ³Έν˜• λ³€μˆ˜ κ°„ μ—°μ‚° κ°€λŠ₯ βœ…

πŸ“ μ°Έμ‘°ν˜•(reference type)
	- 객체가 μ €μž₯λ˜μ–΄ μžˆλŠ” μ£Όμ†Œλ₯Ό κ°’μœΌλ‘œ 가짐
    - memory address
    - μ°Έμ‘°ν˜• λ³€μˆ˜ κ°„ μ—°μ‚° λΆˆκ°€ ⛔️

2️⃣ κΈ°λ³Έν˜• μ’…λ₯˜μ™€ λ²”μœ„

πŸ“Ž κΈ°λ³Έν˜• μ’…λ₯˜μ™€ 크기

ꡬ뢄1 byte2 byte4 byte8 byte
λ…Όλ¦¬ν˜•boolean
λ¬Έμžν˜•char
μ •μˆ˜ν˜•byteshortintlong
μ‹€μˆ˜ν˜•floatdouble

πŸ“Ž μ €μž₯ν•  수 μžˆλŠ” κ°’μ˜ λ²”μœ„

μžλ£Œν˜•bitbyte
boolean8 bit1 byte
char16 bit2 byte
byte8 bit1 byte
short16 bit2 byte
int32 bit4 byte
long64 bit8 byte
float32 bit4 byte
double64 bit8 byte

7 printf()

🩷 printf() : μ§€μ‹œμž(specifier)λ₯Ό 톡해 λ³€μˆ˜μ˜ 값을 μ—¬λŸ¬κ°€μ§€ ν˜•μ‹μœΌλ‘œ λ³€ν™˜ν•˜μ—¬ 좜λ ₯

  • println() : λ³€μˆ˜μ˜ 값을 κ·ΈλŒ€λ‘œ 좜λ ₯함
  • μ§€μ‹œμž : 값을 μ–΄λ–»κ²Œ 좜λ ₯ν•  것인지 μ§€μ‹œν•΄μ£ΌλŠ” μ—­ν• 
  • μ€„λ°”κΏˆ 지원 ❌ β†’ %n μΆ”κ°€λ‘œ 뢙이기

1️⃣ printf() μ§€μ‹œμž

μ§€μ‹œμžκΈ°λŠ₯
%d10μ§„ μ •μˆ˜ ν˜•μ‹μœΌλ‘œ 좜λ ₯
%fλΆ€λ™μ†Œμˆ˜μ (floating-point) ν˜•μ‹μœΌλ‘œ 좜λ ₯
%c문자(character) ν˜•μ‹μœΌλ‘œ 좜λ ₯
%sλ¬Έμžμ—΄(String) ν˜•μ‹μœΌλ‘œ 좜λ ₯
%nμ€„λ°”κΏˆ

2️⃣ μ‹€μˆ˜ν˜• μ§€μ‹œμž

πŸ“ %f : μ†Œμˆ˜μ  6μžλ¦¬κΉŒμ§€ 좜λ ₯ (7μžλ¦¬μ—μ„œ 반올림)

πŸ“ %e : μ§€μˆ˜ν˜•νƒœλ‘œ 좜λ ₯
	- e2 = 10*10

πŸ“ %g : 값을 κ°„λž΅νžˆ ν‘œν˜„

3️⃣ μ „μ²΄μžλ¦¬μˆ˜ 및 μ†Œμˆ˜μ μ•„λž˜ 자리수 μ§€μ •

  • %μ „μ²΄μžλ¦¬.μ†Œμˆ˜μ μ•„λž˜μžλ¦¬f

    • System.out.printf("d = %14.10f%n", d);
    • 전체 14자리 쀑, μ†Œμˆ˜μ μ•„λž˜ 10자리
  • μ •μˆ˜λΆ€λΆ„ β†’ 빈자리 곡백으둜 채움

  • μ†Œμˆ˜μ μ•„λž˜λΆ€λΆ„ β†’ 빈자리 0으둜 채움

    • μ†Œμˆ˜μ  ν•œμžλ¦¬ μ°¨μ§€ βœ…

4️⃣ λ¬Έμžμ—΄ μ§€μ‹œμž

πŸ“ λ¬Έμžμ—΄ 길이만큼 좜λ ₯곡간 확보
	System.out.printf("[%s]%n", url);

πŸ“ 20κΈ€μž 좜λ ₯곡간 확보 (μš°μΈ‘μ •λ ¬)
	System.out.printf("[%20s]%n", url);

πŸ“ 20κΈ€μž 좜λ ₯곡간 확보 (μ’ŒμΈ‘μ •λ ¬)
	System.out.printf("[%-20s]%n", url);

πŸ“ μ™Όμͺ½μ—μ„œ 8κΈ€μžλ§Œ 좜λ ₯
	System.out.printf("[%.8s]%n", url);

8 μ •μˆ˜ν˜• μ˜€λ²„ν”Œλ‘œμš°

🩷 μ˜€λ²„ν”Œλ‘œμš°(overflow) : μ—°μ‚°κ³Όμ •μ—μ„œ νƒ€μž…μ΄ ν‘œν˜„ν•  수 μžˆλŠ” κ°’μ˜ λ²”μœ„λ₯Ό λ„˜μ–΄μ„œλŠ” 것

  • μ˜€λ²„ν”Œλ‘œμš° β†’ Error λ°œμƒ ❌
  • μ˜ˆμƒν–ˆλ˜ κ²°κ³Όλ₯Ό μ–»μ§€ λͺ»ν•¨
    • ex. μ €μž₯곡간이 μ—†μ–΄ μ•žμžλ¦¬κ°€ λ²„λ €μ§€λŠ” 경우

πŸ“Ž μ˜€λ²„ν”Œλ‘œμš° μˆœν™˜κ°œλ…

μ΅œλŒ€κ°’ + 1 β†’ μ΅œμ†Œκ°’
μ΅œμ†Œκ°’ - 1 β†’ μ΅œλŒ€κ°’

9 νƒ€μž…κ°„ λ³€ν™˜

  • int type β†’ char type : μˆ«μžμ— 0 λ”ν•˜κΈ°

    • (char)(3 + '0') β†’ '3'
  • char type β†’ int type : λ¬Έμžμ—μ„œ 0 λΉΌκΈ°

    • '3' - '0' β†’ 3
  • int type β†’ string type : μˆ«μžμ— λΉˆλ¬Έμžμ—΄ λ”ν•˜κΈ°

    • 3 + "" β†’ "3"
  • string type β†’ int type

    • Integer.parseInt("3") β†’ 3
    • Double.parseDouble("3.14") β†’ 3.14
  • string type β†’ char type : charAt(0)

    • "3".charAt(0) β†’ '3'
  • char type β†’ string type : "" λ”ν•˜κΈ°

    • '3' + "" β†’ "3"

πŸ“Ž Java code

class Variable8 {
    public static void main(String[] args) {
        String str = "3";

        // λ¬Έμžμ—΄ -> 문자 -> 숫자
        System.out.println(str.charAt(0));
        // 문자 -> 숫자
        System.out.println('3' - '0'+ 1);
        // λ¬Έμžμ—΄ -> 숫자
        System.out.println(Integer.parseInt("3") + 1);
        // λ¬Έμžμ—΄ + λ¬Έμžμ—΄
        System.out.println("3" + 1);
        // 숫자 -> 문자
        System.out.println((char) (3 + '0'));
    }
}
profile
🐰 I'm Sunyeon-Jeong, mallang

0개의 λŒ“κΈ€