[Java] ์ถ”์ƒํ™” - ์ถ”์ƒํด๋ž˜์Šค, ์ถ”์ƒ๋ฉ”์„œ๋“œ, ์ธํ„ฐํŽ˜์ด์Šค

2025. 5. 20. 17:32ยทโ˜•Java/๐Ÿ“Java Programming

โœ… 1. ์ถ”์ƒํด๋ž˜์Šค

public abstract class Animal {
    public abstract void run(); // ์ถ”์ƒ ๋ฉ”์„œ๋“œ
    
    public void eat() { // ์ผ๋ฐ˜ ๋ฉ”์„œ๋“œ
        System.out.println("This animal eats food.");
    }
}
  • ์ถ”์ƒ ํด๋ž˜์Šค๋Š” class ์•ž์— abstract ํ‚ค์›Œ๋“œ๋ฅผ ๋ถ™ํžŒ ํด๋ž˜์Šค๋ฅผ ์˜๋ฏธํ•œ๋‹ค.
  • abstract ํ‚ค์›Œ๋“œ๋ฅผ ๋ช…์‹œํ•˜๋ฉด ํ•ด๋‹น ํด๋ž˜์Šค๋Š” ๊ฐ์ฒด ์ƒ์„ฑ์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ํด๋ž˜์Šค๊ฐ€ ๋˜๋ฉฐ, ์ƒ์†์œผ๋กœ๋งŒ ์ด์šฉ์ด ๊ฐ€๋Šฅํ•ด์ง„๋‹ค.
  • ์ถ”์ƒํด๋ž˜์Šค ๋‚ด๋ถ€์—๋Š” ๋ฉค๋ฒ„ ๋ณ€์ˆ˜๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค.
  • ์ถ”์ƒํด๋ž˜์Šค์—๋Š” ์ถ”์ƒ๋ฉ”์„œ๋“œ, ์ผ๋ฐ˜๋ฉ”์„œ๋“œ ๋‘˜ ๋‹ค ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.
  • ๊ตฌํ˜„ ํด๋ž˜์Šค๊ฐ€ ์ƒ์†์„ ๋ฐ›๊ฒŒ๋˜๋ฉด, ์ถ”์ƒ ๋ฉ”์„œ๋“œ๋Š” ๋ฐ˜๋“œ์‹œ ๊ตฌํ˜„์„ ํ•ด์•ผํ•˜๊ณ , ์ผ๋ฐ˜ ๋ฉ”์„œ๋“œ๋Š” ์ƒ์†๊ณผ ๋™์ผํ•œ ๊ตฌ์กฐ๋ฅผ ๊ฐ–๋Š”๋‹ค.
  • ๋งˆ์ง€๋ง‰์œผ๋กœ, ์ถ”์ƒํด๋ž˜์Šค๋Š” extends๋ฅผ ํ™œ์šฉํ•œ ์ƒ์† ๊ตฌ์กฐ์ด๊ธฐ ๋•Œ๋ฌธ์—, ๋‹จ์ผ ์ƒ์†๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค

์ฐธ๊ณ ์‚ฌํ•ญ

  • ์ถ”์ƒํด๋ž˜์Šค๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ƒ์†๋งŒ ๊ฐ€๋Šฅํ•˜๊ณ  new ๊ฐ์ฒด ์ƒ์„ฑ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, ์ƒ์„ฑ์ž๋Š” ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ.
  • ์ด์œ ๋Š”, ์ถ”์ƒํด๋ž˜์Šค๋Š” ํ•„๋“œ์— ๋ฉค๋ฒ„๋ณ€์ˆ˜๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, ์ƒ์„ฑ์ž๋ฅผ ํ†ตํ•ด ํ•„๋“œ๋ฅผ ์ดˆ๊ธฐํ™” ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
  • ์ฆ‰, ์ƒ์œ„ํด๋ž˜์Šค์˜ ํ•„๋“œ์— ๊ฐ’์„ ๋„ฃ๊ธฐ ์œ„ํ•ด์„œ ์ƒ์„ฑ์ž๋ฅผ ์ด์šฉํ•ด ๊ฐ’์„ ์ดˆ๊ธฐํ™” ํ•  ๋•Œ ์‚ฌ์šฉ์ด ๋œ๋‹ค.

