作為 Codegym 大學課程一部分的導師授課片段。報名參加完整課程。
“現在是我告訴你構造函數的時候了。這是一個非常簡單的概念。程序員發明了一種創建和初始化對象的簡寫方法。 ”
沒有構造函數 |
使用構造函數 |
MyFile file = new MyFile();
file.initialize("c:\data\a.txt");
String text = file.readText();
|
MyFile file = new MyFile("c:\data\a.txt");
String text = file.readText();
|
MyFile file = new MyFile();
file.initialize("c:\data\", "a.txt");
String text = file.readText();
|
MyFile file = new MyFile("c:\data\", "a.txt");
String text = file.readText();
|
MyFile file = new MyFile();
file.initialize("c:\data\a.txt");
MyFile file2 = new MyFile();
file2.initialize( MyFile file, "a.txt");
String text = file2.readText();
|
MyFile file = new MyFile("c:\data\a.txt");
MyFile file2 = new MyFile(file, "a.txt");
String text = file2.readText();
|
“剛學完初始化方法……”
“仔細看。有了構造函數,代碼更方便、更緊湊。”
“原來如此。這裡有一個問題。我知道如何在類中編寫初始化方法,但是如何編寫構造函數?”
“首先,看這個例子:”
沒有構造函數 |
使用構造函數 |
class MyFile
{
private String filename = null;
public void initialize(String name)
{
this.filename = name;
}
public void initialize(String folder, String name)
{
this.filename = folder + name;
}
public void initialize(MyFile file, String name)
{
this.filename = file.getFolder() + name;
}
…
}
|
class MyFile
{
private String filename = null;
public MyFile(String name)
{
this.filename = name;
}
public MyFile(String folder, String name)
{
this.filename = folder + name;
}
public MyFile(MyFile file, String name)
{
this.filename = file.getFolder() + name;
}
…
}
|
“在類中聲明構造函數很容易。構造函數類似於初始化方法,只有兩個區別:
1.構造函數的名稱與類名相同(而不是初始化)。
2.構造函數沒有類型(未指示類型)。
“好的,所以它就像initialize,但有一些不同。我想我明白了。”
GO TO FULL VERSION