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