GiantStepDEV

static

static(์ •์  ๋ฉค๋ฒ„)๋Š” ํด๋ž˜์Šค์— ์†Œ์†๋œ ๋ฉค๋ฒ„๋กœ์„œ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ•„๋“œ์™€ ๋ฉ”์†Œ๋“œ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.
์˜ค๋กœ์ง€ ํด๋ž˜์Šค๋ฅผ ํ†ตํ•ด์„œ๋งŒ ํ˜ธ์ถœ๋จ.
public class StaticMethod {
    public static void main(String[] args) {
        Bank kakao = new Bank("์นด์นด์˜ค",1000);
        Bank toss = new Bank("ํ† ์Šค", 1000);
        Bank kb = new Bank("๊ตญ๋ฏผ", 0);

        kakao.setDeposit(2000);
        kakao.setWithdraw(1580);
        kakao.viewAccount();

        System.out.println(Bank.getCount()); // getCount()๋Š” ์ •์  ๋ฉ”์†Œ๋“œ์ด๋ฉฐ, ํด๋ž˜์Šค ์†Œ์†
    }
}

* getCount()๋Š” Bank(ํด๋ž˜์Šค)์— ์˜ํ•ด ํ˜ธ์ถœ

private static int count = 0;

-> Bank Class๊ฐ€ ๋ช‡ ๋ฒˆ ์ƒ์„ฑ๋˜์—ˆ๋Š”์ง€ ๋ˆ„์ ํ•˜๋Š” ์ •์ ๋ฉค๋ฒ„(ํด๋ž˜์Šค ํ•„๋“œ)

public static int getCount() {}

-> ์ •์  ๋ฉ”์†Œ๋“œ์ด๋ฉฐ ์ •์ ๋ฉค๋ฒ„์— ๋Œ€ํ•œ getter

public void setDeposit(final int dep){} // ์˜ˆ๊ธˆ์„ ์œ„ํ•œ ๋ฉ”์†Œ๋“œ

-> ๋งค๊ฐœ๋ณ€์ˆ˜์— ์‚ฌ์šฉ๋œ final์€ ์ „๋‹ฌ ๋ฐ›์€ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ

public class Bank {
    private static int count = 0; // ํ•ด๋‹น ํด๋ž˜์Šค๊ฐ€ ๊ฐ์ฒด๋กœ ๋ช‡ ๋ฒˆ ์ƒ์„ฑ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๋ณ€์ˆ˜
    private int account; // ๊ณ„์ขŒ
    private String bank; // ์€ํ–‰ ์ด๋ฆ„
    public Bank(String name, int account) { // ์ƒ์„ฑ์ž๋Š” ํด๋ž˜์Šค๊ฐ€ ๊ฐ์ฒด๋กœ ๋งŒ๋“ค์–ด์งˆ ๋•Œ ํ˜ธ์ถœ๋จ!!!!!
        count++;
        bank = name;
        this.account = account;
        System.out.println(name + "์€ํ–‰์˜ ๊ณ„์ขŒ๋ฅผ ๊ฐœ์„ค ํ•ฉ๋‹ˆ๋‹ค. ์ž”์•ก์€ " + account + "์› ์ž…๋‹ˆ๋‹ค.");
    }
    // ์ •์  ํ•„๋“œ๊ฐ’์„ ์ฝ๊ธฐ ์œ„ํ•œ ์ •์  ๋ฉ”์†Œ๋“œ (ํด๋ž˜์Šค ์†Œ์†)
    // ํด๋ž˜์Šค๊ฐ€ ๋งŒ๋“ค์–ด์งˆ ๋•Œ ๋‹จ ํ•œ ๋ฒˆ๋งŒ ๋งŒ๋“ค์–ด์ง. (๊ฐ์ฒด ์†Œ์†์ด ์•„๋‹˜.)
    public static int getCount() {
        return count;
    }
    //   (์˜ˆ๊ธˆ์„ ์œ„ํ•œ ๋ฉ”์†Œ๋“œ) //๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ๋ฐ”๋€Œ๋ฉด ์•ˆ๋  ๊ฒฝ์šฐ final๋กœ ์ƒ์ˆ˜์ฒ˜๋ฆฌ.. ์ตœ์ข…๊ฐ’์œผ๋กœ ์ „๋‹ฌ๋จ.
    public void setDeposit(final int dep) { // ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€ ์ƒํƒœ๋กœ ๋งŒ๋“ค์–ด ์•ˆ์ „ํ•˜๊ฒŒ ๋ณดํ˜ธ
        account += dep;
        System.out.println(dep + "์› ์˜ˆ๊ธˆ ํ–ˆ์Šต๋‹ˆ๋‹ค.");
    }
    //         (์ถœ๊ธˆ์„ ์œ„ํ•œ ๋ฉ”์†Œ๋“œ)
    public void setWithdraw(final int with) {
        if(with > account) {
            System.out.println("์ž”์•ก์ด ๋ถ€์กฑ ํ•ฉ๋‹ˆ๋‹ค.");
        } else {
            account -= with;
        }
    }
    public void viewAccount() {
        System.out.println("ํ˜„์žฌ ์ž”์•ก์€ " + account + "์› ์ž…๋‹ˆ๋‹ค.");
    }
}

