Workshop SCS: Java Game Programming Materi Pertemuan 1
Constructor Constructor merupakan suatu method yang akan memberikan nilai awal pada saat suatu object dibuat. Pada saat kita bekerja dengan constructor, hal mendasar yang perlu diperhatikan, yaitu : Nama Constructor sama dengan nama Class. Tidak ada return type yang diberikan kedalam Constructor Signature. Tidak ada return stetement, didalam tubuh constructor.
Variable & Constant Variable memiliki nilai yang bisa berubah di mana pun dalam program selama masih dalam cakupan akses variabel tersebut saat dideklarasikan. int intvariable; Constant memiliki nilai tetap sebagaimana dideklarasikan di awal. public static final int intconst=5;
Variables Type Local variable Instance variable Class/static variable
Local Variables Local variables dideklarasikan dalam suatu method, constructor, atau block. Local variables dibuat saat method, constructor atau block diakses dan variable akan dihancurkan saat method, constructor atau block selesai diakses. Access modifiers tak dapat digunakan pada local variables. Local variables hanya dapat dilihat dalam method, constructor atau block dimana variables dideklarasikan. Local variables diimplementasikan pada stack level secara internal. Tidak ada nilai default untuk local variables, jadi local variables harus dideklarasikan dan nilai inisial harus diberikan sebelum digunakan pertamakali.
Local Variables public class Test{ public void pupAge(){ } int age = 0; age = age + 7; System.out.println("Puppy age is : " + age); } public static void main(String args[]){ Test test = new Test(); test.pupAge();
Instance Variables Instance variables dideklarasikan dalam suatu class, tapi di luar suatu method, constructor atau block. Instance variables dibuat saat object dibuat dengan menggunakan kata kunci ‘new’ dan dihancurkan saat object dihancurkan. Instance variables menyimpan nilai yang harus direferensikan oleh lebih dari 1 method, construct atau block. Access modifier dapat diberikan untuk instance variables. Instance variables dapat digunakan pada semua methods, constructors dan block dalam class. Normalnya direkomendasikan untuk membuat variables ini menjadi private. Instance variables punya nilai default. Nominal defaultnya 0, Booleans adalah false dan object adalah null.
Instance Variables import java.io.*; public class Employee{ // this instance variable is visible for any child class. public String name; // salary variable is visible in Employee class only. private double salary; // The name variable is assigned in the constructor. public Employee (String empName){ name = empName; } // The salary variable is assigned a value. public void setSalary(double empSal){ salary = empSal;
Classic/Static Variables Class variables juga dikenal sebagai static variables dideklarasikan dengan kata kunci static dalam suatu class, tapi di luar method, constructor atau block. Static variables jarang digunakan selain dideklarasikan sebagai constants. Constants adalah variables yang dideklarasikan sebagai public/private, final dan static. Static variables disimpan dalam static memory. Static variables umumnya dideklarasikan dengan kata kunci final dan digunakan baik sebagai public atau private constants. Static variables dibuat saat program dimulai dan dihancurkan saat program selesai. Static variables dapat digunakan pada semua methods, constructors dan block dalam class. Kebanyakan static variables dideklarasikan dalam public karena harus bisa digunakan untuk pengguna class. Nilai default sama dengan instance variables. Static variables dapat diakses dengan memanggil nama classnya ClassName.VariableName. Saat deklarasi class variables sebagai public static final, maka nama variables (constants) dalam huruf besar semua. Jika static variables tidak public dan final, sintak penamaan adalah sama dengan instance dan local variables.
Classic/Static Variables import java.io.*; public class Employee{ // salary variable is a private static variable private static double salary; // DEPARTMENT is a constant public static final String DEPARTMENT = "Development "; public static void main(String args[]){ salary = 1000; System.out.println(DEPARTMENT+"average salary:"+salary); }
Access Modifiers Di java ada 4 macam akses modifier yang fungsinya berlainan, yaitu: default, public, private, protected
Default tipe akses ini hanya dalam satu class itu sendiri yang dapat mengaksesnya tergantung dari blok kodenya public class Hello{ public static void main(String args[]){ // access modifer default int nilai; }
Public Tipe ini mengijinkan seluruh class dari luar atau dari dalam package bisa mengaksesnya public class Hello{ public static void main(String args[]){ // access modifer pulic public String nilai; }
Protected Tipe ini di gunakan untuk pewarisan dalam java, jadi bila suatu super class mempunyai sebuah member, ini dapat diakses oleh subclassnya. public class SuperClass{ public static void main(String args[]){ // access modifer protected protected int nilai; } public class SubClass{ // merubah nilai yang ada di superclass public void hitung(){ nilai=10;
Private Tipe ini hanya dapat diakses dimana class tersebut di buat. public class Hello{ public static void main(String args[]){ // access modifer private private int nilai; }
Loop Ada 3 macam loop: while Loop do...while Loop for Loop
While public class Test { public static void main(String args[]) { int x = 10; while( x < 20 ) { System.out.print("value of x : " + x ); x++; System.out.print("\n"); }
Do While public class Test { public static void main(String args[]){ int x = 10; do{ System.out.print("value of x : " + x ); x++; System.out.print("\n"); } while( x < 20 );
For public class Test { public static void main(String args[]) { for(int x = 10; x < 20; x = x+1) { System.out.print("value of x : " + x ); System.out.print("\n"); }
While (True) while(true) berguna untuk melakukan sesuatu sepanjang waktu. Client/Server Communication adalah salah satu skenario yang cocok. Skenario lainnya adalah untuk animasi game atau menjaga agar beberapa nilai selalu up to date. Sebaiknya digunakan pada thread tersendiri, sehingga aplikasi tidak sampai hang karena penggunaan while(true). Penambahan suatu exit-flag akan berguna untuk while(true)-loop, agar bisa dihentikan jika dibutuhkan.
While (True) Boolean isExit = false; //set this value to true when needed. while(true) { try { if(isExist){ break; } wait() } catch (Exception ex) { /*do something*/
Terimakasih