์ถ”์ƒ ํด๋ž˜์Šค ์‚ฌ์šฉ ์ด์œ 

  • ์—ฌ๋Ÿฌ ๊ด€๋ จ ํด๋ž˜์Šค๋“ค์ด ๊ณตํ†ต์œผ๋กœ ๊ฐ€์ ธ์•ผ ํ•  ๋ฉ”์„œ๋“œ์™€ ํ•„๋“œ๋ฅผ ์ •์˜ํ•  ๋•Œ ์‚ฌ์šฉ์ด ๋œ๋‹ค.
  • ์ถ”์ƒ ํด๋ž˜์Šค๋Š” ๊ฐ์ฒด ์ƒ์„ฑ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๊ธฐ์— ๋ฌด์กฐ๊ฑด ์ƒ์†์„ ๋ฐ›์•„์•ผํ•˜๋Š” ๊ตฌ์กฐ๊ฐ€ ํ˜•์„ฑ์ด ๋œ๋‹ค.
  • ์ด๋ง์€์ฆ‰์Šจ, ์ƒ์†์„ ๋ฌด์กฐ๊ฑด ๋ฐ›๊ฒŒ ํ•˜์—ฌ, ์„ค๊ณ„๋ฅผ ๋ช…ํ™•ํžˆ ํ•˜๊ณ , ์ผ๊ด€๋œ ๊ตฌ์กฐ๋ฅผ ๊ฐ•์ œํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉ์ด ๋œ๋‹ค๋Š” ๋ง์ด๋‹ค.

โœ… 2. ์ถ”์ƒ๋ฉ”์„œ๋“œ

public abstract class Animal {
    public abstract void run(); // ์ถ”์ƒ ๋ฉ”์„œ๋“œ
    
    public void eat() { // ์ผ๋ฐ˜ ๋ฉ”์„œ๋“œ
        System.out.println("This animal eats food.");
    }
}
  • abstract ํ‚ค์›Œ๋“œ๊ฐ€ ๋ถ™์€ ๋ฉ”์„œ๋“œ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.
  • ์ถ”์ƒํด๋ž˜์Šค ๋‚ด๋ถ€์—์„œ๋งŒ ์ถ”์ƒ๋ฉ”์„œ๋“œ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ผ๋ฐ˜ ํด๋ž˜์Šค์—์„œ ๋งŒ๋“ค๋ ค๊ณ  ํ•˜๋ฉด ์ปดํŒŒ์ผ ์˜ค๋ฅ˜๊ฐ€ ๋œฌ๋‹ค.
  • ๊ตฌํ˜„ํ•˜๋Š” ํ•˜์œ„ ํด๋ž˜์Šค๊ฐ€ ์ถ”์ƒ๋ฉ”์„œ๋“œ๋ฅผ ๋ฐ˜๋“œ์‹œ ๊ตฌํ˜„์„ ํ•ด์ค˜์•ผํ•˜๋ฉฐ, ๊ตฌํ˜„์„ ์•ˆํ•˜๋ฉด ์ปดํŒŒ์ผ ์˜ค๋ฅ˜๊ฐ€ ๋œฌ๋‹ค.
  • ํ•˜์œ„ํด๋ž˜์Šค๊ฐ€ ์ถ”์ƒํด๋ž˜์Šค์ผ ๊ฒฝ์šฐ ์ถ”์ƒ๋ฉ”์„œ๋“œ๋ฅผ ๊ตฌํ˜„์„ ํ•ด๋„ ๋˜๊ณ  ์•ˆํ•ด๋„ ๋œ๋‹ค.
  • ๋งŒ์•ฝ ์•ˆํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด ๊ตฌํ˜„ ํด๋ž˜์Šค ์ฆ‰, ์ƒ์†์„ ๋ฐ›๋Š” ํ•˜์œ„ ํด๋ž˜์Šค๊ฐ€ ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ๋ฐ˜๋“œ์‹œ ํ•ด์ค˜์•ผ ํ•œ๋‹ค.

