0416 μžλ°” 6일차 πŸ• 클래슀 볡슡, λ©”μ†Œλ“œ(STATIC, λ§€κ°œλ³€μˆ˜)

λ‹€ 은·2024λ…„ 4μ›” 16일

JAVA

λͺ©λ‘ 보기
8/14

1. 클래슀 볡슡

πŸ‘½ 각각의 μžλ™μ°¨κ°€ μ„œλ‘œ λ‹€λ₯Έ μ΅œκ³ μ†λ ₯으둜 λ‹¬λ¦¬κ²Œ 생성

class Main {
    public static void main(String[] args) {
        μžλ™μ°¨ aμžλ™μ°¨1 = new μžλ™μ°¨();
        μžλ™μ°¨ aμžλ™μ°¨2 = new μžλ™μ°¨();

        aμžλ™μ°¨1.speed = 230;
        aμžλ™μ°¨1.달리닀();

        aμžλ™μ°¨2.speed = 210;
        aμžλ™μ°¨2.달리닀();
    }
}

class μžλ™μ°¨ {
    int speed;
    void 달리닀() {
        System.out.println("μžλ™μ°¨κ°€ 졜고 속λ ₯ " + this.speed + "km둜 λ‹¬λ¦½λ‹ˆλ‹€.");
    }											// thisλŠ” μƒλž΅ κ°€λŠ₯
}
βœ… μžλ™μ°¨κ°€ μ΅œκ³ μ†λ ₯ 230km둜 λ‹¬λ¦½λ‹ˆλ‹€.
μžλ™μ°¨κ°€ μ΅œκ³ μ†λ ₯ 210km둜 λ‹¬λ¦½λ‹ˆλ‹€.

πŸ‘½ λ²ˆν˜Έκ°€ λ‹€λ₯Έ 각각의 μžλ™μ°¨κ°€ μ„œλ‘œ λ‹€λ₯Έ μ΅œκ³ μ†λ ₯으둜 λ‹¬λ¦¬κ²Œ 생성

class Main {
    public static void main(String[] args) {

        μžλ™μ°¨ aμžλ™μ°¨1 = new μžλ™μ°¨();
        μžλ™μ°¨ aμžλ™μ°¨2 = new μžλ™μ°¨();

        aμžλ™μ°¨1.speed = 230;
        aμžλ™μ°¨1.번호 = 1;
        aμžλ™μ°¨1.달리닀();.

        aμžλ™μ°¨2.speed = 210;
        aμžλ™μ°¨2.번호 = 2;
        aμžλ™μ°¨2.달리닀();
    }
}

class μžλ™μ°¨ {
    int speed;
    int 번호;
    void 달리닀() {
        System.out.println(this.번호 + "번 μžλ™μ°¨κ°€ 졜고 속λ ₯ " + this.speed + "km둜 λ‹¬λ¦½λ‹ˆλ‹€.");
    }
}
βœ… 1번 μžλ™μ°¨κ°€ 졜고 속λ ₯ 230km둜 λ‹¬λ¦½λ‹ˆλ‹€.
2번 μžλ™μ°¨κ°€ 졜고 속λ ₯ 210km둜 λ‹¬λ¦½λ‹ˆλ‹€.

πŸ‘½ μΌλ°˜λ³€μˆ˜μ— κ°’ ν• λ‹Ήκ³Όμ • μ„€λͺ…

class Main {
  public static void main(String[] args) {
    int x;		
    // μ •μˆ˜ν˜• 데이터λ₯Ό μ €μž₯ν•  수 μžˆλŠ” λ³€μˆ˜λͺ… xλ₯Ό μ„ μ–Έν•œλ‹€. μ΄ˆκΈ°μ—λŠ” x에 μ“°λ ˆκΈ° κ°’(garbage value)인 0이 λ“€μ–΄κ°„λ‹€.
    
    x = 20;		
    // μ„ μ–Έλœ λ³€μˆ˜ x에 μ •μˆ˜ 20을 μ΄ˆκΈ°ν™”μ‹œμΌœ λŒ€μž…ν•œλ‹€.
  }
}

πŸ‘½ 레퍼런슀 λ³€μˆ˜μ— κ°’ ν• λ‹Ήκ³Όμ • μ„€λͺ…

