Saturday, February 1, 2014

Java Tutorial 11

Java Tutorial 11(OOP) part 2

အရင္ပိုစ့္မွာ class ရဲ႕ member function ေတြအေၾကာင္းေျပာခဲ့ပါတယ္၊ အခု member function တစ္ခုျဖစ္တဲ့ constructor ဆိုတဲ့ function အေၾကာင္းကိုေဆြးေႏြးပါမယ္။ constructor ဆိုတာ class ရဲ႕ member function တစ္ခုျဖစ္ပါတယ္၊ ဒီ function ကိုေၾကာ္ျငာတဲ့အခါ constructor ရဲ႕နာမည္ကို class ရဲ႕နာမည္နဲ႔တူေအာင္ေပးရပါတယ္။ class နာမည္က Employee ဆိုရင္ constructor ရဲ႕နာမည္ကလည္း Employee ျဖစ္ရပါမယ္။ constructor ဆိုတဲ့ function ဟာဘာလုပ္တာလည္းလို႔ ေမးစရာရွိပါတယ္။ class ကေန object ေတြကိုဖန္တီးတဲ့ အခ်ိန္မွာ၊ အဲဒီ object ရဲ႕ constructor function ဟာအလိုအေလ်ာက္ ေခၚ(call)ခံရပါတယ္။ Person ဆိုတဲ့ class တစ္ခုရွိတယ္လို႔ ဆိုၾကပါဆို႔၊ ဒီလိုမ်ိဳး Person ppp = new Pserson(); ဆိုၿပီး Person ဆိုတဲ့ class ကေန ppp ဆိုတဲ့ object ကိုဖန္တီးလိုက္တဲ့အခါ၊ ppp object ရဲ႕ constructor function ကအလုပ္လုပ္ပါတယ္။

constructor ေတြမွာ return type မရွိပါဘူး။ constructor ေတြကိုလည္း overload လုပ္ႏိုင္ပါတယ္။ class ေတြမွာ constructor မထည့္ေပးလည္းျဖစ္ပါတယ္၊ မထည့္ရင္ေတာ့ object ေၾကာ္ျငာတဲ့အခါ constructor ကိုေခၚမွာမဟုတ္ပါဘူး။

ဆိုပါေတာ့ User ဆိုတဲ့ class တစ္ခုရွိတယ္၊ သူ႔မွာ overload ျဖစ္ေနတဲ့ constructor function ႏွစ္ခုရွိတယ္။

class User {

String name;

int age;

int phone;

//first Constructor

public User() {

name = “Mr Unknown”;

age = 20;

phone = 000000;

}

//second Constructor

public User(String n, int a, int p) {

name = n;

age = a;

phone = p;

}

}

ဒီ User class နဲ႔ object တစ္ခုကိုတည္ေဆာက္ရာမွာ ဒီလိုမ်ိဳး User uuu = new User(); ေၾကာ္ျငာလိုက္မယ္ဆိုရင္ ပထမ constructor ကအလုပ္လုပ္ပါတယ္။ parameter ေတြထည့္ၿပီးေတာ့ User uuu = new User(“Mg P”, 20, 111111); လို႔ေၾကာ္ျငာမယ္ဆိုရင္ ဒုတိယ constructor ကအလုပ္လုပ္မွာပါ။ ဒုတိယ constructor ရဲ႕အလုပ္လုပ္ပံုက၊ သူ႔ကိုေပးလိုက္တဲ့ parameter ရဲ႕တန္ဖိုးေတြကို object ရဲ႕ field ေတြထဲ ထည့္ေပးလိုက္တာပါ။

Parameter သံုးခုလက္ခံတဲ့ constructor ကိုေၾကာ္ျငာထားတဲ့အတြက္၊ object တည္ေဆာက္ရာမွာ parameter သံုးခုထည့္ေပးရတာပါ။ parameter ႏွစ္ခုပဲထည့္ေပးလို႔မရပါဘူး၊ parameter ႏွစ္ခုကိုလက္ခံတဲ့ constructor မရွိလို႔ပါ။ ဘာ constructor မွမရွိရင္ေတာ့ new User() လို႔ပဲအသံုးျပဳရမွာပါ။

Method ေတြမွာ return type ဆိုတာရွိပါတယ္၊ သူ႔ကို method ရဲ႕နာမည္ေရွ႕မွာေရးရပါတယ္။ ဘာမွ return မျပန္ရင္ေတာ့ void လို႔ေရးရပါတယ္။ integer တန္ဖိုး return ျပန္ရင္ int လို႔ေရးရပါတယ္၊ object တစ္ခု return ျပန္လို႔လည္းရပါတယ္၊ object ဆိုရင္ေတာ့ object ရဲ႕နာမည္ကိုေရးရပါတယ္။ return ျပန္ဖို႔ function ထဲမွာ “return” ဆိုတဲ့ကုဒ္နဲ႔ return ျပန္မယ့္တန္ဖိုးကို ေရးသားေပးရပါမယ္။

public int IntReturn() {

return 3;

}