์ฐธ๊ณ ์‚ฌํ•ญ

  • private ์ ‘๊ทผ ์ œ์–ด์ž๋Š” ์‚ฌ์šฉ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ๋””ํดํŠธ ์ ‘๊ทผ ์ œ์–ด์ž๋Š” ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, ํ•ด๋‹น ํŒจํ‚ค์ง€ ๋‚ด๋ถ€์— ์—†์œผ๋ฉด ์ƒ์† ๋ฐ›๋Š” ํด๋ž˜์Šค์—์„œ ์ปดํŒŒ์ผ ์˜ค๋ฅ˜๊ฐ€ ๋œธ.
  • protected ์ ‘๊ทผ ์ œ์–ด์ž๋Š” ์ƒ์†์„ ๋ฐ˜๋“œ์‹œ ๋ฐ›๊ธฐ ๋•Œ๋ฌธ์— ์˜ค๋ฅ˜ ์—†์ด ์ด์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

โœ… 3. ์ธํ„ฐํŽ˜์ด์Šค

public interface A {
    void hello();

    default void defaultMethod() {
        System.out.println("default method");
    }

    static void staticMethod() {
        System.out.println("static method");
    }
}
  • ํด๋ž˜์Šค๊ฐ€ ๊ตฌํ˜„ํ•ด์•ผ ํ•  ๊ธฐ๋Šฅ์˜ ๋ช…์„ธ ์ฆ‰, ๋ฉ”์„œ๋“œ๋ฅผ ์ •์˜ํ•˜๋Š” ์ถ”์ƒ์ ์ธ ํƒ€์ž…์„ ์˜๋ฏธํ•œ๋‹ค.
  • ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์ด ๋ฉ”์„œ๋“œ๋“ค์„ ๋ฐ˜๋“œ์‹œ ๊ตฌํ˜„ํ•ด์•ผ ํ•œ๋‹ค ๋ผ๋Š” ๊ทœ์น™์„ ์ •ํ•ด ๊ตฌํ˜„์„ ๊ฐ•์ œํ™” ํ•˜๊ธฐ ์œ„ํ•œ ๋„๊ตฌ์ด๋‹ค.
  • ์ธํ„ฐํŽ˜์ด์Šค์—๋Š” ์ƒ์„ฑ์ž๊ฐ€ ์—†์œผ๋ฉฐ, ๋‹ค์ค‘ ์ƒ์†์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

ํŠน์ง•

  • ๊ตฌํ˜„ํ•˜๋Š” ํด๋ž˜์Šค์—์„  implements ํ‚ค์›Œ๋“œ๋ฅผ ์ด์šฉํ•ด ๊ตฌํ˜„์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๊ธฐ๋ณธ์ ์œผ๋กœ class ๋Œ€์‹  interface ํ‚ค์›Œ๋“œ๋ฅผ ์ด์šฉํ•ด ํด๋ž˜์Šค๋ฅผ ๋ช…์‹œํ•ด์„œ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.
  • ์ธํ„ฐํŽ˜์ด์Šค์—๋Š” ์ƒ์„ฑ์ž๊ฐ€ ์—†์œผ๋ฉฐ, ๋‹ค์ค‘ ์ƒ์† ์ฆ‰, ๋‹ค์ค‘ ๊ตฌํ˜„์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ๋ฉ”์„œ๋“œ๋Š” ์ด 3๊ฐœ ์ถ”์ƒ๋ฉ”์„œ๋“œ, default ์ธ์Šคํ„ด์Šค ๋ฉ”์„œ๋“œ, static ํด๋ž˜์Šค ๋ฉ”์„œ๋“œ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.
  • ์ธํ„ฐํŽ˜์ด์Šค์—์„œ๋Š” ๋ฉค๋ฒ„ ๋ณ€์ˆ˜ ์ฆ‰, ํ•„๋“œ์— ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธ ํ•  ์ˆ˜ ์—†๋‹ค.

