class
所組成class
中包含了兩個部分檔案名稱:Car.java
public class Car {
String color;
String brand;
public void drive() {
System.out.println("car can drive");
}
public void playMusic(String music) {
System.out.println("play " + music);
}
}
檔案名稱:CarTest.java
public class CarTest{
public void static main(String[] args){
Car car = new Car();
car.color = "black";
car.brand = "BMW";
car.drive(); // car can drive
car.playMusic("兩隻老虎"); // play 兩隻老虎
}
}
Java中的method
是無法獨立寫的,必須寫在class
裡面。
格式:
權限修飾符 [其他修飾符] 返回型別 方法名稱(參數) [throws 異常類型] {執行的程式碼}[]
中的不是必須要寫的,其餘則是必須。
程式碼:public void playMusic(String music) { do something}
public class Mobile {
String brand;
int price;
public void openScreen() {
System.out.println("screen is open");
}
public void closeScreen() {
System.out.println("screen is close");
}
public void call(String name, int number) {
System.out.println("call " + name + "the phone number is " + number);
}
public String sendSms(String text) {
System.out.println("send" + text);
return "success";
}
public int getPrice() {
return price;
}
}
void
:單純執行程式碼,而不會有任何值返回。如:openScreen()
基本型別和引用型別
:若有返回型別時,需要依照返回的型別填寫。如:public String sendSms(String text)
當有返回型別時,需要在程式碼中加上return
進行返回,return
除了返回外,也有結束
方法的功能。
例如:
class Printer {
public void printNumber(int targetNumber) {
for(int i = 0; i < targetNumber; i++) {
System.out.println(i)
if(i == 9) {
return;
}
}
}
}
當希望這個印表機最多只能印出10次時,可以透過return
將它結束。
參數也是一種變數
填寫時需要填寫型別
,當要寫多個參數時,使用”,
”隔開。
當定義一個class
時,會先將這個class
的基本格式放在昨天提到的Method Area
裡面,當真正在實例化時,才會新增到Stack
和Heap
中,所以在定義class
時,每一個method
不是按照由上而下的方式執行。
例如上面的Mobile
來說,我不需要先call
才能sendSms
,也可以在sendSms
中執行call
方法。