1.面向對象編程的概念
1)萬物皆是對象
2)指以屬性(特徵)和行爲的觀點去分析現實生活中的事物【首先對特徵和行爲進行分析】
面向對象編程
3)先對面向對象的思想進行分析,然後使用面向對象的編程語言進行表達的過程
4)C:面向過程 C++:面向過程+面向對象 Java:純粹的面向對象;
面向過程:佈置任務,取上課,各個時間段幹啥,就是所有的過程以及步驟;
面向對象:我是個對象,分析特徵(熟悉,是否具備講師特徵,講課的行爲是否具備)明天你就去給xx接課
5)產業發展的需求
6)三大精髓封裝、多態、繼承
2.類和對象的概念
1)對象:現實客觀存在的實體,java中體現爲內存空間中的一塊cun
2)類:分類,具有相同特徵和行爲的多個對象共性的抽象描述,在java中語言種體現爲一種引用數據類型,裏面包含描述特徵/屬性的成員變量以及描述行爲的成員方法;
3)類是用於構建對象的模版,對象的數據結構由定義他的類決定
4)類的定義:
class 類名{
類體
}
類名有多個單詞,應首字母大學,即”駝峯命名法“
5)成員變量的定義
數據類型 成員變量名 = 初始值;
規定:成員變量有多個單詞組成,通常從第二個單詞的首字母大寫
6)對象的創建
new 類名();
本意:類定義完成後,用new關鍵字創建該類的對象,這個過程話叫類的實例化;
實質:創建對象的本質是在內存空間的堆區申請一塊存儲區域,存放該對象獨有的特徵信息;
7)引用的定義
基本概念:
a.使用引用數據類型定義的變量,簡稱引用
b.引用變量主要用於記錄對象在堆區中的內存地址信息,便於訪問
語法格式:
類名 引用變量名;
引用變量名.成員變量名;
8)案例題目
eg1:
class Person(){
String name;
}
new Person();
eg2:
Person p = new Person();
p.name = “我是你”;
sout(p.name);
9)Person類代碼執行流程
ps:小編的畫圖水平並不高,敬請見諒!!!
3.成員方法的定義
1)內部的內容
2)class 類名{
返回值類型 成員方法名(形參列表){
成員方法體;
}
}
成員方法由多個單詞組成是,要求從第二個單詞起每個單詞的首字母大寫。
3)返回值類型:返回值的數據類型,可以爲基本數據類型,也可引用數據類型(方法體內返回方法體外,使用return,遇到return方法結 束)
4)形參列表:多個形參,數據從方法體外-> 方法體內,無初始值。
5)成員方法可以實現代碼重用,簡化代碼。
6)成員變量與成員方法在同一個類中,成員方法可以訪問成員變量
7)實參對形參進行初始化操作,個數、類型、順序都要完全一致,可以傳直接量、變量、表達式、
8)調用方法的本質是根據方法名跳轉過去執行方法在這個位置
9)有參無返回值的成員方法的使用
package com.lagou.module1.prject2;
//降低了代碼的耦合性,即代碼的解藕合
public class Person {
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
//定義成員變量
//人的特徵,姓名
String name;
int age;
//以參數的形式傳入姓名和年齡
//開發中使用的最多的是單獨的模式,改一個都要改,比較麻煩
void setNameAge(String name,int age){
this.name = name;
this.age = age;
}
void show(){
System.out.println("我是"+name+",今年"+age);
}
void showall(int... args){
for(int i = 0;i < args.length;i++){
System.out.println("i的值是"+i+args[i]);
}
}
public static void main(String[] args) {
//聲明person對象只想person類
Person p = new Person();
//打印對象中的成員變量值;
//引用變量名 成員變量名
System.out.println("我是"+p.name+",今年"+p.age);
//引用數據類型默認值是null,基本數據類型默認是0
System.out.println("------------------------------------------------------");
p.name = "章三";
p.age = 38;
System.out.println("我是"+p.name+",我的名字是"+p.age);
System.out.println("------------------------------------------------------");
p.setNameAge("關羽",40);
p.show();
p.showall(1,2,3,4,5,6);
}
}
4.可變長參數的使用
參數的長度可以發生改變
返回值類型 方法名(參數的類型 ... 參數名),參數個數可變,參數包含固定也包含可變長參數,則可變長放在列表末尾
自定義成員變量使用可變長參數,當成一位數組使用
void showall(int... args){
for(int i = 0;i < args.length;i++){
System.out.println("i的值是"+i+args[i]);
}
5.成員變量與局部變量之間的區別
1)聲明位置不同:成員變量是寫在累的內部,方法體的外部。局部變量是方法體內部的
2)作用域不同:成員變量聲明開始到類體結束,局部變量是從聲明開始到方法體結束
6.方法傳參的過程
7.參數傳遞的注意事項
1)基本數據類型:作爲形式參數時,形參變化不影響實參變化,分別存儲在不同的內存塊
2)引用數據類型:作爲形式參數時,形參變化影響實參變化,因爲引用數據類型傳遞的是堆內存地址,存儲在同一塊內存區域
3)引用數據類型:作爲形式參數時,形參指向發生改變後,數值改變不影響實參變化,因爲引用數據類型傳遞的是堆內存地址,不存儲在同一塊內存區域
喜歡本文的朋友們,歡迎長按下圖關注訂閱不得不說叔,收看更多精彩內容