国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

第七章 面向對象編程(基礎)

這篇具有很好參考價值的文章主要介紹了第七章 面向對象編程(基礎)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、類與對象

1. 類和對象的區(qū)別和聯(lián)系

(1)類是抽象的,概念的,代表一類事物,比如人類、貓類...?即它是數(shù)據(jù)類型。

(2)對象是具體的,實際的,代表一個具體事物,即實例。

(3)類是對象的模板,對象是類的一個個體,對應一個實例。

2. 屬性/成員變量/字段

屬性是類的一個組成部分,一般是基本數(shù)據(jù)類型,也可是引用類型(對象,數(shù)組)。屬性如果不賦值,有默認值。

3. 成員方法

(1)當程序執(zhí)行到方法時,就會開辟一個獨立的空間(??臻g)。
(2)當方法執(zhí)行完畢,或者執(zhí)行到return語句時,就會返回。
(3)返回到調用方法的地方。
(4)返回后,繼續(xù)執(zhí)行方法后面的代碼。
(5)當 main 方法(棧)執(zhí)行完畢,整個程序退出。

成員方法的定義:

訪問修飾符? 返回數(shù)據(jù)類型? 方法名 (形參列表..) {//方法體

????????語句;

????????return 返回值;

}

二、遞歸(P215)

遞歸重要規(guī)則
(1)執(zhí)行一個方法時,就創(chuàng)建一個新的受保護的獨立空間(??臻g)。
(2)方法的局部變量是獨立的,不會相互影響,比如 n 變量。
(3)如果方法中使用的是引用類型變量(比如數(shù)組,對象),就會共享該引用類型的數(shù)據(jù)。
(4)遞歸必須向退出遞歸的條件逼近,否則就是無限遞歸,出現(xiàn) StackOverflowError。
(5)當一個方法執(zhí)行完畢,或者遇到 return,就會返回,遵守誰調用,就將結果返回給誰,同時當方法執(zhí)行完畢或者返回時,該方法也就執(zhí)行完畢。

1. 階乘

public class Demo {

    public static void main(String[] args) {
        int res = factorial(5);
        System.out.println("5 的階乘 res =" + res);
    }

    //factorial 階乘
    public static int factorial(int n) {
        if (n == 1) {
            return 1;
        } else {
            return factorial(n - 1) * n;
        }
    }

}

2. 斐波那契數(shù)

public class Demo {

    public static void main(String[] args) {
        int n = 7;
        System.out.println("當 n=" + n + " 對應的斐波那契數(shù)=" + fibonacci(n));
    }

    /**
     * 請使用遞歸的方式求出斐波那契數(shù) 1,1,2,3,5,8,13...給你一個整數(shù) n,求出它的值是多
     */
    public static int fibonacci(int n) {
        if (n == 1 || n == 2) {
            return 1;
        } else {
            return fibonacci(n - 1) + fibonacci(n - 2);
        }
    }

}

3. 猴子吃桃問題(P221)

public class Demo {

    public static void main(String[] args) {
        //桃子問題
        int day = 1;
        int peachNum = peach(day);
        if (peachNum != -1) {
            System.out.println("第 " + day + "天有" + peachNum + "個桃子");
        }
    }

    /**
     * 猴子吃桃子問題:有一堆桃子,猴子第一天吃了其中的一半,并再多吃了一個!
     * 以后每天猴子都吃其中的一半,然后再多吃一個。當?shù)降?10 天時,
     * 想再吃時(即還沒吃),發(fā)現(xiàn)只有 1 個桃子了。問題:最初共多少個桃子?
     */
    public static int peach(int day) {
        if (day == 10) {//第 10 天,只有 1 個桃
            return 1;
        } else if (day >= 1 && day <= 9) {
            return (peach(day + 1) + 1) * 2;//規(guī)則,自己要想
        } else {
            System.out.println("day 在 1-10");
            return -1;
        }
    }

}

4. 老鼠迷宮(P222)