์ฐธ๊ณ ์‚ฌํ•ญ

  • ์‚ฌ์‹ค interface ํ‚ค์›Œ๋“œ ์•ž์— abstract ํ‚ค์›Œ๋“œ๊ฐ€ ์กด์žฌํ•˜๋ฉฐ, ํ•ด๋‹น ๋ถ€๋ถ„์€ ์ƒ๋žต ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ปดํŒŒ์ผ ๋•Œ ์ž๋™์œผ๋กœ ๋“ค์–ด๊ฐ„๋‹ค.
  • ๋ชจ๋“  ๋ฉ”์„œ๋“œ์—๋Š” public ์ ‘๊ทผ ์ œ์–ด์ž๋งŒ์ด ๋“ค์–ด๊ฐ€๊ฒŒ ๋œ๋‹ค. ์ด ๋ถ€๋ถ„์€ ์ƒ๋žต์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ, ์ž๋™์œผ๋กœ ๋“ค์–ด๊ฐ„๋‹ค.
  • ์ถ”์ƒ ๋ฉ”์„œ๋“œ์—๋Š” ์ž๋™์œผ๋กœ abstract ํ‚ค์›Œ๋“œ๊ฐ€ ๋ถ™๊ฒŒ ๋œ๋‹ค. ๋ถ™ํ˜€๋„ ๋˜๊ณ  ์•ˆ๋ถ™ํ˜€๋„ ๋œ๋‹ค.
  • ์ธํ„ฐํŽ˜์ด์Šค์˜ ์ด๋ฆ„์€ ๋ณดํ†ต ํ˜•์šฉ์‚ฌ๋กœ ์“ด๋‹ค. ์ฆ‰, ํ˜•์šฉ์‚ฌ์˜ ํ˜•ํƒœ๋กœ์จ ์ด์šฉ์„ ํ•˜๋Š”๊ฒŒ ์ผ๋ฐ˜์ ์ด๋‹ค.

โœ… 4. default ํ‚ค์›Œ๋“œ ( ๋ฉ”์„œ๋“œ )

  • ํ˜„์žฌ ์ž๋ฐ”์—์„  default ํ‚ค์›Œ๋“œ๋Š” ์ธํ„ฐํŽ˜์ด์Šค์—์„œ๋งŒ ์‚ฌ์šฉ์„ ํ•  ์ˆ˜ ์žˆ๋Š” ํ‚ค์›Œ๋“œ์ด๋‹ค. 
  • defaultํ‚ค์›Œ๋“œ๋Š” ์ธํ„ฐํŽ˜์ด์Šค ๋‚ด๋ถ€์˜ ์ธ์Šคํ„ด์Šค ๋ฉ”์„œ๋“œ ์ฆ‰, ๊ตฌํ˜„ ๋ฉ”์„œ๋“œ๋ฅผ ๋งŒ๋“ค ๋•Œ ์‚ฌ์šฉ์ด ๋œ๋‹ค.
public interface A {
    public default void defaultMethod() {
        System.out.println("default A");
    }
}
// case 1
public class B implements A {
    // ๋ฉ”์„œ๋“œ๋ฅผ ์žฌ์ •์˜ ํ•˜์ง€ ์•Š์•„๋„ ๋‚ด๋ถ€์—์„œ ํ˜ธ์ถœ์ด ๊ฐ€๋Šฅ
    public void test() {
        defaultMethode(); // ์˜ค๋ฅ˜x
    }
}
// case 2
public class B implements A {
    // ์žฌ์ •์˜ ๋˜ํ•œ ๊ฐ€๋Šฅํ•จ.
    @Override
    public void defaultMethod() {
        System.out.println("overring defaultMethod");
    }
}
  • default ๋ฉ”์„œ๋“œ๋Š” ๊ตฌํ˜„ ๊ณผ์ •์—์„œ ํ•˜๋‚˜์˜ ํด๋ž˜์Šค๋งŒ ์ƒ์†์„ ๋ฐ›์œผ๋ฉด, ์ƒ์†๊ณผ ๋™์ผํ•˜๊ฒŒ ๋ฉ”์„œ๋“œ๋ฅผ ํ•˜์œ„ํด๋ž˜์Šค์— ํฌํ•จ์‹œ์ผœ์ค€๋‹ค.

 

(1) interface ๋‹ค์ค‘ ์ƒ์† ์ผ€์ด์Šค์ผ ๊ฒฝ์šฐ default ๋ฉ”์„œ๋“œ

