JAVA

생성자[constructor], 변수란?

룸훼훼 2010. 8. 17. 16:23
반응형

생성자[constructor]
생성자는 인스턴스가 생성될 때 호출되는 '인스턴스 초기화 메쏘드'이다. 따라서 인스턴스변수의 초기화 작업에 주로 사용되며, 인스턴스 생성 시에 실행되어야 할 작업을 위해서도 사용된다. 참고로 인스턴스 초기화란, 인스턴스변수들을 초기화하는 것을 뜻한다. 생성자 역시 메소드처럼 클래스 내에 선언되며, 구조도 메서드와 유사하지만 리턴값이 없다는 점이 다르다. 그렇다고 해서 생성자 앞에 리턴값이 없음을 뜻하는 키워드 void를 사용하지는 않고, 아무 것도 적지 않는다. 생성자의 조건은 다음과 같다. 1. 생성자의 이름은 클래스의 이름과 같아야 한다. 2. 생성자는 리턴 값이 없다. 참고로 생성자도 오버로딩이 가능하므로 하나의 클래스에 여러 개의 생성자가 있을 수 있다. 사실 연산자 new가 인스턴스를 생성하는 것이지 생성자가 인스턴스를 생성하는 것은 아니다. 생성자라는 용어 때문에 오해하기 쉬운데, 생성자는 단순히 인스턴스변수들의 초기화에 사용되는 조금 특별한 메쏘드일 뿐이다. 생성자가 갖는 몇 가지 특징만 제외하면 메쏘드와 다르지 않다.
 
 
 
변수란?
철학적 관점에서 보면 변수는 정보를 담는 그릇입니다.우리의 머리는 세상에서 가장 위대한 변수입니다. 컴퓨터의 관점에서 보면 변수는 메모리의 할당장소입니다.변수의 정의는 메모리의 할당장소의 지정입니다. 수학적 관점에서 보면 우리가 알고 있는 공식속 영문 이니셜들은 모두가 다 변수의 일종입니다. ### 로컬변수와 글로벌변수 1. 정보저장기간의 차이 우리가 시험을 칠때 시험공부해서 아는 것을 정보를 우리 머리라는 변수에 담았다면.. 우리머리는 로컬변수입니다. 시험치고나면 금방 까먹거든요. 기억으로 치면 단기기억입니다. 플래시로 치면 플레이 헤드가 scene1에서 scene2로 이동 하면 scene1에 있던 변수와 정보는 컴퓨터의 메모리에서 지워져서 다시 돌아와 보면 초기화 되어 있습니다. 무비도 마찬가지로 프레임에서 플레이헤드가 무비1에서 무비2로 이동하였다면 무비1의 변수 정보는 메모리에서 지워지게 됩니다. 함수도 마찬가지 함수1에서 함수2로 이동하였다면 함수1의 변수정보도 손실됩니다. 반면 나의 이름 나의 고향 우리집 전화번호는 왠만해선 안잊습니다. 아니 평생가지요. 그런 기억을 담고있는 머리를 글로벌 변수라고 합니다. 기억으로 치면 장기기억이고.. 플래시 무비로 치면 로딩이 되어.. 사용자에 의해 윈도우가 클로우즈가 될떄까지 변수에 저장된 정보는 그대로 간직합니다. 2. 정보저장 장소의 차이 로컬변수는 말그대로 로컬 무비클립 개개에 속해있는 변수입니다. 물론 꼭 그런 것은 아닙니다. 가령 A마을에 사는 영희와 B마을에 사는 철이가 연애편지를 주고 받을 일이 있다면.. 글로벌 변수를 사용해야 연애편지역할을하여 서로간의 관계를 돈독하게 합니다. 날 잊지말아줘~ 만약 로컬변수를 사용하다 철이가 군대가면 영희는 바로 고무신 꺼꾸로 신습니다. 글로벌은 많은 경우에 root에 저장되어 있습니다. 상호교신을 위한 상징적인 변수들인 경우 각각의 무비클립에도 그 무비클립의 글로벌 변수를 가지고 있습니다. 3. 컴터의 메모리 활용의차이 글로벌 변수는 일단 메모리에 저장됩니다. 무비의 플레이헤드가 끝까지 가도 그대로 그 정보는 저장되어 있고 브라우져가 닫혀야 메모리는 변수를 버립니다. 로컬은 플레이헤드의 위치에 따라 매우 일시적으로 담았다가 자기내들끼리 뚝딱뚝딱 계산만 해대고 사라집니다. 꼭 보면 게릴라전 같습니다. 4 . 로컬과 글로벌 변수의 정의 간단합니다. 변수명이 namooya라면 namooya=""; namooya=1; 이렇게만 내리면. 이것은 글로벌로 치부합니다. 로컬은 따로 정의가 하나 더 있습니다. var namooya; namooya=1; var 는 로컬로 지정한다는 의미입니다. 5. 바람직한 사용법 우리가 변수를 이용할떄 전부 로컬변수를 이용할수 없습니다. 하지만 100% 글로벌 변수로만 이용하여 플래시 게임을 만들 수 있습니다. 그렇지만 메모리의 손실이 커서 바람직하지 않습니다. 스크립트를 정리하면서 용도에 따라 로컬변수로 사용가능한 것은 모두 로컬변수로 바꿔야 합니다. 속도나 DB를 이용한 데이터 연동 속도를 향상시키기 떄문입니다.
반응형