public class Migong {
    public static void main(String[] args) {
 
        int[][] map = new int[8][7];
        for (int i = 0; i < 7; i++) {
            map[0][i] = 1;
            map[7][i] = 1;
        }
 
        for (int i = 0; i < 8; i++) {
            map[i][0] = 1;
            map[i][6] = 1;
        }
 
        map[3][1] = 1;
        map[3][2] = 1;
        map[2][2] = 1;
        
        for (int i = 0; i < map.length; i++) {
            for (int j = 0; j < map[i].length; j++) {
                System.out.print(map[i][j] + " ");
            }
            System.out.println();
        }
 
        T t = new T();
        boolean way = t.findWay(map, 1, 1);
        System.out.println("---------找路地圖--------");
        // 找路地圖
        for (int i = 0; i < map.length; i++) {
            for (int j = 0; j < map[i].length; j++) {
                System.out.print(map[i][j] + " ");
            }
            System.out.println();
        }
    }
}
 
 
class T{
 
    // 0:可以走 1:障礙物 2:可以走 3:走過但是走不通
    // (6,5) = 2 說明成功
    // 策略 下 > 右 > 上 > 左
    public boolean findWay(int[][] map,int i ,int j){
 
        if (map[6][5] == 2){
            return true;
        }else {
            if (map[i][j] == 0){ // 當前位置為0,可以走
                // 假設可以走
                map[i][j] = 2;
                if (findWay(map,i+1,j)){
                    return true;
                }else if (findWay(map,i,j+1)){
                    return true;
                }else if (findWay(map,i-1,j)){
                    return true;
                }else if (findWay(map,i,j-1)){
                    return true;
                }else {
                    map[i][j] = 3;
                    return false;
                }
 
            }else { // map[i][j] == 1,2,3
                return false;
            }
        }
 
 
    }
}

三、方法重載(OverLoad)

java 中允許同一個類中,多個同名方法的存在,但要求形參列表不一致!

注意事項和使用細節(jié):

(1)方法名:必須相同
(2)形參列表:必須不同(形參類型或個數(shù)或順序,至少有一樣不同,參數(shù)名無要求)。
(3)返回類型:無要求

四、可變參數(shù)

java 允許將同一個類中多個同名同功能但參數(shù)個數(shù)不同的方法,封裝成一個方法。 就可以通過可變參數(shù)實現(xiàn)。

基本語法
????????訪問修飾符 返回類型 方法名(數(shù)據(jù)類型... 形參名){

}

public class Demo {

    public static void main(String[] args) {
        System.out.println(sum(1, 5, 100)); //106
        System.out.println(sum(1, 19)); //20
    }

    //1. int... 表示接受的是可變參數(shù),類型是 int ,即可以接收多個 int(0-多)
    //2. 使用可變參數(shù)時,可以當做數(shù)組來使用 即 nums 可以當做數(shù)組
    //3. 遍歷 nums 求和即可
    public static int sum(int... nums) {
        int res = 0;
        for (int i = 0; i < nums.length; i++) {
            res += nums[i];
        }
        return res;
    }

}

注意事項和使用細節(jié)

(1)可變參數(shù)的實參可以為 0 個或任意多個。
(2)可變參數(shù)的實參可以為數(shù)組。
(3)可變參數(shù)的本質就是數(shù)組。
(4)可變參數(shù)可以和普通類型的參數(shù)一起放在形參列表,但必須保證可變參數(shù)在最后。
(5)一個形參列表中只能出現(xiàn)一個可變參數(shù)。

五、構造方法/構造器

1. 基本語法

[修飾符] 方法名(形參列表){

????????方法體;

}

(1)構造器的修飾符可以默認, 也可以是 public protected private。
(2)構造器沒有返回值。
(3)方法名和類名字必須一樣。
(4)參數(shù)列表和成員方法一樣的規(guī)則。
(5)構造器的調用,由系統(tǒng)完成。

