About"static"
5506 단어 static
자바 프로그램에서 모든 것은 대상이고 대상의 추상은 클래스이다. 하나의 클래스에 대해 말하자면 그의 구성원을 사용하려면 일반적인 상황에서 대상을 실례화한 후에 대상의 인용을 통해 이 구성원들을 방문할 수 있지만 예외적인 경우는 이 구성원이static로 성명한 것이다.
자바 라이브러리에서 많은 클래스 구성원들이 static라고 성명하여 사용자가 실례화된 대상을 필요로 하지 않고 구성원을 인용할 수 있도록 할 수 있다. 가장 기본적인 것은 Integer이다.parseInt(),Float.parseFloat () 등은 대상을 필요한 기본 데이터 형식으로 변환하는 데 사용됩니다.이런 변수와 방법을 우리는 클래스 변수와 클래스 방법이라고도 부른다.
다음은 개인적으로 비교적 전형적인 소개류 구성원의 예이다.
public class StaticTest
{
int x=1; //
static int y=1; //
public StaticTest()
{
x++;
y++;
}
public void nonStaticMethod()
{
System.out.println("run a non_static method.");
}
public static void staticMethod()
{
System.out.println("run a static method.");
}
public static void main(String args[])
{
// t1
StaticTest t1=new StaticTest();
// t2
StaticTest t2=new StaticTest();
// t1 x
System.out.println("t1.x="+t1.x);
// t2 x
System.out.println("t2.x="+t2.x);
//System.out.println("StaticTest.x="+StaticTest.x); , :
// x
//nonStaticMethod(); , :
// nonStaticMethod();
// :
// , , ,
// , static 。 :
t1.nonStaticMethod();
// , :
staticMethod();
// , , , :
t1.staticMethod();
// StaticTest y( y)
System.out.println("StaticTest.y="+StaticTest.y);
// , , , :
System.out.println("t1.y="+t1.y);
}
}
전례 중 t1.y와 t2.y는 같은 저장 공간을 가리킨다.실행 후 출력 결과는 다음과 같습니다: t1.x=2t2.x=2run a non_static method.run a static method.run a static method.StaticTest.y=3t1.y=3 이상의 결과에 대한 설명:
4
4
또 다른 예는 위의 StaticTest 클래스를 기준으로 합니다.
public class UsingStatic
{
StaticTest t1;
StaticTest t2;
public UsingStatic()
{
t1 = new StaticTest();
t2 = new StaticTest();
}
public void usingNonStaticMember()
{
//successful scenario:
System.out.println("t1.x="+t1.x);
System.out.println("t2.x="+t2.x);
t1.nonStaticMethod();
t2.nonStaticMethod();
//failure scenario:
//System.out.println("t1.x="+StaticTest.x);// x
//StaticTest.nonStaticMethod();// nonStaticMethod();
}
public void usingStaticMember()
{
//successful scenario:
System.out.println("StaticTest.y="+StaticTest.y);
StaticTest.staticMethod();
//not suggested,no point to using a object to invoke the static attributes.
//the suggested approach see the successful scenario, use the class to invoke the static attributes.
System.out.println("t1.y="+t1.y);
System.out.println("t2.y="+t2.y);//not suggested
//not suggested,no point to using a object to invoke the static methods.
//the suggested approach see the successful scenario, use the class to invoke the static methods.
t1.staticMethod();
t2.staticMethod();//not suggested
}
}
usingNonStaticMember()를 실행한 결과:
t1.x=2t2.x=2run a non_static method.run a non_static method.
usingStaticMember()를 실행한 결과:
StaticTest.y=3run a static method.t1.y=3t2.y=3run a static method.run a static method.
클래스 메서드(예: Integer.객체를 작성하지 않고 사용할 수 있는 parseInt()아직까지 어려운 점을 발견하지 못했다.
다음은main 함수의 쓰기 방법이 고정된 이유를 설명한다.
JVM 실행과 관련하여 왜 그렇게 쓰는지 설명합니다.하나의 클래스에main () 방법이 있으면 명령 '자바 클래스 이름' 을 실행하면 가상 머신이 이 클래스에main 방법을 실행합니다.JVM은 이 자바 프로그램을 실행할 때 우선main 방법을 호출합니다. 호출할 때 이 클래스의 대상을 실례화하지 않고 클래스 이름을 통해 직접 호출하기 때문에public static로 제한해야 합니다.자바의main 방법에 대해 jvm는 제한이 있고 반환 값이 있을 수 없기 때문에 반환 값 유형은void입니다.main 방법에는 입력 매개 변수가 하나 더 있는데 유형은string[]이다. 이것도 자바의 규범이다. main() 방법에는 반드시 하나의 인삼이 있어야 하고 클래스는string[]이어야 한다. 문자열 그룹의 이름은 스스로 설정할 수 있다. 습관에 따라 이 문자열 그룹의 이름은 보통sunjava규범 범례에서mian 매개 변수의 이름과 일치하고 이름은args라고 한다.따라서main () 방법의 정의는 "public static void main (String 문자열 배열 매개 변수 이름 []"이어야 합니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다트 타이핑 💫 🌌 ✨Dart, tip kontrolünü iki farklı zamanda gerçekleştirir: • Kod derlendiğinde (kod yeniden yüklenir/veya önceden derlenir)...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.