class Main {
    public static void main(String[] args) {
        μžλ™μ°¨ aμžλ™μ°¨; // class μžλ™μ°¨μ— 객체 aμžλ™μ°¨λ₯Ό μ„ μ–Έ

        aμžλ™μ°¨ = new μžλ™μ°¨(); // 객체 aμžλ™μ°¨λ₯Ό μžλ™μ°¨ 클래슀의 μƒˆλ‘œμš΄ 객체 λ³€μˆ˜λ‘œ μ„ μ–Έ

        aμžλ™μ°¨.달리닀(); // 달리닀() λ©”μ†Œλ“œλ₯Ό 호좜

        // λͺ¨λ“  객체듀은 μ„œλ‘œλ₯Ό 평생 λ³Ό 수 μ—†λ‹€.
        // λͺ¨λ“  객체듀은 μ„œλ‘œλ₯Ό μ›κ²©μ‘°μ’…ν•œλ‹€.
    }
}

class μžλ™μ°¨ {
    void 달리닀() {
        System.out.println("μžλ™μ°¨κ°€ λ‹¬λ¦½λ‹ˆλ‹€.");
    }
}

πŸ‘½ μΈμŠ€ν„΄μŠ€ λ©”μ†Œλ“œ μ‹€ν–‰

class Main {
    public static void main(String[] args) {
        μ‚¬λžŒ p = new μ‚¬λžŒ();
        p.λ§ν•˜λ‹€();
    }
}

class μ‚¬λžŒ {
    // μ‚¬λžŒμ€ `λ§ν•˜λ‹€` λΌλŠ” κΈ°λŠ₯을 κ°€μ§€κ³  μžˆμŠ΅λ‹ˆλ‹€.
    void λ§ν•˜λ‹€() {
        System.out.println("μ‚¬λžŒμ΄ λ§ν•©λ‹ˆλ‹€.");
    }
}

πŸ‘½ μΈμŠ€ν„΄μŠ€ λ©”μ†Œλ“œ 2개 μ‹€ν–‰

class Main {
    public static void main(String[] args) {
        거뢁이 a거뢁이 = new 거뢁이();

        a거뢁이.κ±·λ‹€();
        // 좜λ ₯ => κ±·λ‹€
        a거뢁이.μˆ˜μ˜ν•˜λ‹€();
        // 좜λ ₯ => μˆ˜μ˜ν•˜λ‹€
    }
}

class 거뢁이 {
    static void κ±·λ‹€(){
        System.out.println("κ±·λ‹€.");
    }
    static void μˆ˜μ˜ν•˜λ‹€(){
        System.out.println("μˆ˜μ˜ν•˜λ‹€.");
    }
}

πŸ‘½ 리λͺ¨μ½˜μ˜ λ³€μˆ˜ μ˜¬λ°”λ₯΄κ²Œ μˆ˜μ •

class Main {
    public static void main(String[] args) {
        μžλ™μ°¨ μžλ™μ°¨1 = new μžλ™μ°¨;

        μžλ™μ°¨1.λ‹¬λ¦½λ‹ˆλ‹€();
    }
}

class μžλ™μ°¨ {
    static void λ‹¬λ¦½λ‹ˆλ‹€() {
        System.out.println("μžλ™μ°¨κ°€ λ‹¬λ¦½λ‹ˆλ‹€.");
    }
}

πŸ‘½ 리λͺ¨μ½˜μ„ λ³€μˆ˜μ— μ €μž₯ν•˜μ§€ μ•Šκ³  μ‚¬μš©

class Main {
    public static void main(String[] args) {
        new Car().달리닀();   // λ³€μˆ˜μ— μ €μž₯ X!
    }
}

class Car{
    static void 달리닀(){
        System.out.println("μ”½μ”½");
    }
}

πŸ‘½ 5개의 μ„œλ‘œ λ‹€λ₯Έ μ’…λ₯˜μ˜ 객체λ₯Ό λ§Œλ“€κ³  각각의 객체에 λ©”μ†Œλ“œ 생성

class Main {
    public static void main(String[] args) {
        One one = new One();
        Two two = new Two();
        Three three = new Three();
        Four four = new Four();
        Five five = new Five();

        one.methodone();
        two.methodtwo();
        three.methodthree();
        four.methodfour();
        five.methodfive();
    }
}

class One{
    void methodone(){
        System.out.println("method one");
    }
}
class Two {
    void methodtwo() {
        System.out.println("method two");
    }
}
class Three {
    void methodthree(){
        System.out.println("method three");
    }
}
class Four {
    void methodfour(){
        System.out.println("method four");
    }
}
class Five {
    void methodfive(){
        System.out.println("method five");
    }
}

2. λ©”μ†Œλ“œ(METHOD)