2. 基本介紹

構造方法又叫構造器(constructor),是類的一種特殊的方法,它的主要作用是完成對新對象的初始化。它有幾個特點:

(1)方法名和類名相同
(2)沒有返回值
(3)在創(chuàng)建對象時,系統(tǒng)會自動的調用該類的構造器完成對象的初始化。

3. 注意事項和使用細節(jié)

(1)一個類可以定義多個不同的構造器,即構造器重載。
(2)構造器名和類名要相同。
(3)構造器沒有返回值。
(4)構造器是完成對象的初始化,并不是創(chuàng)建對象。
(5)在創(chuàng)建對象時,系統(tǒng)自動的調用該類的構造方法。
(6)如果程序員沒有定義構造器,系統(tǒng)會自動給類生成一個默認無參構造器(也叫默認構造器)。

(7)一旦定義了自己的構造器,默認的構造器就覆蓋了,就不能再使用默認的無參構造器,除非顯式的定義一下。

六、this 關鍵字(P246)

Java 虛擬機會給每個對象分配 this,代表當前對象。

this 的注意事項和使用細節(jié):

(1)this 關鍵字可以用來訪問本類的屬性、方法、構造器。
(2)this 用于區(qū)分當前類的屬性和局部變量。
(3)訪問成員方法的語法:【this.方法名(參數(shù)列表);】。
(4)訪問構造器語法:【this(參數(shù)列表);】 注意只能在構造器中使用(即只能在構造器中訪問另外一個構造器, 必須放在第一條語句)。
(5)this 不能在類定義的外部使用,只能在類定義的方法中使用。文章來源地址http://www.zghlxwxcb.cn/news/detail-455259.html

