반응형

프로그래밍 언어 25

Java(초기화 블록)

*이 포스트는 남궁성님의 '자바의 정석'책을 참고하여 작성했습니다. * 클래스 초기화 블록 - 클래스 변수의 복잡한 초기화에 사용된다. * 인스턴스 초기화 블록 - 인스턴스 변수의 복잡한 초기화에 사용된다. * 초기화 블록 예제 class InitBlock {static { /* 클래스 초기화 블럭 */ } { /* 인스턴스 초기화 블럭 */ } // ...} -> 클래스 초기화 블럭은 클래스가 메모리에 처음 로딩될 때 한번만 수행되며, 인스턴스 초기화 블럭은 생성자와 같이 인스턴스를 생성할 때 마다 수행된다. ( 클래스가 처음 로딩될 때 클래스 변수들이 자동적으로 메모리에 만들어지고, 곧바로 클래스 초기화 블럭이 클래스 변수들을 초기화하게 되는 것이다. ) * 인스턴스 초기화 블럭 예제 Car() {c..

Java(인스턴스,this,this())

*이 포스트는 남궁성님의 '자바의 정석'책을 참고하여 작성했습니다. * 인스턴스의 생성 클래스명 변수명; // 클래스의 객체를 참조하기 위한 참조변수를 선언.변수면 = new 클래스명(); // 클래스의 객체를 생성 후, 객체의 주소를 참조변수의 저장. * 인스턴스 생성 예제 Tv t; // Tv클래스 타입의 참조변수 t를 선언.t = new Tv(); // Tv인스턴스를 생성한 후, 생성된 Tv인스턴스의 주소를 t의 저장. * this : 인스턴스 자신을 가리키는 참조변수, 인스턴스의 주소가 저장되어 있다. 인스턴스의 주소가 저장되어 있다. 모든 인스턴스 메서드에 지역변수로 숨겨진 채로 존재한다. * this(), this(매개변수): 생성자, 같은 클래스의 다른 생성자를 호출할 때 사용한다. * th..

Java(클래스(static) 메서드와 인스턴스 메서드)

*이 포스트는 남궁성님의 '자바의 정석'책을 참고하여 작성했습니다. * 클래스 메서드(static 메서드)와 인스턴스 메서드 : 클래스 메서드도 클래스 변수처럼, 객체를 생성하지 않고도 '클래스이름.메서드이름(매개변수)'와 같은 식으로 호출이 가능하다. 반면에 인스턴스 메서드는 반드시 객체를 생성해야만 호출할 수 있다. * 인스턴스 메서드 : 인스턴스 변수와 관련된 작업을 하는, 즉 메서드의 작업을 수행하는데 인스턴스 변수를 필요로 하는 메서드이다. * 클래스(static) 메서드 : 인스턴스와 관계없는(인스턴스 변수나 인스턴스 메서드를 사용하지 않는) 메서드를 클래스 메서드(static메서드)로 정의한다. 1) 클래스를 설계할 때, 멤버변수 중 모든 인스턴스에 공통적으로 사용해야하는 것에 static을..

Java(변수 정리)

*이 포스트는 남궁성님의 '자바의 정석'책을 참고하여 작성했습니다. 1. 인스턴스 변수(instance variable) : 클래스 영역에 선언되며, 클래스의 인스턴스를 생성할 때 만들어진다. 그렇기 때문에 인스턴스 변수의 값을 읽어 오거나 저장하기 위해서는 먼저 인스턴스를 생성해야한다. 인스턴스는 독립적인 저장공간을 가지므로 서로 다른 값을 가질 수 있다. 인스턴스마다 고유한 상태를 유지해야하는 속성의 경우, 인스턴스변수로 선언한다. 2. 클래스 변수(class variable) : 클래스 변수를 선언하는 방법은 인스턴스변수 앞에 static을 붙이기만 하면 된다. 인스턴스마다 독립적인 저장공간을 갖는 인스턴스변수와는 달리, 클래스변수는 모든 인스턴스가 공통된 저장공간(변수)을 공유하게 된다. 한 클래..

Java(객체와 인스턴스의 차이)

*이 포스트는 남궁성님의 '자바의 정석'책을 참고하여 작성했습니다. * 객체 : 모든 인스턴스를 대표하는 포괄적인 의미를 갖고 있다. * 인스턴스 : 어떤 클래스로부터 만들어진 것인지를 강조하는 보다 구체적인 의미를 갖고 있다. * '연필은 인스턴스다.'(X) -> '연필은 객체다'(O)* '연필은 연필 클래스의 객체이다.'(X) -> '연필은 연필 클래스의 인스턴스다.'(O) -> 인스턴스와 객체는 같은 의미이므로 두 용어의 사용을 엄격히 구분할 필요는 없지만, 위의 예에서 본 것과 같이 문맥에 따라 구별하여 사용하는 것이 좋다.

반응형