• [Java] ch2 μžλ°” μ†ŒμŠ€μ½”λ“œ ꡬ쑰 & μžλ£Œν˜• μ’…λ₯˜

    2023. 8. 9.

    by. @leeeun

    01 μžλ°” μ†ŒμŠ€μ½”λ“œμ˜ ꡬ쑰

    클래슀λͺ….java ν˜•μ‹

    /* 클래슀 블둝 */
    public class 클래슀λͺ… {
    
        /* λ©”μ„œλ“œ 블둝 */
        [public|private|protected] [static] (λ¦¬ν„΄μžλ£Œν˜•|void) λ©”μ„œλ“œλͺ…1(μž…λ ₯μžλ£Œν˜• λ§€κ°œλ³€μˆ˜, ...) {
            λͺ…λ Ήλ¬Έ(statement);
            ...
        } 
    
        /* λ©”μ„œλ“œ 블둝 */
        [public|private|protected] [static] (λ¦¬ν„΄μžλ£Œν˜•|void) λ©”μ„œλ“œλͺ…2(μž…λ ₯μžλ£Œν˜• λ§€κ°œλ³€μˆ˜, ...) {
            λͺ…λ Ήλ¬Έ(statement);
            ...
        }
    
        ...
    }
    • public 클래슀λͺ…은 μ†ŒμŠ€νŒŒμΌμ˜ 이름(클래슀λͺ….java)κ³Ό λ™μΌν•˜κ²Œ μ‚¬μš©ν•΄μ•Ό 함
    • public, private, protected μ ‘κ·Όμ œμ–΄μž
    • static 정적 λ©”μ„œλ“œ
    • (λ¦¬ν„΄μžλ£Œν˜•|void) λ©”μ„œλ“œκ°€ μ‹€ν–‰λœ ν›„ λ¦¬ν„΄λ˜λŠ” κ°’μ˜ μžλ£Œν˜•. 리턴값이 μ—†μœΌλ©΄ void

    속성과 μƒμ„±μž

    속성 - 클래슀의 μƒνƒœλ₯Ό λ‚˜νƒ€λ‚΄λŠ” λ³€μˆ˜, 클래슀 내뢀에 μ„ μ–Έ

    μƒμ„±μž - 클래슀 μΈμŠ€ν„΄μŠ€λ₯Ό 생성할 λ•Œ μ‹€ν–‰λ˜λŠ” λ©”μ†Œλ“œ

    public class Sample {
    
        /* 속성 */
        private String message;
    
        /* μƒμ„±μž */
        public Sample(String message) {
            this.message = message;
        }
    }

    클래슀 블둝

    public class Sample {
        (... μƒλž΅ ...)
    }
    • μžλ°” μ½”λ“œμ˜ κ°€μž₯ λ°”κΉ₯ μ˜μ—­
    • class - 클래슀 블둝을 λ§Œλ“œλŠ” ν‚€μ›Œλ“œ
    • 클래슀 블둝은 μ—¬λŸ¬ λ©”μ†Œλ“œ 블둝을 포함

    λ©”μ„œλ“œλΈ”λ‘

    public class Sample {
        public static void main(String[] args) {
            (... μƒλž΅ ...)
        }
    }
    • class 블둝 μ•ˆμ˜ public static void main λΆ€λΆ„
    • λ©”μ„œλ“œλͺ… λ’€μ˜ κ΄„ν˜ΈλŠ” λ©”μ„œλ“œμ˜ μž…λ ₯인자 (μž…λ ₯μžλ£Œν˜• + λ§€κ°œλ³€μˆ˜λͺ… ν˜•νƒœ)
    • static - 클래슀 λ©”μ„œλ“œκ°€ λ˜μ–΄ 객체λ₯Ό λ§Œλ“€μ§€ μ•Šμ•„λ„ β€˜ν΄λž˜μŠ€λͺ….λ©”μ„œλ“œλͺ…’ ν˜•νƒœλ‘œ 호좜 κ°€λŠ₯
    • void - 리턴값이 μ—†μŒ
    • String[] args - λ©”μ„œλ“œμ˜ 맀개 λ³€μˆ˜λ‘œ, args λ³€μˆ˜λŠ” String[] λ°°μ—΄ μžλ£Œν˜•μž„μ„ 의미
    • λ©”μ„œλ“œ 블둝 μ•ˆμ—λŠ” 컴퓨터에 λ™μž‘μ„ μˆ˜ν–‰μ‹œν‚€λŠ” statement 쑴재

    02 λ³€μˆ˜μ™€ μžλ£Œν˜•

    λ³€μˆ˜μ˜ μ’…λ₯˜

    • μΈμŠ€ν„΄μŠ€ λ³€μˆ˜: 클래슀 μ„ μ–Έμ‹œ static ν‚€μ›Œλ“œ 없이 μ„ μ–Έλœ ν•„λ“œ. 이 ν•„λ“œλŠ” μΈμŠ€ν„΄μŠ€ λ³„λ‘œ λ‹€λ₯Έ 값을 κ°€μ§ˆ 수 있음
    • 클래슀 λ³€μˆ˜: 클래슀 μ„ μ–Έμ‹œ static ν‚€μ›Œλ“œμ™€ ν•¨κ»˜ μ„ μ–Έλœ ν•„λ“œ. 이 ν•„λ“œλŠ” λͺ¨λ“  μΈμŠ€ν„΄μŠ€λ“€μ΄ κ³΅μœ ν•˜λŠ” 값이닀. 클래슀 λͺ…μœΌλ‘œ 접근이 κ°€λŠ₯ν•˜κ³ , 클래슀 ν•˜λ‚˜μ— ν•œ 값이기 λ•Œλ¬Έμ— 클래슀 λ³€μˆ˜λΌκ³  λΆˆλ¦°λ‹€.
    • 둜컬 λ³€μˆ˜: λ©”μ„œλ“œ μ„ μ–Έ 사이에 λ“±μž₯ν•˜λŠ” λ³€μˆ˜λ‘œ λ‹€λ₯Έ ν΄λž˜μŠ€μ—μ„œ μ ‘κ·Όν•  수 μ—†λŠ” λ³€μˆ˜μ΄λ‹€. λ©”μ„œλ“œ μ˜μ—­μ—μ„œλ§Œ μž„μ‹œλ‘œ μ‚¬μš©λ˜λŠ” λ³€μˆ˜
    • 맀개 λ³€μˆ˜: λ©”μ„œλ“œμ˜ 인자둜 μ „λ‹¬λ˜λŠ” λ³€μˆ˜

    λ³€μˆ˜μ˜ 유효 λ²”μœ„

    Variable Type Scope LIfetime
    Instance Variable (static 블둝과 static λ©”μ„œλ“œλ₯Ό μ œμ™Έν•œ) 클래슀 전체 객체가 μƒμ„±λ˜κ³  객체가 λ©”λͺ¨λ¦¬μ— μ‚΄μ•„μžˆλŠ” λ™μ•ˆ
    Class Variable 클래슀 전체 ν΄λž˜μŠ€κ°€ μ΄ˆκΈ°ν™”λ˜κ³  ν”„λ‘œκ·Έλž¨μ΄ 끝날 λ•Œ κΉŒμ§€
    Local Variable λ³€μˆ˜κ°€ μ„ μ–Έλœ 블둝내뢀 λ³€μˆ˜ μ„ μ–Έ 이후 λΆ€ν„° 블둝을 λ²—μ–΄λ‚  λ•ŒκΉŒμ§€
    int a=1; //λ³€μˆ˜μ„ μ–Έ& κ°’λŒ€μž…

    μžλ£Œν˜•

    μ›μ‹œ μžλ£Œν˜•= κΈ°λ³Έ μžλ£Œν˜• (primitive data type)

    • μ‹€μ œ 값을 κ°–λŠ” μžλ£Œν˜•

    • μ •μˆ˜, μ‹€μˆ˜, 문자, 논리λ₯Ό μ €μž₯ν•˜λŠ” μžλ£Œν˜• (byte, short, int, long, boolean, float, double, char)

      byte range default value
      boolean μ •μ˜λ˜μ§€ μ•ŠμŒ(일반적으둜 1byte) true or false false
      char unsigned 2byte '\u0000'(0) to '\uffff'(65535) '\u0000'
      byte 1byte -128 to 127 0
      short 2byte -32,768 to 32,767 0
      int 4byte -231 to -231-1 0
      long 8byte -263 to -263-1 0
      float 4byte (6~7자리 정밀도) 0.0f
      double 8byte (15자리 정밀도) 0.0d

    μ°Έμ‘° μžλ£Œν˜•(reference data type)

    • μ‹€μ œ 값이 μ•„λ‹Œ 객체의 μ£Όμ†Œλ₯Ό 가지고 μžˆλŠ” μžλ£Œν˜•, νž™ λ©”λͺ¨λ¦¬μ— μ €μž₯
    • λ³€μˆ˜κ°€ 같은 μ°Έμ‘°λ₯Ό 가리킀고 있으면 ν•œ μͺ½μ—μ„œ 객체의 μƒνƒœλ₯Ό λ³€κ²½ν•˜λ©΄ λ‹€λ₯Έ μͺ½μ—μ„œλ„ 영ν–₯을 받을 수 있음
    • λ°°μ—΄, 클래슀, μΈν„°νŽ˜μ΄μŠ€ νƒ€μž… (String도 class type에 듀어감! μ°Έμ‘°ν˜•μ΄μ§€λ§Œ 사싀은 κΈ°λ³Έν˜•μ²˜λŸΌ λΆˆλ³€ν•œ 객체)
    νƒ€μž… μ˜ˆμ‹œ κΈ°λ³Έκ°’ ν• λ‹Ήλ˜λŠ” λ©”λͺ¨λ¦¬ 크기
    λ°°μ—΄(Array) int[] arr = new int[5]; Null 4 byte (객체의 μ£Όμ†Œκ°’)
    μ—΄κ±°(Enumeration) Null
    클래슀(Class) String str = "test";
    Student sujin = new Student(); Null
    μΈν„°νŽ˜μ΄μŠ€(Interface) Null
    • long
    • int
    • double
    • boolean
    • char
    • String
    • StringBuffer
    • List
    • Map
    • Set

    μ‚¬μš©μž μ •μ˜ μžλ£Œν˜•λ„ κ°€λŠ₯

    class 생성→ class에 ν•΄λ‹Ήν•˜λŠ” μžλ£Œν˜• λ³€μˆ˜ 생성


    03 λͺ…λͺ…κ·œμΉ™

    • 클래슀λͺ… - μžλ°” ν”„λ‘œκ·Έλž¨μ€ 클래슀 λ‹¨μœ„. λŒ€λΆ€λΆ„ λͺ…μ‚¬λ‘œ, λŒ€λ¬Έμžλ‘œ μ‹œμž‘
    • λ©”μ„œλ“œλͺ… - λŒ€λΆ€λΆ„ λ™μ‚¬λ‘œ ν•˜λ©°, 맨 μ²«κΈ€μžλ₯Ό μ œμ™Έν•œ λ‚˜λ¨Έμ§€ λ‹¨μ–΄μ˜ 첫 κΈ€μžλŠ” λŒ€λ¬Έμžλ‘œ

    04 주석

    • 블둝주석 /* */
    • 라인주석 //

    λŒ“κΈ€