JAVA 클래스(class)와 인스턴스(instance)
JAVA 클래스(class)와 인스턴스(instance) 클래스는 설계도라고 생각 할 수 있고 인스턴스는 제품이라고 생각할 수 있다. 클래스는 서로 연관된 데이터와 메소드를 묶어놓은 설계도(그룹)이다. 이러한 클래스를 가지고 new연산자와 생성자함수를 통해 각각의 변수에 클래스를가지고 만들어진 제품(인스턴스)를 담을 수 있다. 즉 인스턴스는 하나의 클래스를 복제해서 서로 연관된 데이터의 값과 메소드를 가진 복제본을 만드는것이다. 이렇게 인스턴스로 생성되는 클래스의경우 내부에서 static키워드를 사용하면 오류가 발생한다. 그이유는 클래스를 통해 생성된 인스턴스는 독립된 저장공간을 가지고있기때문이다. static키워드는 공통으로 사용하고자하는 값 또는 메소드에 사용되는 키워드이기때문에 각각의 독립된 저장공간을 가지고있는 인스턴스에 사용할 수 없다. 인스턴스화가 가능한 클래스가 존재하고 불가능한 클래스가 존재한다. java api documentation에서 확인하기 java는 메소드로 구조를 잡고 메소드와 변수를 그룹핑해서 클래스로 구조를 잡고 클래스를 복제한 인스턴스를 통해 또다른 구조를 만드는식으로 코드를 작성해 나갈 수 있다.