Patrick's 데이터 세상

static 변수(클래스 변수) 본문

Programming/Java

static 변수(클래스 변수)

patrick610 2020. 6. 23. 00:28
반응형
SMALL

■ static 변수

   static 변수는 한 클래스의 모든 인스턴스가 공유하는 static 변수입니다.

class InstCnt
{
    static int instNum = 0;
    
    public InstCnt()
    {
    	instNum++;
        System.out.println("인스턴스 생성 : "+instNum);
    }
}

class ClassVar
{
    public static void main(String[] args)
    {
    	InstCnt cnt1 = new InstCnt();
        InstCnt cnt2 = new InstCnt();
        InstCnt cnt3 = new InstCnt();        
    }
}

· 실행 결과

인스턴스 생성 : 1
인스턴스 생성 : 2
인스턴스 생성 : 3

초기에 static으로 선언된 instNum에서 메인 함수에서 생성자를 생성할 때마다 증가하여 생성되는 것을 확인할 수 있습니다.

static으로 선언된 변수는 변수가 선언된 클래스의 모든 인스턴스가 공유하는 변수입니다.


■ static 변수 활용

   인스턴스 간 데이터 공유가 필요한 상황에서는 static 변수를 선언합니다.

 

class CirCle
{
    static final double PI = 3.1415;
    private double radius;
    
    public Circle(double rad)
    {
    	radius = rad;
    }
    public void showPerimeter()		// 둘레 출력
    {
    	double peri = (radius*2)*PI;
        System.out.println("둘레 : "+peri);
    }
    public void showArea()			// 넓이 출력
    {
    	double area = (radius*radius)*PI;
        System.out.println("넓이 : "+area);
    }
}

class ClassVarUse
{
    public static void main(String[] args)
    {
    	Circle cl = new Circle(1.2);
        cl.showPerimeter();
        cl.showArea();
    }
}

· 실행 결과

둘레 : 7.5396
둘레 : 4.52376

 

반응형
LIST

'Programming > Java' 카테고리의 다른 글

Spring 개요  (0) 2020.06.24
static 메소드  (0) 2020.06.23
자바 이름 생성 규칙(Naming Rule)  (0) 2020.06.23
클래스, 인스턴스  (0) 2020.06.23
메소드의 재귀호출  (0) 2020.06.23
Comments