到了這里,關于第七章 面向對象編程(基礎)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 第七章——函數(shù)(C++的編程模塊)

    第七章——函數(shù)(C++的編程模塊)

    復習函數(shù)的基本知識 要使用C++函數(shù),必須完成如下工作: 提供函數(shù)定義 提供函數(shù)原型 調用函數(shù)? 庫函數(shù)是已經(jīng)定義和編譯好的函數(shù),同時可以使用標準庫頭文件提供其原型,因此只需要正確地調用這種函數(shù)即可。但是創(chuàng)建自己的函數(shù)時,必須自行處理上面提到的3個方面。

    2024年02月13日
    瀏覽(23)
  • C++ primer plus第七章編程練習答案

    1.編寫一個程序,不斷要求用戶輸入兩個數(shù),直到其中的一個為 0。對于每兩個數(shù),程序將使用一個南數(shù)來計算它們的調和平均數(shù),并將結果返回給 main(),而后者將報告結果。調和平均數(shù)指的是倒數(shù)平均值的倒數(shù),計算公式如下: 調和平均數(shù)=2.0*xy/(x + y) 2.編寫一個程序,要求用

    2024年02月10日
    瀏覽(22)
  • Python之第七章 函數(shù) --- 基礎

    Python之第七章 函數(shù) --- 基礎

    目錄 Python之第七章 函數(shù) --- 基本 1.模塊化程序設計 1.基本思想 2.特點 2.定義函數(shù) 1.格式: 2.函數(shù)名: 3.形式參數(shù): 4.函數(shù)體 ?編輯 3.函數(shù)調用 1.作用 2.格式 3.調用方式 4.實例 4.return語句 1.作用 2.注意 3.return可以返回任意Python的對象 5.函數(shù)參數(shù) 1.位置參數(shù) ?2.參數(shù) 3.默

    2024年02月09日
    瀏覽(28)
  • 曲線藝術編程 coding curves 第七章 拋物線(Parabolas)

    曲線藝術編程 coding curves 第七章 拋物線(Parabolas)

    原作:Keith Peters https://www.bit-101.com/blog/2022/11/coding-curves/ 譯者:池中物王二狗(sheldon) blog: http://cnblogs.com/willian/ 源碼:github: https://github.com/willian12345/coding-curves 曲線藝術編程系列第7章 我承認這一章腦暴時,再三考慮過是否要將拋物線包含進來。此篇覆蓋的拋物線比起之前三章

    2024年02月08日
    瀏覽(28)
  • TCP/IP 網(wǎng)絡編程 第七章:優(yōu)雅地斷開套接字連接

    在前面的章節(jié)中,我們都是通過close或者closesocket來斷開套接字連接的,但是調用這兩個函數(shù)導致我們套接字完全斷開,套接字將無法接受數(shù)據(jù),并且也只能傳輸完最后余留在緩沖區(qū)的數(shù)據(jù)內容。此時\\\"只關閉一部分數(shù)據(jù)交換中使用的流\\\"的方法應運而生。 針對優(yōu)雅斷開的shutd

    2024年02月17日
    瀏覽(85)
  • 【鴻蒙開發(fā)】第七章 ArkTS語言UI范式-基礎語法

    【鴻蒙開發(fā)】第七章 ArkTS語言UI范式-基礎語法

    通過前面的章節(jié),我們基本清楚鴻蒙應用開發(fā)用到的語言和項目基本結構,在【鴻蒙開發(fā)】第四章 Stage應用模型及項目結構也提到過ArkTS的UI范式的 基本語法 、 狀態(tài)管理 、 渲染控制 等能力,簡要介紹如下: 基本語法 : ArkTS 定義了 聲明式UI描述 、 自定義組件 和 動態(tài)擴展

    2024年02月03日
    瀏覽(24)
  • 網(wǎng)絡基礎學習(第七章):VRRP協(xié)議介紹及配置

    網(wǎng)絡基礎學習(第七章):VRRP協(xié)議介紹及配置

    1.1 VRRP協(xié)議介紹 虛擬路由冗余協(xié)議(Virtual Router Redundancy Protocol,簡稱VRRP)是由IETF提出的解決局域網(wǎng)中配置靜態(tài)網(wǎng)關出現(xiàn)單點失效現(xiàn)象的路由協(xié)議。 利用VRRP,一組路由器(同一個VLAN中的接口)協(xié)同工作,但只要一個處于Master狀態(tài),處于該狀態(tài)的路由器接口承擔實際數(shù)據(jù)流量的

    2024年02月03日
    瀏覽(28)
  • 第七章:敏捷開發(fā)工具方法-part1-敏捷開發(fā)基礎

    第七章:敏捷開發(fā)工具方法-part1-敏捷開發(fā)基礎

    敏捷開發(fā)背景 速度是企業(yè)競爭致勝的關鍵因素,軟件項目的最大挑戰(zhàn)在于一方面需要應付變動中的需求,一方面需要在有限的時間完成項目,傳統(tǒng)的軟件工程難以滿足這些要求 所以軟件團隊除了在技術上必須日益精進,更需要運用有效的開發(fā)流程,以確保團隊能夠發(fā)揮綜效

    2024年02月09日
    瀏覽(44)
  • 中文編程入門(Lua5.4.6中文版)第七章 Lua 字符串與模式

    中文編程入門(Lua5.4.6中文版)第七章 Lua 字符串與模式

    在網(wǎng)游的符文之地中,我們可以通過神秘的“字符串法術”來處理和操作一系列字符。以下是如何在Lua的魔法卷軸上施展這種法術: 字符串的表示與召喚: ?在Lua的魔法治則中,你可以運用三種方式召喚出一串字符(即字符串): 單引號(\\\')內的字符序列。 雙引號(\\\")內的字符

    2024年03月19日
    瀏覽(19)
  • OSG三維渲染引擎編程學習之七十七:“第七章:OSG場景圖形交互” 之 “7.9 場景漫游”

    目錄 第七章 OSG場景圖形交互 7.9?場景漫游 7.9.1 場景漫游描述 7.9.2?自定義場景漫游器

    2024年02月07日
    瀏覽(33)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包