在java中初始化對象有3
種方式,它們分別如下 -
- 通過引用變量初始化對象
- 通過方法初始化對象
- 通過構造函數初始化對象
(更多教程請閱讀碼農之家)
通過引用變量初始化對象
初始化對象僅僅是將數據初步地存儲到對象中。下面來看看一個簡單的例子,通過引用變量初始化對象。這里創建一個 TestStudent2.java
類文件,代碼如下:
class Student {
int id;
String name;
}
class TestStudent2 {
public static void main(String args[]) {
Student s1 = new Student();
s1.id = 101;
s1.name = "Sonoo";
System.out.println(s1.id + " " + s1.name);// printing members with a
// white space
}
}
上面代碼輸出結果如下 -
101 Sonoo
還可以通過引用變量創建多個對象並存儲信息在這些對象。這里創建一個 TestStudent3.java
類文件,代碼如下:
class Student {
int id;
String name;
}
class TestStudent3 {
public static void main(String args[]) {
// Creating objects
Student s1 = new Student();
Student s2 = new Student();
// Initializing objects
s1.id = 101;
s1.name = "Sonoo";
s2.id = 102;
s2.name = "Amit";
// Printing data
System.out.println(s1.id + " " + s1.name);
System.out.println(s2.id + " " + s2.name);
}
}
上面代碼輸出結果如下 -
101 Sonoo
102 Amit
通過方法初始化對象
在本示例中,將創建Student
類的兩個對象,並通過調用insertRecord
方法來初始化這些對象的值。並通過調用displayInformation()
方法顯示對象的狀態(數據)。這里創建一個 TestStudent4.java
類文件,代碼如下:
class Student {
int rollno;
String name;
void insertRecord(int r, String n) {
rollno = r;
name = n;
}
void displayInformation() {
System.out.println(rollno + " " + name);
}
}
class TestStudent4 {
public static void main(String args[]) {
Student s1 = new Student();
Student s2 = new Student();
s1.insertRecord(111, "Karan");
s2.insertRecord(222, "Aryan");
s1.displayInformation();
s2.displayInformation();
}
}
執行上面代碼,得到如下結果 -
111 Karan
222 Aryan
創建對象的示意如下 -
從上圖可以看出,對象在堆內存區域獲取內存。 引用變量指的是在堆內存區域中分配的對象。 這里,s1
和s2
都是引用存儲器中分配的對象的引用變量。
通過構造函數初始化對象
有關於通過構造函數初始化對象,我們將在后面的Java構造函數中學習。
對象和類示例:Employee
下面我們來看看一個例子,實現維護員工信息的記錄。這里創建一個 TestEmployee.java
類文件,代碼如下所示 -
class Employee {
int id;
String name;
float salary;
void insert(int i, String n, float s) {
id = i;
name = n;
salary = s;
}
void display() {
System.out.println(id + " " + name + " " + salary);
}
}
public class TestEmployee {
public static void main(String[] args) {
Employee e1 = new Employee();
Employee e2 = new Employee();
Employee e3 = new Employee();
e1.insert(101, "ajeet", 45000);
e2.insert(102, "irfan", 25000);
e3.insert(103, "nakul", 55000);
e1.display();
e2.display();
e3.display();
}
}
上面代碼執行得到結果如下 -
101 ajeet 45000.0
102 irfan 25000.0
103 nakul 55000.0
對象和類示例:Rectangle
還有另一個維護Rectangle
類記錄的例子。這里創建一個 TestRectangle1.java
類文件,代碼如下所示 -
class Rectangle {
int length;
int width;
void insert(int l, int w) {
length = l;
width = w;
}
void calculateArea() {
System.out.println(length * width);
}
}
class TestRectangle1 {
public static void main(String args[]) {
Rectangle r1 = new Rectangle();
Rectangle r2 = new Rectangle();
r1.insert(11, 5);
r2.insert(3, 15);
r1.calculateArea();
r2.calculateArea();
}
}
上面代碼執行得到結果如下 -
55
45