iT邦幫忙

0

Java: 為何建立物件必須寫在main()中?

  • 分享至 

  • xImage

1.以下兩者皆出錯,請問是因為物件不能在main()之外建立是嗎? 建立物件是main()內才可以執行的動作嗎?
2.color和milesDriven就可以在main()外建立好,但為何Car myFastCar = new Car();必須寫在main()中?

public class Car {
  String color ="yello";
  int milesDriven = 23;
  Car myFastCar = new Car(); //錯誤
  
  public static void main(String[] args){
	 System.out.println(myFastCar.color);
	 System.out.println(myFastCar.milesDriven);
  }

3.為何在main()中才建立物件,仍會錯誤?

public class Car {
  String color ="yello";
  int milesDriven = 23;
  Car myFastCar; //出現錯誤
 
  public static void main(String[] args){
	 myFastCar = new Car(); 
	 System.out.println(myFastCar.color);
	 System.out.println(myFastCar.milesDriven);
  }
}

4.以下兩者有什麼不同? 第一個將物件建立在constructor中,第二個在field中。

public class Car {
	Bike bike;
	
	Car(){
		bike = new Bike(); //在contructor中建立
		bike.color("red");
	}
	
	public static void main(String[] args) {
		Car car = new Car(); 
	}

}

class Bike {
	
	void color(String c) {
		System.out.println(c);
	}
}
public class Car {
	Bike bike =  new Bike(); //在field中建立
	
	Car(){
		bike.color("red");
	}
	
	public static void main(String[] args) {
		Car car = new Car(); 
	}

}

class Bike {
	
	void color(String c) {
		System.out.println(c);
	}

}

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

1
海綿寶寶
iT邦大神 1 級 ‧ 2022-02-09 16:35:48
最佳解答

1,2 只要加個 static 宣告即可
static Car myFastCar = new Car();
如果想仔細了解原因,就看這篇說明

3,4 做的事(和結果)是一樣的

另外
先前的問題如果已經解決
選個最佳解答以結案

crazy iT邦新手 5 級 ‧ 2022-02-11 11:20:42 檢舉

非常感謝

我要發表回答

立即登入回答