public interface A {
    public default void defaultMethod() {
        System.out.println("default A");
    }
}
public interface B {
    public default void test() {
        System.out.println("default B");
    }
}
// case 1 : ์ง์ ‘ ์žฌ์ •์˜ํ•ด์„œ ๊ตฌํ˜„์„ ํ•˜๋Š” ๋ฐฉ์‹
public class C implements A, B {
    @Override
    public void defaultMethod() {
    	System.out.println("overring defaultMethod");
    }
}
// case 2 : ์ƒ์œ„ ํด๋ž˜์Šค ์–ด๋–ค ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ• ์ง€ ์ง์ ‘ ๋ช…์‹œํ•˜๋Š” ๋ฐฉ์‹
public class C implements A, B {
    @Override
    public void defaultMethod() {
    	A.super.defaultMethod(); // A ํด๋ž˜์Šค์˜ ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ
        B.super.defaultMethod(); // B ํด๋ž˜์Šค์˜ ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ
        // ํ•˜๋‚˜ ๋˜๋Š” ๋‘˜ ๋‹ค ํ˜ธ์ถœ์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ํŠน์ง•์ด ์žˆ์Œ.
    }
}
  • ๋‹ค์ค‘ ์ƒ์†์„ ๋ฐ›๋Š” ๊ณผ์ •์—์„œ ๋™์ผํ•œ ๋””ํดํŠธ ๋ฉ”์„œ๋“œ๋ฅผ ์ƒ์† ๋ฐ›์„ ๋•Œ๋Š” ๋ฐ˜๋“œ์‹œ ์žฌ์ •์˜(Overriding)์„ ํ•ด์•ผํ•œ๋‹ค.
  • ์ด์œ ๋Š”, ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋‹ค์ค‘ ์ƒ์†๊ณผ์ •์—์„œ ์–ด๋–ค ๋ฉ”์„œ๋“œ๋ฅผ ์ž๋™ ํฌํ•จ์‹œ์ผœ์ค„์ง€ ๋ชจ๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์ง์ ‘ ์žฌ์ •์˜ํ•ด์„œ ๋ช…์‹œํ•ด์•ผ ํ•œ๋‹ค.
  • ์žฌ์ •์˜ํ•œ ๋ฉ”์„œ๋“œ ๋‚ด๋ถ€์— ์˜ˆ์‹œ ์ฝ”๋“œ์™€ ๊ฐ™์ด ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœ ํ•  ์ˆ˜ ์žˆ๊ณ , ๋˜๋Š” ์žฌ์ •์˜๋กœ ๋ฎ์–ด๋ฒ„๋ฆด ์ˆ˜ ์žˆ๋‹ค.

 

(2) default ๋ฉ”์„œ๋“œ ์‚ฌ์šฉ์ด์œ 

  • ์ธํ„ฐํŽ˜์ด์Šค๋Š” ๊ตฌํ˜„์„ ๊ฐ•์ œํ•œ๋‹ค. ์ฆ‰, ๊ตฌํ˜„์„ ํ•˜์ง€ ์•Š์œผ๋ฉด ์ปดํŒŒ์ผ ๊ณผ์ •์—์„œ ์—๋Ÿฌ๋ฅผ ๋‚ด๋ฑ‰๋Š”๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค.
  • ์ด๋Ÿฌํ•œ ๊ณผ์ • ๋•Œ๋ฌธ์— ๊ฐœ๋ฐœ์ž๊ฐ€ ์ธํ„ฐํŽ˜์ด์Šค์— ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•œ ๊ฒฝ์šฐ ๊ธฐ์กด์˜ ๊ตฌํ˜„ํ•˜๊ณ  ์žˆ๋˜ ํด๋ž˜์Šค์—๋Š” ์˜ค๋ฅ˜๋ฅผ ๋‚ด๋ฑ‰๋Š”๋‹ค.
  • ์ด๋ ‡๊ธฐ ๋•Œ๋ฌธ์— default ๋ฉ”์„œ๋“œ๋ฅผ ํ™œ์šฉํ•ด์„œ ๋ฐ˜๋“œ์‹œ ๊ตฌํ˜„์„ ํ•˜์ง€ ์•Š์•„๋„ ํฌํ•จ์ด ๋  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋‚˜์ง€ ์•Š๋Š”๋‹ค.
  • ์˜ˆ์™ธ ์ผ€์ด์Šค๋กœ๋Š” ๋‹ค์ค‘ ์ƒ์†์„ ๋ฐ›๋Š”๋ฐ, ๋™์ผํ•œ ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ๋กœ ์ด๋•Œ๋Š” ์ง์ ‘ ๊ตฌํ˜„ ํด๋ž˜์Šค ์ˆ˜์ •์„ ํ•ด์•ผํ•œ๋‹ค.

