Konstanta (static final)
Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan Java di Coddy. Pelajaran 18 dari 87.
Menggabungkan static dan final menghasilkan konstanta, yaitu nilai yang menjadi milik class dan tidak pernah bisa berubah. Ini adalah cara standar untuk mendefinisikan konstanta di Java.
public class GameSettings {
public static final int MAX_PLAYERS = 4;
public static final double GRAVITY = 9.81;
public static final String GAME_TITLE = "Space Adventure";
}Sesuai konvensi, nama konstanta menggunakan UPPER_SNAKE_CASE untuk membedakannya dari variabel biasa. Karena keduanya bersifat static dan final, kamu mengaksesnya melalui nama class, dan nilainya dijamin tidak akan pernah berubah:
System.out.println(GameSettings.MAX_PLAYERS); // 4
// GameSettings.MAX_PLAYERS = 8; // error! Tidak dapat diubahKonstanta biasanya dideklarasikan public karena dimaksudkan untuk digunakan bersama di seluruh aplikasi. Bayangkan nilai seperti Math.PI, konstanta final statis public yang dapat digunakan oleh kode apa pun.
Mengapa menggunakan konstanta alih-alih nilai yang ditulis langsung di dalam kode? Jika kamu menulis 4 di seluruh kodemu dan nanti perlu mengubahnya menjadi 6, kamu harus mencari dan memperbarui setiap kemunculannya. Dengan konstanta seperti MAX_PLAYERS, kamu cukup mengubahnya di satu tempat.
Konstanta juga membuat kode lebih mudah dibaca: MAX_PLAYERS lebih jelas daripada 4 yang misterius.
Tantangan
MudahMari buat utility MathConstants yang menyimpan nilai matematika penting sebagai konstanta, serta CircleCalculator yang menggunakan konstanta tersebut untuk melakukan perhitungan.
Kamu akan membuat dua file untuk mengatur kodemu:
MathConstants.java: Buat class yang menyimpan konstanta matematika menggunakan fieldpublic static final:PIdengan nilai3.14159E(bilangan Euler) dengan nilai2.71828GOLDEN_RATIOdengan nilai1.61803
Main.java: Gunakan konstanta untuk melakukan perhitungan lingkaran. Kamu akan menerima jari-jari sebagai input dan mencetak tiga baris:- Luas lingkaran:
Area: [value] - Keliling lingkaran:
Circumference: [value] - Diameter yang dikalikan dengan rasio emas:
Golden Diameter: [value]
- Luas lingkaran:
Untuk perhitungannya:
- Area = PI * radius * radius
- Circumference = 2 * PI * radius
- Golden Diameter = 2 * radius * GOLDEN_RATIO
Kamu akan menerima satu input: jari-jari (double).
Format semua nilai output menjadi 2 angka di belakang koma menggunakan String.format("%.2f", value). Akses konstanta melalui nama class, seperti MathConstants.PI.
Coba sendiri
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double radius = scanner.nextDouble();
// TODO: Hitung luas menggunakan MathConstants.PI
// Rumus: PI * radius * radius
// TODO: Hitung keliling menggunakan MathConstants.PI
// Rumus: 2 * PI * radius
// TODO: Hitung diameter emas menggunakan MathConstants.GOLDEN_RATIO
// Rumus: 2 * radius * GOLDEN_RATIO
// TODO: Cetak hasil dengan 2 angka di belakang koma
// Gunakan String.format("%.2f", value) untuk memformat hasil
// Format output:
// Luas: [value]
// Circumference: [value]
// Golden Diameter: [value]
}
}Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Pemrograman Berorientasi Objek
1Dasar-Dasar OOP
File EksternalPengantar OOPClass dan ObjectKata Kunci thisMethodField (Atribut)Method KonstruktorOverloading KonstruktorRangkuman: Kalkulator Sederhana4Pewarisan
Pewarisan Dasar (extends)Kata Kunci superMethod Overriding (@Override)Rantai KonstruktorKelas ObjectPewarisan Tunggal dan BertingkatMengapa Tidak Ada Pewarisan Multi-KelasRangkuman: Hierarki Karyawan7method Khusus & class Object
method toString()equals() dan hashCode()method clone()compareTo() dan ComparableAntarmuka ComparatorUlasan: Pengurutan Kustom10Penanganan Exception dalam OOP
Hierarki class ExceptionException KustomError Checked vs UncheckedPola Try-with-ResourcesRekap: Pengguna Tervalidasi2Modifier Akses & Enkapsulasi
Ikhtisar Tingkat AksesMethod Getter dan SetterPenyembunyian InformasiKata Kunci finalUlasan: Pengelola Rekening Bank5Polimorfisme
Dasar method overloadingMethod overriding (Saat program berjalan)Upcasting dan downcastingOperator instanceofclass dan method abstrakUlasan: Kalkulator Bentuk8Konsep OOP Lanjutan
Komposisi vs PewarisanAgregasi vs Komposisiinner, nested, dan anonymous classEnum dan method Enumrecord (Java 16+)sealed class (Java 17+)11Pola Desain Bagian 1
Pengantar Pola DesainPola SingletonPola FactoryPola BuilderPola ObserverPola Strategy3property class dan Anggota Statis
Variabel Instance vs Statismethod StatisBlok StatisKonstanta (static final)Rangkuman: Penghitung dan Utilitas6Antarmuka & Kelas Abstrak
Pengantar AntarmukaMengimplementasikan AntarmukaImplementasi Beberapa AntarmukaDefault & Static pada AntarmukaKelas Abstrak vs AntarmukaAntarmuka FungsionalRekap: Sistem PembayaranLatihan sendiri: Compiler Java online