iT邦幫忙

2024 iThome 鐵人賽

DAY 11
0

Java是由一個一個class所組成

class中包含了兩個部分

  • field(屬性)
  • method(方法)

創建類

檔案名稱: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 兩隻老虎
	}
}

方法(method)

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 裡面,當真正在實例化時,才會新增到StackHeap 中,所以在定義class 時,每一個method 不是按照由上而下的方式執行。

例如上面的Mobile 來說,我不需要先call 才能sendSms ,也可以在sendSms 中執行call 方法。


上一篇
Day10-陣列(二)
下一篇
Day12-類(記憶體中的表現方式)
系列文
前端工程師的java學習紀錄38
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言