'โ˜•Java > ๐Ÿ“Java Programming' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Java] ์ต๋ช… ํด๋ž˜์Šค(Anonymous Class)  (1) 2025.05.22
[Java] ๋‹คํ˜•์„ฑ(polymorphism)  (1) 2025.05.22
[Java] Enum ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ธฐ  (1) 2025.05.05
[Java] JVM๊ณผ ์ž๋ฐ” ์‹คํ–‰ ์›๋ฆฌ  (1) 2025.04.14
[Java] Java์™€ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋ž€?  (0) 2025.03.06
'โ˜•Java/๐Ÿ“Java Programming' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [Java] ์ต๋ช… ํด๋ž˜์Šค(Anonymous Class)
  • [Java] ๋‹คํ˜•์„ฑ(polymorphism)
  • [Java] Enum ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ธฐ
  • [Java] JVM๊ณผ ์ž๋ฐ” ์‹คํ–‰ ์›๋ฆฌ
junbin2
junbin2
java.lang.NullPointerException
  • junbin2
    bin's Development Diary
    junbin2
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ์ „์ฒด๋ณด๊ธฐ (148) N
      • ๐ŸŽ“๋ฐฉ์†กํ†ต์‹ ๋Œ€ํ•™๊ต (25)
        • ๐Ÿ–ฅ๏ธ์ปดํ“จํ„ฐ๊ณผํ•™๊ณผ (1)
        • ๐ŸŒ์œ ๋น„์ฟผํ„ฐ์Šค ์ปดํ“จํŒ… (10)
        • โš™๏ธ์ปดํ“จํ„ฐ์˜ ์ดํ•ด (11)
        • ๐Ÿ›๏ธ์„ธ๊ณ„์˜์ •์น˜์™€๊ฒฝ์ œ (3)
      • ๐Ÿ“šComputer Science (0)
      • ๐Ÿ› ๏ธBackend (2)
      • โ˜•Java (18) N
        • ๐Ÿ“Java Programming (17) N
        • ๐ŸงฉJava Design Pattern (1)
      • ๐ŸŒณSpring (9)
        • ๐ŸŒฑSpring Framework (6)
        • ๐ŸŒฑSpring Security (1)
      • โšกPython (13)
      • ๐Ÿ›ข๏ธDatabase (0)
      • ๐ŸŒฟGitHub (1)
      • ๐ŸŒ Network (7)
        • ๐Ÿ“œHTTP (7)
      • ๐Ÿš€DevOps (1)
      • Algorithm Problem Solving (2)
      • Data Structure (1)
      • JavaScript (1)
      • โ›บ์ŠคํŒŒ๋ฅดํƒ€์ฝ”๋”ฉํด๋Ÿฝ (65)
      • ์žก๋‹ด (1)
      • ์ •๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ๊ธ€ (2)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

    • GitHub
  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ํด๋ผ์šฐ๋“œ
    Python
    ํด๋ž˜์Šค
    ์ž…์ถœ๋ ฅ
    ์œ ๋น„์ฟผํ„ฐ์Šค
    ๋ฐฉ์†กํ†ต์‹ ๋Œ€ํ•™๊ต
    ๋ฐฉํ†ต๋Œ€
    Java
    Spring Framework
    ์„ธ๊ณ„ํ™”
    ์ปดํ“จํ„ฐ์˜ ์ดํ•ด
    ์œ ๋น„์ฟผํ„ฐ์Šค ์ปดํ“จํŒ…๊ฐœ๋ก 
    ์ž๋ฐ”
    spring
    ์Šคํ”„๋ง
    ๋‹คํ˜•์„ฑ
    ๋ฐฉ์†ก๋Œ€
    ํŒŒ์ด์ฌ
    ์ปดํŒŒ์ผ๋Ÿฌ
    ์œ ๋น„์ฟผํ„ฐ์Šค ์ปดํ“จํŒ…
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.1
junbin2
[Java] ์ถ”์ƒํ™” - ์ถ”์ƒํด๋ž˜์Šค, ์ถ”์ƒ๋ฉ”์„œ๋“œ, ์ธํ„ฐํŽ˜์ด์Šค
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”