대상과 클래스의 정적 변수, 상수와 방법

2299 단어 JAVA 지식
이전 글의 블로그에서 작성된 Circle () 방법은 인스턴스 메소드에 속하며 그 안의 변수도 인스턴스 변수에 속합니다. 즉, 인스턴스 변수는 클래스에 연결된 특정한 인스턴스이므로 같은 클래스의 다른 객체에 의해 공유될 수 없습니다.예를 들어, 두 객체를 작성합니다.
Circle() circle1 = new Circle();
Circle()  circle2 = new Circle(5);

이 두 실례의 속성은 상관없다. 서로 다른 메모리 위치에 저장되어 있기 때문에circle1의 변화는circle2에 영향을 주지 않는다. 반대로도 마찬가지다.
하나의 클래스의 모든 실례가 데이터를 공유하려면 정적 변수를 사용해야 한다. 이를 클래스 변수라고도 부른다.정적 변수 클래스의 한 대상이 정적 변수의 값을 바꾸면 클래스의 모든 대상이 영향을 받는다.정적 변수나 방법을 설명하려면, 이 변수나 방법을 설명할 때 수식자static를 붙여야 한다.Java는 클래스의 인스턴스를 만들지 않고도 정적 메서드와 정적 변수를 지원합니다.
클래스의 상수는 클래스의 모든 대상에 의해 공유되며 수정할 수 없습니다.따라서 상수는final static라고 명시해야 한다.예를 들어 Math 클래스의 상수 정의는 다음과 같다.final static double PI = 3.1415926535897932846;실례 방법과 실례 변수는 모두 실례에 속한다.그래서 그것들은 실례가 만들어진 후에야 사용할 수 있다.그것들은 변수를 적용해서 접근한다.정적 방법과 정적 데이터는 변수나 클래스 이름을 적용해서 호출할 수 있다.다음 작은 프로그램은 실례 변수, 정적 변수, 실례 방법과 정적 방법을 어떻게 사용하는지 보여 준다.
public class Foo {

    int i = 5;
    static int k = 2;
    public static void main(String[] args){
        Foo foo = new Foo();
        //m1() , 
        foo.m1();
        int j = foo.i;


    }
    public void   m1(){
        //m2() , 
        i = i + k + m2(i,k);
    }

    public static int m2(int i,int j){
        return (int)(Math.pow(i,j));
    }
}

좋은 웹페이지 즐겨찾기