目錄
- 第一章:基礎概要
- 1.1什麼是面向對象?
- 2.1面向對象的三大特征。
- 3.1類和對象的概念。
- 第二章:構造方法
- 1.1什麼是構造方法?
- 2.1文法結構
- 第三章:封裝(private)
- 1.1什麼是封裝?作用?
- 2.1怎麼進行封裝,代碼怎麼實作?
- 3.1 set()和get()方法
- 第四章:static 和this關鍵字
- 1.1 static關鍵字
- 2.1 this關鍵字
- 一起學習,快樂程式設計,歡迎攻城獅們多多交流
第一章:基礎概要
1.1什麼是面向對象?
更符合人的思維方式,面向對象更容易接受。
将射界分割成不同的單元,每個單元都實作,
2.1面向對象的三大特征。
封裝(private),繼承(extends),多态。
3.1類和對象的概念。
1 什麼是類?
抽象總結的一個結果,現實中不存在,抽象的概念。
2.什麼是對象?(執行個體)
實際存在的個體。
舉例:宋小寶,姚明是對象,屬于“明星”這個類。
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI0gTMx81dsQWZ4lmZf1GLlpXazVmcvwFciV2dsQXYtJ3bm9CX9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5CNyYDOxMmN4MGNhRTM2MDOyYzXwEDO0YTM3EzLcVDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)
在Java中,要得到對象,必須定義類。類是一個模闆,描述的是對象的共同特征。共同特征包括:屬性和方法。(類=屬性+方法)
3.類的定義:
[修飾符清單] class 類名{
類體=屬性+方法;(屬性為變量,方法為動作或行為)
}
//定義一個學生類
public class Student{
//學生類具有學号和名字屬性
int no;//學号
String name;//姓名
//方法
public void doSome(){
System.out.println("我是一個學生");
}
}
類名為引用資料類型,方法體中的變量為局部變量,方法體外的變量為成員變量(屬性)
成員變量分為靜态變量和執行個體變量。
4.對象的建立
new 類名(); 一個類可以建立多個對象。
類名 變量名=new 類名();
//new了一個Student對象
Student s=new Student();
5.執行個體變量
對象成為執行個體,執行個體變量是:對象級别的變量。
public class 明星類{
double height;
}
身高這個屬性所有的明星對象都有,但是每一個對象都有“自己的身高值”。
假設建立10個明星對象,height變量應該有10份。
是以這種變量被稱為對象級别的變量。屬于執行個體變量。
6.對象和引用的差別。
對象是new出來,在堆中存儲。
引用:儲存對象記憶體位址的變量。
7.通路執行個體變量
引用名.執行個體變量名。
Student s1=new Student();
s1.name;//通路name執行個體變量
s1.no;//通路no執行個體變量
8. 空指針異常
“空引用”通路執行個體相關的資料時,都會出現空指針異常。
第二章:構造方法
1.1什麼是構造方法?
構造方法是一個特殊的方法,能夠建立對象,以及給對象屬性指派。
當一個類中沒有提供任何構造方法,系統預設提供一個無參數的構造方法。這個無參數的構造方法叫做預設構造器。
當一個類中手動的提供了構造方法,那麼系統将不再預設提供無參數構造方法。建議将無參數構造方法手動的寫出來,這樣一定不會出問題。
2.1文法結構
[修飾符清單] 構造方法名(形參清單){
構造方法體;
}
注意:
1.調用構造方法:使用new調用。
2.修飾符用public。
3.構造方法名與類名一緻,不需要指定傳回值類型。
public Student() {
no=12312313; //學号指派
name="張三";//姓名指派
}
構造方法支援方法重載嗎?
構造方法是支援方法重載的。在一個類當中構造方法可以有多個。并且所有的構造方法名字都是一樣的。
對于執行個體變量來說,隻要你在構造方法中沒有手動給它指派,統一都會預設指派。預設賦系統值。
第三章:封裝(private)
1.1什麼是封裝?作用?
現實生活中有很多現實的例子都是封裝的,例如:
手機,電視機,筆記本電腦,照相機,這些都是外部有一個堅硬的殼兒。
封裝起來,保護内部的部件。保證内部的部件是安全的。另外封裝了之後,
對于我們使用者來說,我們是看不見内部的複雜結構的,我們也不需要關心
内部有多麼複雜,我們隻需要操作外部殼兒上的幾個按鈕就可以完成操作。
封裝的作用有兩個:
1.保證内部結構的安全。2.屏蔽複雜,暴露簡單。
2.1怎麼進行封裝,代碼怎麼實作?
第一步:屬性私有化(使用private關鍵字進行修飾。)
第二步:對外提供簡單的操作入口。
代碼示範:
class Student{
private int no;
private String name;
public Student() {
no=12312313;
name="張三";
}
}
一個類體中的資料封裝後,必須通過一個入口進入。
3.1 set()和get()方法
封裝的代碼實作兩步:
第一步:屬性私有化
第二步:1個屬性對外提供兩個set和get方法。外部程式隻能通過set方法修改,隻能通過get方法讀取,
可以在set方法中設立關卡來保證資料的安全性。
set和get方法都是執行個體方法,不能帶static。
不帶static的方法稱為執行個體方法,執行個體方法的調用必須先new對象。
**set和get方法寫的時候有嚴格的規範要求:
set方法長這個樣子:
public void set+屬性名首字母大寫(1個參數){
xxx = 1個參數;
}
get方法長這個樣子:
public 傳回值類型 get+屬性名首字母大寫(無參){
return xxx;
}**
第四章:static 和this關鍵字
1.1 static關鍵字
1.static修飾的統一都是靜态的,都是類相關的,不需要new對象。直接采用“類名.”通路。
2.當一個屬性是類級别的屬性,所有對象的這個屬性的值是一樣的,建議定義為靜态變量。
3.static修飾的變量和方法都是靜态的。
4.類加載時初始化,存儲在方法區。
5.
static
靜态代碼塊,類加載時執行,隻執行一次,在main方法前執行,按自上而下的順序。(記錄日志)
static{
Java代碼;
}
6.
執行個體代碼塊
在構造方法前執行,調用一次執行一次。
{
Java代碼;
}
2.1 this關鍵字
1、this是一個關鍵字,是一個引用,儲存記憶體位址指向自身。
2、this可以使用在執行個體方法中,也可以使用在構造方法中。
3、this出現在執行個體方法中其實代表的是目前對象。
4、this不能使用在靜态方法中。
5、this. 大部分情況下可以省略,但是用來區分局部變量和執行個體變量的時候不能省略。
6、this() 這種文法隻能出現在構造方法第一行,表示目前構造方法調用本類其他的
構造方法,目的是代碼複用。
代碼示範:
class Student{
private int no;
private String name;
public Student() {
this(123,"張三");
}
public Student(int no, String name) {
this.no = no;
this.name = name;
}
public int getNo() {
return no;
}
public void setNo(int no) {
this.no = no;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}