ဒီ function မွာဆိုရင္ integer တန္ဖိုးျဖစ္တဲ့ 3 ကို return ျပန္ထားပါတယ္၊ သူ႔ကိုေခၚမယ္ဆိုရင္ အေျဖ 3 ကိုရမွာပါ။ ဒီ return ျပန္တဲ့အေျဖကို variable တစ္ခုခုထဲ ထည့္သိမ္းထားလို႔ရပါတယ္၊ မထည့္ထားရင္ေတာ့ return ျပန္တဲ့အေျဖက ေပ်ာက္သြားပါလိမ့္မယ္။

Return ျပန္တဲ့အခါ function အလုပ္လုပ္တာရပ္သြားပါမယ္၊ return ျပန္တဲ့ကုဒ္ရဲ႕ေအာက္မွာ တျခားကုဒ္ေတြရွိရင္ return ျပန္တဲ့အခါ၊ သူ႔ေအာက္ကကုဒ္ေတြက ဆက္ၿပီးအလုပ္လုပ္မွာ မဟုတ္ပါဘူး။ return ျပန္တဲ့ကုဒ္မရွိရင္ေတာ့ function ထဲကကုဒ္ေတြအကုန္လံုး အလုပ္လုပ္မွာပါ။

တကယ္လို႔ function ထဲမွာတြက္ခ်က္မွဳေတြ လုပ္ေနရင္း၊ function ကအလုပ္မၿပီးေသးခ်ိန္ ကိုယ္လိုခ်င္တဲ့ အေျဖထြက္လာပါတယ္ဆိုပါဆို႔။ အဲဒီအေျဖကို return ျပန္ၿပီးက်န္တဲ့ကုဒ္ေတြကို ဆက္ၿပီးအလုပ္မလုပ္ေစခ်င္ရင္၊ return ျပန္တဲ့ကုဒ္ကို function ရဲ႕အဆံုးမွာမထည့္ပဲ function ရဲ႕အလည္မွာထည့္မယ္ဆိုရင္ အဆင္ေျပပါတယ္။

 

ထုပ္ပိုး စုေဆာင္းျခင္း

Class ေတြအမ်ားႀကီးျဖစ္လာတဲ့အခါ ရွဳပ္ေထြးမွဳမျဖစ္ရေအာင္ အမ်ိဳးအစားတူတဲ့ class ေတြကိုစုေဆာင္းထားဖို႔လိုအပ္ပါတယ္။ အဲဒီအတြက္ java မွာ package ေတြတည္ေဆာက္ၿပီး၊ အမ်ိဳးအစားတူရာ class ေတြကို package ေတြထဲမွာသိမ္းထားလို႔ရပါတယ္။

အမွန္တကယ္ေတာ့ package ဆိုတာ folder တစ္ခုပါပဲ။ ကိုယ့္ရဲ႕ class ထဲမွာရွိတဲ့ ကုဒ္ေတြထဲက  အေပၚဆံုးေနရာမွာ package ဆိုတဲ့ကုဒ္နဲ႔ package နာမည္ကိုေရးရပါမယ္။ ၿပီးေတာ့ အဲဒီကုဒ္ကို package နဲ႔နာမည္တူတဲ့ folder ရဲ႕အထဲမွာသိမ္းရပါမယ္။ ဥပမာ အေနနဲ႔ေအာက္က class မ်ိဳးရွိတယ္ဆိုပါဆို႔။

“SalesClass.java”

package sales;

public class SalesClass {

}

ဒါဆိုရင္ဒီ class ကို “sales” ဆိုတဲ့ folder ေအာက္မွာသိမ္းထားရပါမယ္။

ဒီလိုမ်ိဳး package ေတြခြဲျခားတည္ေဆာက္ျခင္းအားျဖင့္ software အႀကီးေတြကို ေရးရတာလြယ္ကူေစပါတယ္။ နမူနာအေနနဲ႔ ေဈ းေရာင္းတဲ့ software ဆိုပါဆို႔။ ဒါဆိုရင္ ကုန္ပစၥည္းအမ်ိဳးမ်ိဳးကို class ေတြေဆာက္ပါမယ္၊ ဥပမာ food, clothes, electronic, cosmictic, drink စသည္ျဖင့္ class ေတြေဆာက္ပါမယ္၊ ၿပီးေတာ့ ဒီ class ေတြကို item ဆိုတဲ့ package ထဲထည့္ေပးလိုက္ပါမယ္။ ဒါဆိုရင္ makeOrder, cancelOrder, deliverOrder ဆိုတဲ့ class ေတြကိုေတာ့ order ဆိုတဲ့ package ထဲထည့္ေပးလိုက္ပါမယ္။ အဲဒီလိုမ်ိဳး တူရာတူရာ အမ်ိဳးအစားေတြ စုၿပီး class ေတြကိုသိမ္းထားျခင္းျဖင့္၊ ျပဳျပင္ေျပာင္းလဲရတာ အသစ္ထပ္ထည့္ရတာ အေဟာင္းေတြကိုဖ်က္ရတာ ေတြကိုလြယ္ကူေစပါတယ္။

 

Previous : Java Tutorial 10

1 comment:

  1. […] Java Tutorial 11UCSY News for graduation ceremonyProfessional Web Development with PHP – PHP Installation and […]

    ReplyDelete