final
final
初期化して、プログラミングが実行される以上、修正できない値だ。
初期化パターン
1) フィールド宣言時初期化: final datatype fieldname = 初期値
2) コンストラクタで初期化
package ch06.sec11.exam01;
public class Korean {
//인스턴스 field final 선언
final String nation ="대한민국";
final String ssn;
//인스턴스 필드 선언
String name;
//생성자 선언
Korean(String name, String ssn){
this.name = name;
this.ssn = ssn;
}
}
Constant(定数)
static final datatype fieldname = 初期値
staticであるため、インスタンスなしでも定数フィールドを使用することができる。
例)Math.PI
package ch06.sec11.exam02;
public class Earth {
//상수 선언 및 초기화
static final double EARTH_RADIUS = 6400;
//상수 선언
static final double EARTH_SURFACE_AREA;
//정적 블록에서 상수 초기화
static {
EARTH_SURFACE_AREA = 4*Math.PI*EARTH_RADIUS*EARTH_RADIUS;
}
}
package ch06.sec11.exam02;
public class EarthExample {
public static void main(String[] args) {
//상수 읽기
System.out.println("지구의 반지름: " + Earth.EARTH_RADIUS + "km"); //지구의 반지름: 6400.0
System.out.println("지구의 넓이: " + Earth.EARTH_SURFACE_AREA + "km^2"); //지구의 넓이: 5.147185403641517E8
}
}
Packge・import
<Packageの名称>
com.tistory.eldorado215.projectjava(project name)
<import>
1) 異なるpackageのclassを宣言する際には、importを使用する。
2) package内で、様々なclassをimportしたい際には、classnameではなく、*を書く。
例)java.util.*
3) 異なるpackageで同じ名のlibrary classを宣言する際には、importなしでもオブジェクトを生成することができる。
しかし、class nameでインスタンスを生成すれば、コンパイルエラーが発生する。
例)
Library 1
package com.hankook
class Tire
Library 2
package com.kumho
class Tire
main
package com.tireshopping
import com.hankook.*
import com.kumho.*
public class PackageTest{
public static void main(String[] args){
Tire tire = new Tire(); <= compile error
-> com.hankook.Tire tire = new com.hankook.Tire();
この場合は、import文はいらない。
package ch06.sec12.hyundai;
//import 문으로 다른 패키지 클래스 사용을 암시
import ch06.sec12.hankook.SnowTire;
import ch06.sec12.kumho.AllseasonTire;
public class Car {
//부품 필드 선언
ch06.sec12.hankook.Tire tire1 = new ch06.sec12.hankook.Tire();
ch06.sec12.kumho.Tire tire2 = new ch06.sec12.kumho.Tire();
SnowTire tire3 = new SnowTire();
AllseasonTire tire4 = new AllseasonTire();
}
'IT自主学習 (2023.05.23~) > Java(2023.05.23~)' 카테고리의 다른 글
プログラミング自主学習 45日目 Class確認問題/継承(Inheritance)/protected/タイプ変換/多態性(ポリモーフィズム・Polymorphism) (0) | 2023.07.10 |
---|---|
プログラミング自主学習 44日目 全体復習/アクセス修飾子/Getter・Setter/Singletone (0) | 2023.07.09 |
プログラミング自主学習 42日目 Method(overloading)/Instance Member/Static Member (0) | 2023.07.07 |
プログラミング自主学習 41日目 Constructor/method (0) | 2023.07.06 |
プログラミング自主学習 40日目 Class/field/constructor (0) | 2023.07.05 |