Java/Java Concept

[Java] 클래스의 정의와 인스턴스

군우 2018. 1. 17. 13:56


객체(object)

객체를 이루는 것은 데이터와 기능이다.

객체지향


final



클래스라는 틀을 기반으로 객체가 생성된다.


클래스를 구성하는것이 중요한것이 아니고 그 클래스가 구성하는 관계가 중요하다.

클래스는  틀 일 뿐이다,  할당되지 않는다.

그래서 그거를 실체화 시키기위해(객체를 생성하겠다.)  필요한 문법이 있다.


Claname   callname = new Claname();

(             참조변수)     (인스턴스의 생성) 

객체를 참조할때 사용하는 변수이므로  참조변수라고 한다.

참조변수는 객체의 주소의 값을 가지고 있다.  그래서 참조하는 것이다.

java는 메모리의 직접 연산이 불가능 하다. 

자바는 주소값 연산이 되지 않는다.

그래서


Claname   callname1 = new Claname();

Claname   callname2 = callname1;    

이렇게 가능하다.  같은 것을 참조 하게 되는것이다.


참조하는 객체가 가지는 변수가 있는데 그변수에 접근하기위해 필요한 문법이 있다.

kkk.callname1 =20;   

    . 을 통해 그 객체가 가지는 변수에 접근이 가능하다!


매개변수에 참조 변수가 올수가 있다.

public void sss(Claname callname1){

...

}


인스턴스 변수: 참조되야 생성되는 클래스의 변수.

인스턴스 메소드: 참조되고 나서 생성되는 클래스의 메소드.

인스턴스화 되어야만 호출되는 것이기 때문.


같은 클래스내에서는 메소드 명으로만 호출이 가능하지만,

다른 클래스는 참조변수를 통해서 실체화가 가능하다.


참조 변수는 0을 넣는것이 아닌,  null 을 참조하는게 맞다. 

아무대상도 참조하지 않는다는 의미이다.

혹여라도 다른인스턴스를 참조하지 않도록 한다. 

null을 통해   == null? 이런식으로 참조하는 객체가 있는지 없는지가능하다,


객체와 인스턴스 차이:

인스턴스는 클래스라는 틀을 기반으로 실제화된 대상을 의미하고

객체는 존재하는 사물이나 대상을 의미한다. 


객체에게 메시지를 전달하는 방법은  메소드 호출을 기반으로 한다.

그래서 객체지향에서는 이러한 형태의 메소드 호출을 가리켜

메소드 전달이라고 한다.

Message Passing  메시지 파싱