본문 바로가기

IT自主学習 (2023.05.23~)/Java(2023.05.23~)

プログラミング自主学習 43日目 final・constant/package・import

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();

 

}