Java
[Java] Static
안도일
2022. 10. 22. 15:37
static 변수
객체 A를 생성하지 않고도 이미 메모리 위에 올라와 있는 static 변수 s에 값을 줄 수 있다
class A{
int aa;
int bb;
int cc;
static int s = 30;
}
public class ATest {
public static void main(String[] args) {
A.s = 50; //객체가 생성되기 전에 먼저 선언가능
A obja = new A();
obja.aa = 4;
obja.bb = obja.aa*2;
obja.cc = A.s;
System.out.println("obja cc = " + obja.cc + " A s = " + A.s);
// 실행결과 obja cc = 50, A s = 50
}
}
static 함수
static으로 정의된 함수는 객체 Calc1을 정의하지 않아도 이미 메모리 위에 올라와 있기 때문에 main에서 객체를 생성하지 않고 호출할 수 있다
class Calc1{
static int abs(int a) {
return (a>0)?a:-a;
}
static int max(int a, int b) {
return (a>b)?a:b;
}
static int min(int a, int b) {
return (a<b)?a:b;
}
}
public class ClacEx {
public static void main(String[] args) {
System.out.println(Calc1.abs(-5));
System.out.println(Calc1.max(10,8));
System.out.println(Calc1.min(-3,-8));
}
}
예제
static을 활용하여 환율을 계산하는 프로그램을 작성해 보자
class CurConv{
private static double rate; //static을 사용하면 객체를 선언하지 않고도 접근 할 수 있음
static void setRate(double r) {
rate = r;
}
static double toDollar(double won) {
return won/rate;
}
static double toKWR(double dollar) {
return dollar*rate;
}
}
public class StaMember {
public static void main(String[] args) {
CurConv.setRate(1433.40);
System.out.println("백만원은 " + CurConv.toDollar(1000000) + " 달러입니다.");
System.out.println("백달러는 " + CurConv.toKWR(100) + " 원입니다.");
}
}