μ ‘κ·Ό μˆ˜μ€€ μ§€μ‹œμž (classTest2)

2023. 1. 30. 09:27ㆍjava

μ ‘κ·Ό μ œν•œμž μ’…λ₯˜ :

public

protected (상속을 λ°°μ›Œμ•Ό μ•Œ 수 있기 λ•Œλ¬Έμ— μž μ‹œ μƒλž΅)

default

private 

 

μ ‘κ·Όμ œν•œμžλŠ” 클래슀, λ©€λ²„λ³€μˆ˜, λ©”μ†Œλ“œμ— μ‚¬μš© κ°€λŠ₯.

클래슀 : public, default 만 μ‚¬μš© κ°€λŠ₯

λ©€λ²„λ³€μˆ˜ 및 λ©”μ†Œλ“œ : μœ„ 4κ°€μ§€ λ‹€ μ‚¬μš© κ°€λŠ₯

 

1.public

같은 ν”„λ‘œμ νŠΈ λ‚΄μ—μ„œλŠ” μ–΄λ””λ“  μ ‘κ·Ό κ°€λŠ₯

package package1;

import package2.Ccc;

public class Bbb {
    int b;

    public void bbb() {
        Aaa aaa = new Aaa();
        Ccc ccc = new Ccc();

    }
}

 

2.default 

같은 νŒ¨ν‚€μ§€ λ‚΄μ—μ„œλŠ” μ ‘κ·Ό κ°€λŠ₯

defaultλŠ” 클래슀 μ•žμ— λ”°λ‘œ λΆ™μ§€ μ•ŠμŒ. 아무것도 μ ν˜€μžˆμ§€ μ•Šμ„ λ•Œ default둜 인식.

package package2;

public class Ccc {
    int c;

    public void ccc(){
        Ddd ddd = new Ddd();

    }
}
class Ddd{

}

클래슀 Ccc와 DddλŠ” 같은 νŒ¨ν‚€μ§€ μ•ˆμ— 있기 λ•Œλ¬Έμ— μ ‘κ·Ό κ°€λŠ₯.

package package1;

import package2.Ccc;

public class Aaa {
    int a;
    public void aaa() {
        Ccc ccc = new Ccc();
        Ddd ddd = new Ddd(); //였λ₯˜

    }
}

클래슀 CccλŠ” public μ ‘κ·Όμ œν•œμžμ΄κΈ° λ•Œλ¬Έμ— μ–΄λ””μ„œλ“  μ ‘κ·Ό κ°€λŠ₯
클래슀 DddλŠ” default μ ‘κ·Όμ œν•œμžμ΄κΈ° λ•Œλ¬Έμ— λ‹€λ₯Έ νŒ¨ν‚€μ§€μ—μ„œ μ ‘κ·Ό λΆˆκ°€

 

3.private 

μ„ μ–Έλœ 클래슀 λ‚΄μ—μ„œλ§Œ μ ‘κ·Ό κ°€λŠ₯

package package1;

import package2.Ccc;

public class Aaa {
    int a1; //λ³€μˆ˜μ— μ ‘κ·Όμ œν•œμž default μƒλž΅
    private int a2;
    public int a3;
    public void aaa() {
        Ccc ccc = new Ccc();
        //Ddd ddd = new Ddd(); //였λ₯˜
        //CccλŠ” public μ ‘κ·Όμ œν•œμž > μ–΄λ””μ„œλ“  μ ‘κ·Ό κ°€λŠ₯
        //DddλŠ” default μ ‘κ·Όμ œν•œμž > λ‹€λ₯Έ νŒ¨ν‚€μ§€μ—μ„œ μ ‘κ·Ό λΆˆκ°€
    }

    void bbb(){ //μ ‘κ·Όμ œν•œμž μƒλž΅λ˜μ—ˆμŒ > default
        ccc();
    } 
    private void ccc(){}

}

a2λΌλŠ” λ³€μˆ˜κ°€ μ„ μ–Έλœ 클래슀 aaa μ•ˆμ—μ„œλ§Œ μ ‘κ·Ό κ°€λŠ₯

cccλΌλŠ” λ©”μ†Œλ“œκ°€ μ„ μ–Έλœ 클래슀 aaaμ•ˆμ—μ„œλ§Œ μ ‘κ·Ό κ°€λŠ₯

 

package package1;

import package2.Ccc;

public class Bbb {
    int b;

    public void bbb() {
        Aaa aaa = new Aaa();
        aaa.a1 = 10;
        aaa.a2 = 10;  //였λ₯˜ private μ ‘κ·Όμ œν•œμžλ₯Ό κ°€μ§€κΈ° λ•Œλ¬Έ
        aaa.a3 = 10;

        Ccc ccc = new Ccc();

    }
}

λ©”μ†Œλ“œλŠ” public

λ§€κ°œλ³€μˆ˜λŠ” private μ“°μž!

 

package package2;

import package1.Aaa;

public class Ccc {
    int c;

    public void ccc(){
        Ddd ddd = new Ddd();
        Aaa aaa = new Aaa();
        aaa.aaa(); 
        aaa.bbb(); //bbbλŠ” default라 μ‚¬μš© λͺ» 함. (νŒ¨ν‚€μ§€1μ—μ„œ 선언됨)
        aaa.ccc(); //cccλŠ” private라 μ‚¬μš© λͺ» 함. 

    }
}
class Ddd{

}

 

μƒμ„±μžμ— privateλ₯Ό μ“°λ©΄ λ‹€λ₯Έ ν΄λž˜μŠ€μ—μ„œ 객체 생성을 λͺ» 함.