클래스와 해당 클래스의 인스턴스의 차이점을 이해해야합니다. 길거리에서 자동차를 보면 어떤 모델이나 유형을 볼 수 없어도 자동차라는 것을 즉시 알 수 있습니다. 이것은 당신이 보는 것을 클래스 "car" 와 비교하기 때문 입니다. 이 클래스에는 모든 자동차와 비슷한 것이 포함되어 있습니다. 템플릿이나 아이디어로 생각하십시오.
동시에, 당신이 보는 자동차는 당신이 기대하는 모든 속성을 가지고 있기 때문에 "car"클래스의 인스턴스입니다 : 그것을 운전하는 누군가가 있고, 엔진, 바퀴가 있습니다.
따라서 클래스는 "모든 자동차는 색상을가집니다"라고 말하고 인스턴스는 "이 특정 자동차는 빨간색입니다"를 말합니다.
OO 세계에서는 클래스를 정의하고 클래스 내부에서 유형 필드를 정의합니다 Color. 클래스가 인스턴스화되면 (특정 인스턴스를 생성 할 때) 메모리가 색상을 위해 예약되며이 특정 인스턴스에 색상을 부여 할 수 있습니다. 이러한 속성은 고유하기 때문에 비 정적입니다.
정적 필드와 메소드는 모든 인스턴스와 공유됩니다. 이들은 특정 인스턴스가 아닌 클래스에 특정한 값을위한 것입니다. 메서드의 경우 일반적으로 전역 도우미 메서드입니다 (예 :) Integer.parseInt(). 필드의 경우 일반적으로 상수입니다 (예 : 자동차 유형, 즉 자주 변경되지 않는 제한된 세트가있는 항목).
문제를 해결하려면 런타임에서 인스턴스의 메모리를 예약 할 수 있도록 클래스의 인스턴스를 인스턴스화 (객체 생성)해야합니다 (그렇지 않으면 다른 인스턴스가 원하지 않는 서로 덮어 쓰기).
귀하의 경우이 코드를 시작 블록으로 사용해보십시오.
public static void main (String[] args)
{
try
{
MyProgram7 obj = new MyProgram7 ();
obj.run (args);
}
catch (Exception e)
{
e.printStackTrace ();
}
}
// instance variables here
public void run (String[] args) throws Exception
{
// put your code here
}
새 main()메소드는 포함 된 클래스의 인스턴스를 작성합니다 (이상하게 들리지만 main()인스턴스 대신 클래스로 작성 되었으므로 이를 수행 할 수 있음 run()). 그런 다음 인스턴스 메소드 ( ) 를 호출합니다 .
C. 그러나 그것은 좋은 것이 아닙니다. Java를 객체 지향 언어로 사용되는 방식으로 사용하십시오.