생성자를 이용한 Final 멤버변수 초기화 1. Final이 붙은 변수는 상수이므로 보통은 선언과 초기화를 동시에 하지만 , 인스턴스변수의 경우 생성자에서 초기화 할 수 있다. 설명서 final이 붙은 변수는 보통... 선언과 동시에 초기화를 해주지만... 인스턴스변수의 경우에는 생성자에서 초기화 해주는 것이 가능합니다. 예를 들어 위와 같이 Card클래스를 정의할 때... 카드의 속성인 NUMBER와 KIND는 한번 값이 지정되면 바뀌지 않아야 하는 값입니다. 카드의 숫자와 무늬가 게임도중에 마음대로 바뀌어서는 안되겠죠. 그래서 제어자 final을 붙였습니다. 그런데... 만일 final이 붙은 변수는 반드시 선언과 동시에 초기화를 해야한다면... 모든 Card인스턴스는 같은 NUMBER와 KIND값을..
Final이란 무엇인가 정의 : 마지막의 , 변경이 될 수 없는 의미 설명서 final은 마지막의, 변경될 수 없는...이라는 의미의 제어자입니다. final을 사용할 수 있는 곳은.... 클래스, 메서드, 멤버변수, 지역변수... 거의 모든 대상에 사용할 수 있는데요. 각 대상에 따라 final이 붙었을 때 어떤 의미가 되는 지 잘이해하셔야합니다. 클래스 앞에 final이 붙으면... 확장될 수 없는 클래스가 되어서 다른 클래스의 조상이 될 수 없습니다. 즉, 상속계층도의 마지막이라는 의미죠. 메서드 앞에 final이 붙으면... 변경될 수 없는 메서드... 즉, 오버라이딩을 할 수 없는 메서드가 됩니다. 그래서 이와 같이... FinalTest클래스의 getMaxSize메서드에 제어자 final이 붙..
Static 이란 무엇인가 의미 : 클래스의 공통적인 의미 사용될 수 있는 곳 : 멤버변수 , 메서드 , 초기화 블록 멤버변수 앞에 Static이 붙으면 클래스변수가 되는 것이고 , 모든 인스턴스가 공유하게 됩니다. 그리고 Static이 붙은 변수나 메서드는 모두 클래스가 메모르에 로드될 때 자동적으로 생성되므로 인스턴스 생성없이 사용가능합니다. Static 메서드에서는 인스턴스 멤버를 사용할 수 없다는 점 다시한번 확인 바랍니다.
제어자란? 1. 클래스 , 변수 , 메서드의 선언부에 사용되어 부가적인 의미를 부여한다. 2. 제어자는 크게 접근 제어자와 그 외의 제어자로 나뉜다. 3. 하나의 대상에 여러 개의 제어자를 조합해서 사용할 수 있지만 , 접근제어자는 단 하나만 사용할 수 있다. 설명서 제어자는... 클래스나 변수, 메서드의 선언부에 사용되어 부가적인 의미를 부여하는 것을 말합니다. 명사 앞에 붙어서.. 명사를 수식하는 형용사하고 비슷하다고 볼 수 있습니다. modifier라는 이름 역시 변경하다라는 뜻의 동사 modify에서 나온 것으로... 어떤 대상의 성격을 바꿔주는 것이라고 이해하시면 됩니다. 제어자는 접근제어자와... 그 외의 제어자로 ... 크게 두 가지 부류로 나눌 수 있습니다. 접근제어자에는 public, p..
몇일 전 Inner 클래스를 공부하던 중 , 알게 된 점이 하나 있다. 다음 소스 코드를 보자. package Practice;class Practice_Inner { // Main문 public static void main(String[] args) {A.B a = new A().new B(); // Inner 클래스 B에 접근a.Print(); // B클래스 메서드 시행}}class A {class B {int iv = 100;void Print() {System.out.println(iv);}}}위 코드의 결과값을 보면 100이 나오는 것을 확인 할 수 있다. 만약 Inner클래스 부분이 Main문과 바뀐다면 어떻게 될 까 . 결과 값은 iv의 값을 찾지 못하고 컴파일의 결과값이 아무것도 나오지 ..
import문의 선언 – 선언예제 1. import문은 컴파일 시에 처리되므로 프로그램의 성능에 아무런 영향을 미치지 않는다. 2. 이름이 같은 클래스가 속한 두 패키지를 import할 때는 클래스 앞에 패키지명을 붙여줘야 한다. 설명서 import문은 컴파일 할 때 처리되는 문장이기 때문에 import문은 프로그램의 성능에 아무런 영향을 주지 않기 때문에 import문을 많이 사용한다던가... 클래스이름대신 별표를 사용한다고 해서 프로그램의 성능을 떨어뜨리지 않습니다. 그래서... import할 클래스의 이름을 일일이 적어주는 것보다... 편하게 별표(*)를 사용하는 것이 좋습니다. 그러나... 이 왼쪽의 코드를 오른쪽과 같이 할 수 없다는 것... 주의하시기 바랍니다. import문은 지정된 패키지에..