Day14 物件導向

2022-09-14 10:15:08 字數 4079 閱讀 3193

面向過程思想

步驟清晰簡單,第一步做什麼,第二步做什麼......

面對過程適合處理一些較為簡單的問題

物件導向思想

物以類聚,分類的思維模式,思考問題首先會解決問題需要哪些分類,然後對這些分類進行單獨思考。最後,才對某個分類下的細節進行面向過程的思索

物件導向適合處理複雜的問題,適合處理需要多人協作的問題!

對於描述複雜的事物,為了從巨集觀上把握、從整體上合理分析,我們需要使用物件導向的思路來分析整個系統。但是,具體到微觀操作,仍然需要面向過程的思路去處理。

屬性 + 方法 =類

物件導向程式設計(object-oriebted programming,oop)的本質就是:以類的方式組織**,以物件的形式封裝資料

抽象:把很多資料的共同點抽取出來構成乙個類。

三大特性:

封裝:把資料報裝起來

繼承:子類繼承父類

多型:同乙個事物會有多種形態

從認識的角度考慮是先有物件後有類。物件,是具體的事物。類,是抽象的,是對 物件的抽象

從**執行角度考慮是先有類後有物件。類是物件的模板

package com.oop.demo01;​​

import j**a.io.ioexception;

​//demo01 類

public class demo01

/*修飾符   返回值型別   方法名(...)

*/public string sayhello()

public  void hello()

​public int max(int i,int j)

//break:跳出switch,結束迴圈

//return:結束方法   返回乙個結果

//方法名:注意規範就ok 首字母小寫和駝峰原則   見名知意

//丟擲異常

public void readfile(string file) throws ioexception}​

靜態和非靜態:區別在於加不加static

//靜態方法

public static void say()

//非靜態方法

public void say1()

//在另乙個類呼叫

public static void main(string args)

特殊情況:

public void a()

public void b()

上邊這種情況是ok的

public static void a()

public static void b()

上邊這種情況也是ok的

package com.oop.demo01;

​public class demo02

//static 是和類一起載入的

public static void a()

​//類例項化之後才存在

public  void b()}​

但是這種呼叫是不行的,因為static 是和demo02類一起載入的,故a()方法是和demo02類一起載入的。而類例項化之b()方法才存在,所以乙個已經存在的不能呼叫不存在的

形參實參

package com.oop.demo01;

​public class demo03

public static int add(int a,int b)}​

值傳遞和引用傳遞

值傳遞:

package com.oop.demo01;

​//值傳遞

public class demo04

​//返回值為空

public static  void change(int a)}​

//引用傳遞

package com.oop.demo01;​​

//引用傳遞:傳遞物件,本質還是值傳遞

public class demo05

public static  void change(person person)

​//定義了乙個person類,有乙個屬性:name

static class person}​

類是一種抽象的資料型別,它是對某一類事物整體描述/定義的,但是並不能代表某乙個具體的事物,是抽象的概念

例如:動物、植物、手機、電腦.....

person類,pet類、car類等,這些類都是用來描述/定義某一類具體的事物應該具備的特點和行為

物件是抽象概念的具體例項

張三就是人的乙個具體例項,張三家裡的旺財就是狗的具體例項

能夠體現出特點,展現出功能的是具體的例項而不是乙個抽象的概念

類是創造具體的例項,也即物件的模板

物件是由類這一抽象模板創造出來的具體例項

使用new關鍵字建立物件

使用new關鍵字建立的時候,除了分配記憶體空間之外,還會給建立好的物件進行預設的初始化以及對類中構造器的呼叫。

//類來組織**

package com.oop.demo02;

​//學生類

public class student }​

類中的構造器也稱為構造方法,是在進行建立物件的時候必須要呼叫的。並且構造器有以下兩個特點:

必須和類的名字相同

必須沒有返回型別,也不能寫void

package com.oop.demo02;

​//j**a--->class

public class person }​

不寫也可以!!!

person person = new person();

system.out.println(person.name);

在主方法裡的執行過程:

先new乙個person物件,然後回到person類裡面的person()方法,執行完person()方法就回到了主方法裡,然後輸出。

package com.oop.demo02;

​//j**a--->class

public class person

​//有參構造:一旦定義了有參構造,無參就必須顯示定義

public person(string name)

​//alt+insert 快捷鍵生成構造器​}

​​​/*

public static void main(string args)

​構造器:

1.和類名相同

2.沒有返回值

作用:1.new 本質在呼叫構造方法

2.初始化物件的值

注意點:

1.一旦定義了有參構造,無參就必須顯示定義

​alt+insert

​this. =   this當前物件*/​

​​

總結:

1.類與物件 類是乙個模板:抽象,物件是乙個具體的例項

2.方法 定義、呼叫!

3.對應的引用 引用型別: 基本型別(8):byte int short long float double char boolean 物件是通過引用來操作的:棧---->堆

4.屬性:欄位field 成員變數 預設初始化: 數字:0 0.0 char : u0000 boolean: false 引用:null 修飾符 屬性型別 屬性名 = 屬性值!

5.物件的建立和使用 必須使用new 關鍵字創造物件,構造器 person anyan =new person(); 物件的屬性 anyan.name 物件的方法 anyan.sleep()

6.類 靜態的屬性 屬性 動態的行為 方法

Python專案 Day14 物件導向

動態新增屬性 刪除屬性 class person def init self self.age 1 p1 person p2 person p1.gender male person.nation china del p1.gender del p1.nation error nation屬於類的,...

js下 Day14 物件導向案例

效果圖 功能思路分析 1.物件導向框架 1.建構函式中 獲取案例上需要用到的元素及資料相關資訊 2.原型物件中 寫好結婚證,初始化方法,事件監聽方法 3.例項物件中 以物件的形式傳參,如資料,選擇器名等 2.鍵盤顯示隱藏 1.給兩個文字框繫結點選事件,點選文字框顯示鍵盤 2.給頁面document繫...

python學習day14(物件導向,類和物件)

我們之前的學習都叫做面向過程的 面向過程和物件導向是兩種不同的程式設計方式 對比面向過程的特點,可以更好地 了解什麼是物件導向 則麼做?把完成某乙個需求的所有步驟從頭到尾逐步實現 根據開發複雜,會變得很複雜 最後完成 就是順序地呼叫不同的函式 特點 注重步驟與過程,不注重職責分工 如果需求複雜,會變...