. .

BAGIAN KE TUJUH: Java Classes - Constructor Overloading Pada Netbeans IDE

Posted by CHRISTIANTO D,WIBOWO | D3MI-2016 STMIK BUMI GORA On Jumat, Desember 30, 2016 No comments

BAGIAN KE TUJUH: Java Classes - Constructor Overloading Pada Netbeans IDE, Sebelum kita meneruskan mempelajari pembelajaran ini, ada baiknya kita baca artikel-artikel sebelumnya yang terhubung dengan langkah-langkah pembelajaran ini (Link) BAHASA PEMROGRAMAN JAVA PADA NETBEANS IDE.

Seperti metode, konstruktor juga dapat kelebihan beban. Constructor overloading adalah cara memiliki lebih dari satu konstruktor yang berbeda dengan 2 tugas. Contohnya vektor class memiliki 4 jenis konstruktor. Jika kita tidak ingin menentukan kapasitas dan kapasitas kenaikan awal maka kita dapat menggunakan default constructor Vector Class seperti Vector v = new Vector (); namun jika kita perlu menentukan kapasitas dan kenaikan maka kita memanggil konstruktor parameter dengan dua args int seperti ini: Vector v = vektor baru (10, 5).
Kita harus memahami kebutuhan untuk overloading. Mari kita lihat bagaimana konstruktor overloading dengan bantuan di bawah ini contoh program:, kita kembali pada java program kita packages exams dan class ExamDetails dan class StudentResults yang sudah kita buat sebelumnya.
class StudentResults memiliki konstruktor yang menetapkan empat nilai private field  variabel:
private String Full_Name;
private String Exam_Name;
private String Exam_Score;
private String Exam_Grade;

StudentResults() {

Full_Name = "No Name Given";
Exam_Name = "Unknown";
Exam_Score = "No Score";
Exam_Grade = "Unknown";

}
Tapi misalkan kita memutuskan untuk menetapkan tiga dari mereka untuk string kosong, dan memiliki Full Name diatur ke sesuatu yang lain, dengan nilai/value female/male, kita bisa melakukannya seperti ini :
StudentResults() {

Full_Name = "Female Student";
Exam_Name = "";
Exam_Score = "";
Exam_Grade = "";

}
Tapi itu konstruktor memiliki tepat berada pada baris pertama yang sama, seperti sebelumnya. Lebih baik kita mengatur dua konstruktor :
StudentResults() {

Full_Name = "No Name Given";
Exam_Name = "Unknown";
Exam_Score = "No Score";
Exam_Grade = "Unknown";

}

StudentResults(String gender) {

Full_Name = gender;
Exam_Name = "";
Exam_Score = "";
Exam_Grade = "";

}
Sekarang, keduanya memiliki variabel String antara kurung bulat dalam baris kode. Oleh karena itu, dikatakan konstruktor overload StudentResults() dan StudentResults(String gender).  Untuk melihat bagaimana konstruktor overload bekerja, tambahkan metode fullName baru untuk class StudentResults :
String fullName() {

return Full_Name;

}
Karena diantara kurung bulat fullName() kosong, itu berarti tidak akan ada nilai yang bisa dimasukkan ke variabel field yang disebut return Full_Name. Ketika nilai dikembalikan, itu akan mengandung string apapun yang dihasilkan dari konstruktor.
Sehingga baris kode lengkap kita pada class StudentResults; menjadi :
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package exams;
/**
 * @author CHRISTIANTO "GEMBLONG" DHARMA WIBOWO LEARN JAVA
 */
public class StudentResults {
    private String Full_Name;
    private String Exam_Name;
    private String Exam_Score;
    private String Exam_Grade;
    
    StudentResults() {

      Full_Name  = "No Name Given";
      Exam_Name  = "Unknown";
      Exam_Score = "No Score";
      Exam_Grade = "Unknown";
}

    StudentResults(String gender) {

      Full_Name  = gender;
      Exam_Name  = "";
      Exam_Score = "";
      Exam_Grade = "";

    }
    String fullName() {
      return Full_Name;
    }

    String examName(String examCode){
        if (examCode.equals("VB")){
            Exam_Name = "Visual Basic .NET";
        }
        else if (examCode.equals("JV")){
            Exam_Name = "Java";
        }
        else if (examCode.equals("C#")){
            Exam_Name = "C# .NET";
        }
        else if (examCode.equals("PH")){
            Exam_Name = "PHP";
        }
        else{
            Exam_Name ="No Exam Selected";
        }
        return Exam_Name;
    }
        /**
         * Original Method
         * 
         * @param aScore
         * @return an exam score out of 50
         */
        String examScore(int aScore){
            Exam_Score = aScore + " out of 50";
            return Exam_Score;
        }
        /**
         * Overloaded Method
         * 
         * @param aScore
         * @param maximumScore - let's you set your own maximum score
         * @return an exam score
         */
        String examScore (int aScore,  String maximumScore){
            Exam_Score = aScore + maximumScore;
            return Exam_Score;
        }
        String examGrade (int aScore){
            Exam_Grade = this.getGrade(aScore);
            return Exam_Grade;
        }
        private String getGrade (int aScore){
            String examGrade ="";
            if (aScore>=0 && aScore<=10){
                examGrade="E";
            }
            else if (aScore>=11 && aScore<=20){
                examGrade="D";
            }
            else if (aScore>=21 && aScore<=30){
                examGrade="C";
            }
            else if (aScore>=31 && aScore<=40){
                examGrade="B";
            }
            else if (aScore>=41){
                examGrade="A";
            }
            return "  Grade is  " + examGrade;
        }
    }    

Kita akan menggunakan dua konstruksi seperti ini pada class ExamDetails:
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package exams;
/**
 * @author CHRISTIANTO "GEMBLONG" DHARMA WIBOWO LEARN JAVA
 */
public class ExamDetails {
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
//==================================================================
//                      CONSTRUCTOR ONE
//==================================================================
StudentResults studentOne = new StudentResults();
String student_name = studentOne.fullName();
System.out.println( student_name );

//==================================================================
//                      CONSTRUCTOR TWO
//==================================================================
StudentResults studentTwo = new StudentResults("female");
String student_name2 = studentOne.fullName();
System.out.println( student_name2 ); 
    }   
}
Dalam Constructor baris pertama, StudentResults obyek baru telah dibentuk dengan tanpa sesuatu diantara kurung bulat  new StudentResults();. Dalam Constructor baris kedua, StudentResults baru obyek telah dibentuk dengan string "perempuan" dalam kurung bulat  new StudentResults("female");. Dalam kedua kasus tersebut yang dibangun dengan menggunakan 2 konstruktor, kita menggunakan metode fullName untuk melihat apa yang ada dalam variabel lapangan FULL_NAME dari StudentResults. Berikut outputnya :
Output pertama adalah "No Name Given". Ini adalah hasil dari konstruktor asli yang sudah kita set sebelumnya. Dalam output kedua, konstruktor overload yang baru  kita set keluarannya "female". Jadi pada program kita kali ini sudah menggunakan metode java classes methode overloading dan metodi contructor overloading, selanjutnya kita akan mempelajari  Java Inheritance;

0 komentar:

Posting Komentar