有三種方式,你可以有一個構造函數:
1)您聲明一個無參數的一個
。
public class book
{
string author;
string title;
int reference;
public book() {
// initialize member variables with default values
// etc.
}
}
2)您聲明一個帶參數
。
public class book
{
string author;
string title;
int reference
public book(string author, string title, int reference) {
// initialize member variables based on parameters
// etc.
}
}
3)你讓編譯器爲你聲明一個 - 這要求你不要聲明你自己的聲明。在這種情況下,成員變量將根據它們的類型(基本上它們的無參數構造函數調用)提供默認值。
可以混合選項1)和2),但3)是獨立的(不能混合它與其他任何兩個)。您也可以有參數超過一個構造函數(參數類型/號碼必須是不同的)
一個例子使用:
public static void main(String[] args) {
String author = ...;
String title = ...;
int ref = ...;
book book1 = new book(); // create book object calling no-parameter version
book book2 = new book(author, title, ref); // create book object calling one-parameter
// (of type String) version
}
的第一個片段是不是有效的Java。第二個定義了一個方法,而不是構造函數。請谷歌爲「Java教程」和閱讀基本的東西。 –
這似乎是手冊可以解決的問題:http://docs.oracle.com/javase/tutorial/java/javaOO/constructors.html – MaddHacker
我已將它們更改爲構造函數...我相信? – Banned