라벨이 인스턴스인 게시물 표시

JAVA 클래스(class)와 인스턴스(instance)

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

[JavaScript] 생성자 함수와 new 연산자 그리고 인스턴스(instance)

생성자 함수와 new 연산자 생성자 함수란 동일한 종류의 자동차를 지속적으로 찍어낼 수 있는 자동차 공자의 설비라인과 같다. 생성자 함수를 사용하는 이유는 재사용성을 높이기 위해서이다. 일단 생성자 함수를 사용하려면 두가지 규칙을 지켜야 한다. 1. 함수명의 첫번째 글자는 무조건 대문자여야 한다. 2. 반드시 "new" 연산자 키워드를 붙여야 한다. function Person ( name , firstScore , secondScore , thirdScore ) { this . name = name ; this . firstScore = firstScore ; this . secondScore = secondScore ; this . thirdScore = thirdScore ; this . sum = function () { return this . firstScore + this . secondScore + this . thirdScore ; }; } let kim = new Person ( "kim" , 10 , 20 , 30 ); let lee = new Person ( "lee" , 10 , 10 , 10 ); console . log ( kim ); /* Person { name: 'kim', firstScore: 10, secondScore: 20, thirdScore: 30, sum: [Function] } */ console . log ( lee ); /* Person { name: 'lee', firstScore: 10, secondScore: 10, thirdScore: 10, sum: [Function] } */ console . log ( kim . sum ()); //60 console . log ( lee . sum ()); //30 new Person과 같이