์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” Utility ์ž‘์„ฑ

static ๋ฉ”์†Œ๋“œ๋Š” ์œ ํ‹ธ๋ฆฌํ‹ฐ์„ฑ ๋ฉ”์†Œ๋“œ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ ์ž์ฃผ ์‚ฌ์šฉ
์˜ˆ. Math ํ•จ์ˆ˜
ํ˜ธ์ถœ, ๊ณ„์‚ฐ๋งŒ ์‚ฌ์šฉ ํ•  ๊ฒฝ์šฐ์—๋Š” ํ•œ ํด๋ž˜์Šค ๋‚ด์— static์œผ๋กœ ์ขŒ์•… ์ƒ์„ฑํ•˜๋ฉด ํŽธํ•จ.
ํ•„์š”ํ•  ๋•Œ๋งŒ ๊ฐ€์ ธ๋‹ค ์“ฐ๋ฉด ๋˜๋‹ˆ ๊ฐ์ฒด ์ƒ์„ฑ ์•ˆํ•ด๋„ ๋˜๊ณ  ๊ฐ„๋‹จํ—ˆ์ด..
import java.text.SimpleDateFormat;
import java.util.Date;

public class Util {
    public static String getCurrentDate(String fmt) {
        SimpleDateFormat sdf = new SimpleDateFormat(fmt); // ํ˜„์žฌ ์‹œ๊ฐ„ ์ถœ๋ ฅ
        return sdf.format(new Date());
    }
}
public class StaticMethod {
    public static void main(String[] args) {
System.out.println("ํ˜„์žฌ ์‹œ๊ฐ„์„ ์ถœ๋ ฅ ํ•ฉ๋‹ˆ๋‹ค.");
        System.out.println(Util.getCurrentDate("yyyy-MM-DD hh:mm:ss"));
      }
}

final ํ•„๋“œ์™€ ์ƒ์ˆ˜

๋ณ€ํ•˜์ง€ ์•Š๋Š” ๋ถˆ๋ณ€์˜ ๊ฐ’์€ ๊ฐ์ฒด๋งˆ๋‹ค ์ €์žฅ ํ•  ํ•„์š”๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์—
๋‹จ ํ•œ๋ฒˆ๋งŒ ์ƒ์„ฑ๋˜์–ด์•ผ ํ•จ.. ๊ทธ๋Ÿฌ๋ฏ€๋กœ static final ๋ฐ์ดํ„ฐํƒ€์ž… ์ƒ์ˆ˜๋ช…; ์œผ๋กœ ์„ ์–ธ!!!!
final static String DOMAIN = "192.168.0.1";
package ์ •์ ๋ฉ”์†Œ๋“œ0116

import static ์ •์ ๋ฉ”์†Œ๋“œ0116.Util.DOMAIN;
public class StaticMethod{
     public static void main(String[] args) {
           System.out.println("๋„๋ฉ”์ธ ์ฃผ์†Œ : " + DOMAIN);
      }
}

=> ๋‹จ, ์ถœ๋ ฅํ•  ๋•Œ import ํ•ด์ค˜์•ผ ํ•จ!!!

import static ํŒจํ‚ค์ง€๋ช….ํด๋ž˜์Šค๋ช….๋ณ€์ˆ˜๋ช…; 

profile

GiantStepDEV

@kongmi

ํฌ์ŠคํŒ…์ด ์ข‹์•˜๋‹ค๋ฉด "์ข‹์•„์š”โค๏ธ" ๋˜๋Š” "๊ตฌ๋…๐Ÿ‘๐Ÿป" ํ•ด์ฃผ์„ธ์š”!