2012-05-04 4 views

답변

7

이 질문은 언어에 따라 약간 다른 의미이기 때문에 쉽게 대답 할 수 없습니다. 아마도 사람마다 다를 수있는 가장 일반적인 용어로 입력하면됩니다.

정적 변수는 클래스의 모든 인스턴스에서 공유되는 변수입니다.

정적 메서드는 클래스에서 호출 할 수있는 메서드로 일반적으로 클래스를 인스턴스화 할 필요가 없습니다.

또 다른 세 가지 언어를 선택하면 세 가지 답변이 제공됩니다.

위키 피 디아는 이러한 점을 정의하는 데 약간 도움이 될 수 있습니다. 예 방법과 인스턴스 변수)에 반대

http://en.wikipedia.org/wiki/Method_(computer_programming) 자바 http://en.wikipedia.org/wiki/Static_variable

+0

정적 인 계산 클래스와 사용 calculatePower 방법을 인스턴스화하지 않았다. – WAMoz56

15

, static는 (class methods 및 클래스 변수를 나타낸다. 이러한 메소드 및 변수는 인스턴스가 없어도 액세스 할 수 있습니다.

인스턴스 메소드 및 인스턴스 변수와 대조 : 객체를 통해 액세스해야합니다. 예를 들어, length() 개체에서 작동 : 물체에 작동 할 수없는 반면에

String a = "hello"; 
int len = a.length(); 

, valueOf; 호출 될 때 더욱이, 새로운 객체를 생성한다 : 정적 메소드는 도트 . 다음 <className>를 사용하여 액세스하는 동안 인스턴스 메소드가 도트 . 다음 <objectName>을 사용하여 호출하는 방법

String x = String.valueOf(123.45); 

참고.

6

'정적'키워드는 C에서 원본을 의미하기 때문에 여러 의미가 있습니다. 함수에서 변수를 선언하는 데 사용되면 변수의 수명이 함수 외부에 있음을 의미합니다. 그것은 본질적으로 기능에 비공식적 인 전역입니다. 전역 변수가 정적이면 기본적으로 해당 소스 파일에 전용입니다. 두 경우 모두 변수는 전역 변수와 같은 단일 메모리 위치를가집니다. 컴파일러가 함수 또는 컴파일 유닛 외부에서 액세스하지 못하도록하는 것입니다.

정적 변수의 위치가 변경되지 않기 때문에 'static'이라는 단어가 사용되었다고 가정합니다. 일반적인 로컬 변수와 달리 스택의 어딘가에 스택 위치가 표시됩니다 함수가 호출되었습니다.

C++을 만들었을 때이 키워드는 클래스 수준 속성 및 메서드를 참조하기 위해 용도가 변경되었습니다. 나는 정적 인 메소드 나 속성이 그 클래스에 비공식적 인 일종의 글로벌이라는 생각을했다고 가정한다. 이것들이 메모리에 어떻게 배치되는지 생각한다면 정적 속성은 전역 변수와 같은 단일 주소를 가지므로 어떤 의미가 있습니다. 유일한 차이점은 컴파일러가 클래스 외부에서 사용할 수 없다는 것입니다.

Java (및 다른 언어)는 C++에서 영감을 얻은 구문을 사용하므로 '정적'을 사용하여 클래스 메서드 및 속성을 참조하기도합니다. 이 키워드를 사용하면 영어의 의미와 관련이 거의 없으므로 불행합니다.

하지만 일반적으로 그게 그걸 보는 방법입니다. 대부분의 언어에서 정적 인 경우 전체 프로그램 중 하나만 존재합니다. 하나의 고정 된 메모리 주소가있는 것으로 생각하십시오.

1

정적 변수는 일반 변수처럼 변수가 다시 초기화되는 클래스의 모든 인스턴스에서 사용되는 변수입니다. 정적 메서드는 개체를 만들지 않고도 메서드를 호출 할 수 있습니다.

1

정적 메서드를 명확하게 이해하는 예제를 보여 드리겠습니다.

키보드 자바에서 데이터를 입력하는 스캐너 클래스를

예를 사용한다 스캐너 scn = 새 스캐너 (System.in); int a = scn.nextInt();

따라서 nextInt() 메서드는 정적이 아닙니다.

정적 메서드는 클래스를 인스턴스화하지 않고 사용할 수있는 메서드입니다. 다음 예에서

봐 : 정적 메서드의

public class Calculate { 

    static void calculatePower(int num, int pow) { 
     System.out.println(Math.pow(num, pow)); 
    } 


} 

사용.

public static void main(String[] args) { 
    Calculate.calculatePower(2,8); 
} 

그래서 우리는 내가 특히 자바에 대해서 이야기하고