μ§€κΈˆκΉŒμ§€ ν΄λž˜μŠ€μ™€ 객체, 클래슀 μ•ˆμ— λ©”μ†Œλ“œλ₯Ό μƒμ„±ν•˜μ—¬ μ‚¬μš©ν–ˆλ‹€. κ·Έλ ‡λ‹€λ©΄ 객체λ₯Ό μƒμ„±ν•˜μ§€ μ•Šκ³  λ©”μ†Œλ“œλ₯Ό ν˜ΈμΆœν•˜μ—¬ μ‚¬μš©ν•˜λ €κ³  ν•œλ‹€λ©΄ μ–΄λ–»κ²Œ ν•΄μ•Όν• κΉŒ? 이제 μ•Œμ•„λ³΄μž.

πŸ‘½ 객체 μ‚¬μš©ν•˜μ§€ μ•Šκ³  λ©”μ†Œλ“œ 호좜

class Main {
    public static void main(String[] args) {
        μžλ™μ°¨.달리닀();		// 객체 없이 λ©”μ†Œλ“œ 호좜
    }
}

class μžλ™μ°¨ {
    static void 달리닀() { 	// 정적 멀버인 static을 μ‚¬μš©ν•˜μ—¬ 객체λ₯Ό μƒμ„±ν•˜μ§€ μ•Šκ³ λ„ λ©”μ†Œλ“œλ₯Ό μ‚¬μš©ν•  수 μžˆλ„λ‘ λ§Œλ“€μ–΄μ€Œ
    }
}

정적 λ©€λ²„λž€, μ•žμ— static이 뢙은 아이듀을 λ§ν•œλ‹€. static은 μ˜μ–΄ λ‹¨μ–΄λ‘œ μ‚¬μš©ν•  λ•Œμ—λ„ 'κ³ μ •λœ'μ΄λΌλŠ” λœ»μ„ κ°€μ§€κ³ μžˆλ‹€. μœ„ μ½”λ“œμ²˜λŸΌ λ©”μ†Œλ“œμ— static을 λΆ™μ—¬μ£Όλ©΄ 객체 생성 없이 λ©”μ†Œλ“œλ₯Ό ν˜ΈμΆœν•  수 μžˆλ‹€. static을 톡해 μƒμ„±λœ λ©”μ†Œλ“œλ‚˜ λ³€μˆ˜λŠ” heap μ˜μ—­μ΄ μ•„λ‹Œ static μ˜μ—­μ— μ €μž₯λ˜μ–΄ λͺ¨λ“  객체가 λ©”λͺ¨λ¦¬λ₯Ό κ³΅μœ ν•œλ‹€. λ”°λΌμ„œ 클래슀의 λ‘œλ”© 직후 λ°”λ‘œ μ‚¬μš©ν•  수 μžˆλŠ” 것이닀. λ‹€μŒ μ½”λ“œλŠ” static λ©”μ†Œλ“œλ₯Ό μƒμ„±ν•˜μ—¬ 객체의 생성 없이 λ°”λ‘œ λ©”μ†Œλ“œλ₯Ό μ‹€ν–‰ν•  수 μžˆλ‹€.

πŸ‘½ ꡬꡬ단 λ§Œλ“€κΈ°

class Main {
    public static void main (String[] args) {
        ꡬꡬ단.μ‹€ν–‰();		// 객체 없이 ꡬꡬ단 μ‹€ν–‰
    }
}

class ꡬꡬ단 {	
    static void μ‹€ν–‰(){		// ꡬꡬ단을 μ‹€ν–‰ν•˜λŠ” λ©”μ†Œλ“œ 생성
        for(int i = 2; i <= 9; i++) {	// ꡬꡬ단 forλ¬Έ
            System.out.println("-------- " + i + "단 -------- ");
            for(int j = 1; j <= 9; j++) {
                System.out.println(i + " * " + j + " = " + i*j);
            }
        }
    }
}

2-1. 맀개 λ³€μˆ˜, 인자

πŸ‘½ 맀개 λ³€μˆ˜μ™€ 인자

public class Main {
	public static void main (String[] args) {
    	System.out.println(hap(4, 9))
    }
	public static int hap(int a, int b) {
    	return a+b;
    }
}

μœ„ μ½”λ“œλŠ” main λ©”μ†Œλ“œκ°€ λ¨Όμ € 싀행이 되고, hap λ©”μ†Œλ“œλ₯Ό ν˜ΈμΆœν•˜λŠ” hap(4, 9)κ°€ μ‹€ν–‰λ˜λŠ”λ° μ΄λ•Œ 4, 9κ°€ hap λ©”μ†Œλ“œμ— λŒ€μ‘ν•˜λŠ” 인자이고, hap λ©”μ†Œλ“œμ— μžˆλŠ” int a와 b에 μ°¨λ‘€λŒ€λ‘œ λŒ€μž…λ˜λŠ”λ° 이 λ•Œ int a 와 bκ°€ 맀개 λ³€μˆ˜μ΄λ‹€.

0개의 λŒ“κΈ€