'final변수'에 해당되는 글 1건

  1. 2012.07.28 final변수

* final : 변수, 메소드(instance 메소드), class

- 변경이 안된다. (더이상 바꿀 수 없다.)
- 메소드 :  하위 class에서 overriding 할 수 없다.
- class : 하위 class를 가질 수 없는 class.    
(대표 : String class, 선언 -> 한번 값이 대입되면 다시는 대입안됨.
ex :  final int i = 10; i는 프로그램이 끝날때까지 값을 바꿀 수 없고 10만을 갖는다.

변수 :  변수의 상수화-> 한번 값이 대입되면 다시는 대입안됨.
instance변수 : 묵시적 초기화(x)
->값 대입 :  명시적 대입 (명시적 초기화)
->생성자에서 대입

final 변수은 한번 생성해주고 변수를 바꿀 수 없으므로 static과 잘어울린다.

- static 변수 : 선언시 값 대입.
   ->구문 : public static final
class A{
 static final int i =10;
 }

- 지역변수 :  사용 전까지 대입.
public void go(){
 final int i;
 i = 10; (이렇게 사용전에는 대입을 해줘야 하고, 한번 대입되면 값이 바뀔 수 없다. )
 System.out.prinltl(i);
 }

* final변수의 이름 관례 : 대문자
   단어 + 단어 -> 단어_단어

* final class는 상속이 안된다.

project : day16
package : finaltest.clazz
class : SuperClass
    SubClass

package finaltest.clazz;

public final class SuperClass {

}

-----------------

package finaltest.clazz;

public class SubClass extends SuperClass{

}

--------------------

project : day16
package : finaltest.method
class : SuperClass
    SubClass

* final 이 붙은 메소드는 하위 class에서 오버라이드 할 수 없다.

package finaltest.method;

public class SuperClass {
 public final void methodB(){
   System.out.println("안녕하세요");
 }
}
---------------------

package finaltest.method;

public class SubClass extends SuperClass{
 
 @Override
 public void methodB(){
  System.out.println("SubClass 안녕하세요");
}
}

----------------------

project : day16
package : finaltest.var
class : Rectangle

package finaltest.var;

public class Rectangle {
 public static final double PI = 3.14;
 public static final int BLACK = 0;
 public static final int WHITE = 1;
 public static final int BLUE; //여기서 에러가 난다. static final 변수는 선언을 하면서 반드시 값을 대입 해줘야한다.
}
-------------------------------------------

package finaltest.var;

public class Rectangle {
 public static final double PI = 3.14;
 public static final int BLACK = 0;
 public static final int WHITE = 1;
 //public static final int BLUE; //여기서 에러가 난다. static final 변수는 선언을 하면서 반드시 값을 대입 해줘야한다.
 private final int WIDTH;          //final instance변수는 선언시 대입하거나 생성자에서 값을 대입해야한다.  처음 초기화하면 생성자에서 또 다시 값을 넣을 수 없다.
 public Rectangle(int width){
  this.WIDTH = width;
 }

}

-------------------------------------

* 값이 대입되지 않은 로컬 변수는 사용할 수 없다.

package finaltest.var;

public class Rectangle {
 public static final double PI = 3.14;
 public static final int BLACK = 0;
 public static final int WHITE = 1;
 //public static final int BLUE; //여기서 에러가 난다. static final 변수는 선언을 하면서 반드시 값을 대입 해줘야한다.
 private final int WIDTH;
 public Rectangle(int width){
  this.WIDTH = width;
 }
 public void rectMethod(){
  final int var;
  
  //var = 20;
  //var = 10; //단 값은 한번만 넣어야 한다.

  System.out.println(var);
 }
}

'프로그래밍 > JAVA프로그래밍' 카테고리의 다른 글

다형성(polymorephism)  (0) 2012.07.28
의존관계(dependency)  (0) 2012.07.28
this, super키워드  (0) 2012.07.28
상속, 생성자  (0) 2012.07.28
싱글턴 패턴  (0) 2012.07.28
Posted by 조은성
,