ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 객체지향(1)
    혼자 공부를 위한 자바 기초.(쉽게 배우는 자바 프로그래밍) 2021. 7. 27. 18:34

    //정적멤버

    /인스턴스 멤버와 정적 멤버

     

    인스턴스 변수 

    클래스내에 값이 고정되어 있는 변수값.

    앞에서 따로 실행을 통해서 변경을 해도 지정된 값은 변하지 않음.

    객체별로 관리되기 때문에 객체를 생성할때 인스턴스 변수도 생성 접근, 객체가 소멸되면 자동 소멸된다.

     

    스태틱(정적)변수 = 클래스 변수

    클래스가 실행과 동시에 한번 선언한다.

    공통의 공간에서 작업한 내용이 고정된다.

    앞선 변수를 수정하면 스테틱 영역에서 변한 값으로 고정된다.

    객체와 관련된 인스턴스 변수를 사용할 수없다.

    객체와 관련된 인스턴스 메서드를 호출할 수 없다.

    객체 자신을 가리키는 this 키워드를 사용할 수 없다.

     

    /정적 멤버 활용

    package date_210723;
    
    
    class Circle4{
    	double radius;
    	static int numOfCircles = 0; //정적변수
    	int numCircles = 0;
    	
    	public Circle4(double radius) {
    		this.radius = radius;
    		numOfCircles++; //객체를 생성할때 마다 증가
    		numCircles++;	//객체마다 별도의 기억공간을 사용하기 때문에 항상 0에서 증가한다.
    	}
    }
    
    
    public class Page152 {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		Circle4 myCircle = new Circle4(10.0);
    		Circle4 yourCircle = new Circle4(5.0);
    		
    		//print(); 
    		System.out.println("원의 개수 :" + Circle4.numOfCircles);
    		System.out.println("원의 개수 :" + yourCircle.numCircles);
    		
    	}
    	void print() {
    		System.out.println("인스턴스 매서드 입니다.");
    	}
    
    }

    결과

    원의 개수 : 2

    원의 개수 : 1

     

     

    //정적 블록(static 블록)

     

    static{....} 으로 정적블록을 통해 정적변수 수정가능.

     

    package date_210723;
    
    public class Page155 {
    
    	static int sumOneToTen;
    	int sum55;
    	
    	//정적 블록으로 정적 변수 초기화
    	static {
    		int sum = 0;
    		for(int i = 1; i<=10; i++)
    			sum += i;
    		sumOneToTen = sum;	
    	}
    	
    //	public void sumsum1() {
    //		int sumsum = 0;
    //		
    //		for(int j=1; j<=10; j++)
    //			sumsum += j;
    //		sum55 = sumsum;
    //	}
    // 시도를 해본 흔적...다른 함수를 만들어 실행해도 결국 실행값은 저장안된다. 스테틱만 정적영역에서 진행.
    	
    	public static void main(String[] args) {
    	System.out.println(sumOneToTen);
    //	System.out.println(sum55);
    		
    	}
    }

    결과 값

    55

    댓글

Designed by Tistory.