Groovy - Sifat
Ciri-ciri adalah konstruksi struktural bahasa yang memungkinkan -
- Komposisi perilaku.
- Implementasi antarmuka secara runtime.
- Kompatibilitas dengan pemeriksaan / kompilasi tipe statis
Mereka dapat dilihat sebagai antarmuka yang membawa implementasi dan status default. Sifat didefinisikan dengan menggunakan kata kunci sifat.
Contoh sifat diberikan di bawah ini -
trait Marks {
void DisplayMarks() {
println("Display Marks");
}
}
Seseorang kemudian dapat menggunakan kata kunci implement untuk mengimplementasikan sifat tersebut dengan cara yang sama seperti antarmuka.
class Example {
static void main(String[] args) {
Student st = new Student();
st.StudentID = 1;
st.Marks1 = 10;
println(st.DisplayMarks());
}
}
trait Marks {
void DisplayMarks() {
println("Display Marks");
}
}
class Student implements Marks {
int StudentID
int Marks1;
}
Menerapkan Antarmuka
Sifat dapat mengimplementasikan antarmuka, dalam hal ini antarmuka dideklarasikan menggunakan kata kunci implement.
Contoh sifat yang mengimplementasikan antarmuka diberikan di bawah ini. Dalam contoh berikut, poin-poin penting berikut dapat diperhatikan.
Antarmuka Total didefinisikan dengan metode DisplayTotal.
Karakter Marks mengimplementasikan antarmuka Total dan karenanya perlu menyediakan implementasi untuk metode DisplayTotal.
class Example {
static void main(String[] args) {
Student st = new Student();
st.StudentID = 1;
st.Marks1 = 10;
println(st.DisplayMarks());
println(st.DisplayTotal());
}
}
interface Total {
void DisplayTotal()
}
trait Marks implements Total {
void DisplayMarks() {
println("Display Marks");
}
void DisplayTotal() {
println("Display Total");
}
}
class Student implements Marks {
int StudentID
int Marks1;
}
Output dari program di atas adalah -
Display Marks
Display Total
Properti
Suatu sifat dapat mendefinisikan properti. Contoh sifat dengan properti diberikan di bawah ini.
Dalam contoh berikut, Marks1 tipe integer adalah properti.
class Example {
static void main(String[] args) {
Student st = new Student();
st.StudentID = 1;
println(st.DisplayMarks());
println(st.DisplayTotal());
}
interface Total {
void DisplayTotal()
}
trait Marks implements Total {
int Marks1;
void DisplayMarks() {
this.Marks1 = 10;
println(this.Marks1);
}
void DisplayTotal() {
println("Display Total");
}
}
class Student implements Marks {
int StudentID
}
}
Output dari program di atas adalah -
10
Display Total
Komposisi Perilaku
Sifat dapat digunakan untuk menerapkan beberapa warisan dengan cara yang terkontrol, menghindari masalah berlian. Dalam contoh kode berikut, kami telah mendefinisikan dua sifat -Marks dan Total. Kelas Siswa kami menerapkan kedua sifat tersebut. Karena kelas siswa memperluas kedua ciri tersebut, ia dapat mengakses kedua metode -DisplayMarks dan DisplayTotal.
class Example {
static void main(String[] args) {
Student st = new Student();
st.StudentID = 1;
println(st.DisplayMarks());
println(st.DisplayTotal());
}
}
trait Marks {
void DisplayMarks() {
println("Marks1");
}
}
trait Total {
void DisplayTotal() {
println("Total");
}
}
class Student implements Marks,Total {
int StudentID
}
Output dari program di atas adalah -
Total
Marks1
Memperluas Sifat
Sifat dapat memperluas sifat lain, dalam hal ini Anda harus menggunakan extendskata kunci. Dalam contoh kode berikut, kami memperluas sifat Total dengan sifat Tanda.
class Example {
static void main(String[] args) {
Student st = new Student();
st.StudentID = 1;
println(st.DisplayMarks());
}
}
trait Marks {
void DisplayMarks() {
println("Marks1");
}
}
trait Total extends Marks {
void DisplayMarks() {
println("Total");
}
}
class Student implements Total {
int StudentID
}
Output dari program di atas adalah -
Total