文章目錄
- 前言
- 一、類和物件的關系
- 二、如何創建和初始化物件
- 1.使用new關鍵字創建物件
- 2.物件初始化
- 三、構造器
前言
本文主要講解類和物件的關系,以及如何創建和初始化物件,對構造器的詳解
一、類和物件的關系
-
類是一種抽象的資料型別,它是對某一類事物的整體描述,但是不能代表某一個具體的事物,
例如:動物、植物、桌子、電腦、手機,Person類、Car類等等,這些類都是用來描述一類具體的事物因該具有的特點和行為,是抽象的概念,
-
物件是抽象概念的具體實體
例如:李華就是人的一個具體實體,李華養的一只大黃,就是狗的一個具體實體,
在這里,人是一個“類”,李華就是一個“物件”,同樣,大黃也是一個物件,都不是抽象的,而是實實在在存在的,
二、如何創建和初始化物件
1.使用new關鍵字創建物件
1.首先創建一個類,我這里創建的是一個學生類,里面有學生的姓名、年齡,
public class Student {
String name; //姓名
int age; //年齡
2.類是抽象的,需要實體化,也就是創建一個物件,實體化后會回傳一個物件,代碼如下
Student lihua = new Student();
Student lihong = new Student();
我們就像這樣new 一個物件,這里的lihua,lihong就是Student類的具體實體,
2.物件初始化
接著需要對物件進行初始化,如果不初始化,輸出的資料將會是默認值,代碼如下
lihua.name="李華";
lihua.age=19;
lihong.name="李紅";
lihong.age=18;
看一下輸出結果
System.out.println(lihua.name);
System.out.println(lihua.age);
System.out.println(lihong.name);
System.out.println(lihong.age);
李華
19
李紅
18
完成初始化,
如果不初始化,我們來看一下運行結果
null
0
null
0
三、構造器
上面使用new關鍵字創建物件的時候,除了會分配記憶體空間和對創建好的物件進行默認的初始化之外,還會對類中的構造器進行呼叫,
- 類中的構造器也稱為構造方法,是在進行創建物件的時候必須呼叫的,構造器有以下兩個特點
- 和類的名字相同
- 沒有回傳型別,也不能寫void
Student類中什么也不定義,在主方法里面對Student類創建一個物件student
public class Student {
}
public static void main(String[] args) {
Student student = new Student();
}
發現即使類中內容是空的,在主方法中仍然可以呼叫出來Student類,為啥呢?
接下來我們在out 目錄中找到Student.class檔案,打開看一下
public class Student {
public Student() {
}
}
發現和源檔案中的代碼相比較,多出來一個public Student方法,這個方法 ,首先,它的名字和上面的類名相同,其次,它沒有回傳值,其實,這就是一個構造器,
對于無參構造和有參構造,代碼如下
- 無參構造
public class Student {
String name;
public Student(){
this.name="李華";
}
}
public static void main(String[] args) {
Student student = new Student();
System.out.println(student.name);
}
輸出結果
李華
- 有參構造
如果使用了有參構造,就可以讓無參構造中的內容空著,它什么也不用做
//無參構造
public Student(){
// this.name="李華";
}
//有參構造
public Student(String name){
this.name = name;
}
public static void main(String[] args) {
// Student student = new Student();
Student student = new Student("李華");
System.out.println(student.name);
}
使用new關鍵字呼叫方法,由于方法可以多載,呼叫時會自動匹配到有參構造的方法,即呼叫上面的public Student(String name)
結果
李華
由此,我們可以得出一些結論:
- 一個類中即使什么也不寫,它也會存在一個方法,
- 使用new關鍵字,本質就是在呼叫構造器,
- 構造器可以用來初始化值,
- 注意:如果定義了有參構造,還想用無參構造new物件,就必須顯示無參構造的定義,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/241317.html
標籤:java
上一篇:類和物件
