Java/기본 프로그래밍

[JAVA] static 멤버 ( static 멤버와 static 멤버 활용 )

KR_Jimi 2024. 2. 9. 23:48

static 멤버


  • 객체 생성 없이도 사용가능한 멤버이다.
  • 클래스 당 하나만 생성되는 멤버이다.
  • 클래스 로딩시에 멤버가 생성된다.

static 멤버의경우 여러 멤버들과 공유될 수 있다.

예시


전역 함수로 작성하고자 하는 abs,max,min의 3개의 함수를 static 메소드로 작성하고 호출하는 사례를 보여라.


class Calc{
    public static int abs(int a) {
        return a>0?a:-a;
    }
    public static int max(int a, int b) {
        return (a>b)?a:b;
    }
    public static int min(int a, int b) {
        return (a>b)?b:a;
    }
}

public class CalcEx {
    public static void main(String[] args) {
        System.out.println(Calc.abs(-5));
        System.out.println(Calc.max(10,8));
        System.out.println(Calc.min(-3,-8));
    }
}

실행결과
5
10
-8

예시


static 멤버를 이용하여 달러와 원화를 변환 해주는 환율 계산기를 만들어보자.


import java.util.Scanner;

class CurrencyConverter {
    private static double rate;
    public static double toDollar(double won) {
        return won/rate;
    }
    public static double toKWR(double dollar) {
        return dollar * rate;
    }
    public static void setRate(double r) {
        rate = r;
    }
}

public class StaticMember {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("환율(1달러)>> ");
        double rate = scanner.nextDouble();
        CurrencyConverter.setRate(rate);
        System.out.println("백만원은 $" + CurrencyConverter.toDollar(1000000)+"입니다.");
        System.out.println("$100는 "+ CurrencyConverter.toKWR(100)+ "원입니다.");
        scanner.close();
    }
}

실행결과
환율(1달러)>> 1332
백만원은 $750.7507507507507입니다.
$100는 133200.0원입니다.