面向對象ooDay1

来源:https://www.cnblogs.com/Bafanqwq/archive/2022/08/07/16560139.html
-Advertisement-
Play Games

精華筆記: 什麼是類?什麼是對象? 現實生活中是由很多很多對象組成的,基於對象抽出了類 對象:軟體中真實存在的單個個體/東西 類:類型/類別,代表一類個體 類是對象的模板/模子,對象是類的具體的實例 類中可以包含: 對象的屬性/特征 成員變數 對象的行為/動作/功能 方法 一個類可以創建多個對象 如 ...


精華筆記:

  1. 什麼是類?什麼是對象?

    • 現實生活中是由很多很多對象組成的,基於對象抽出了類

    • 對象:軟體中真實存在的單個個體/東西

      類:類型/類別,代表一類個體

    • 類是對象的模板/模子,對象是類的具體的實例

    • 類中可以包含:

      • 對象的屬性/特征-----------------------------成員變數
      • 對象的行為/動作/功能----------------------方法
    • 一個類可以創建多個對象

  2. 如何創建類?如何創建對象?如何訪問成員?

  3. 方法的簽名:方法名+參數列表

  4. 方法的重載(overload/overloading):-------------------------------方便用戶的調用

    • 發生在同一類中,方法名相同,參數列表不同
    • 編譯器在編譯時會根據方法的簽名自動綁定方法

筆記:

  1. 什麼是類?什麼是對象?

    • 現實生活中是由很多很多對象組成的,基於對象抽出了類

    • 對象:軟體中真實存在的單個個體/東西

      類:類型/類別,代表一類個體

    • 類是對象的模板/模子,對象是類的具體的實例

    • 類中可以包含:

      • 對象的屬性/特征-----------------------------成員變數
      • 對象的行為/動作/功能----------------------方法
    • 一個類可以創建多個對象

  2. 如何創建類?如何創建對象?如何訪問成員?

    package ooday01;
    //學生類
    public class Student {
        //成員變數----對象的屬性
        String name;
        int age;
        String address;
    
        //方法-----對象的行為/功能
        void study(){
            System.out.println(name+"在學習...");
        }
        void sayHi(){
            System.out.println("大家好,我叫"+name+",今年"+age+"歲了,家住"+address);
        }
    }
    
    package ooday01;
    //學生類的測試類
    public class StudentTest {
        public static void main(String[] args) {
            //創建一個學生對象
            Student zs = new Student();
            //給成員變數賦值
            zs.name = "zhangsan";
            zs.age = 18;
            zs.address = "河北廊坊";
            //調用方法
            zs.study();
            zs.sayHi();
    
            Student ls = new Student();
            ls.name = "lisi";
            ls.age = 25;
            ls.address = "黑龍江佳木斯";
            ls.study();
            ls.sayHi();
    
            //1)創建了一個學生對象
            //2)給所有成員變數賦預設值
            Student ww = new Student();
            ww.study();
            ww.sayHi();
    
        }
    }
    
  3. 方法的簽名:方法名+參數列表

  4. 方法的重載(overload/overloading):-------------------------------方便用戶的調用

    • 發生在同一類中,方法名相同,參數列表不同

      public class Aoo{
          void show(){}
          void show(String name){}
          void show(int age){}
          void show(String name,int age){}
          void show(int age,String name){}
      
          //int show(){ return 1; } //編譯錯誤,重載與返回值類型無關
          //void show(String address){} //編譯錯誤,重載與參數名稱無關
      }
      
    • 編譯器在編譯時會根據方法的簽名自動綁定方法

      public class OverloadDemo {
          public static void main(String[] args) {
              Aoo o = new Aoo();
              o.show();
              o.show("zhangsan");
              o.show(25);
              o.show("zhangsan",25);
              o.show(25,"zhangsan");
          }
      }
      

補充:

  1. OO:面向對象

    OOA:面向對象分析

    OOD:面向對象設計

    OOP:面向對象編程--------------------------你們以後所參與的

  2. 高質量的代碼:------------------------想拿年薪

    • 復用性好、擴展性好、維護性好、移植性好、健壯性好、可讀性好、效率好......
  3. 類:是一種引用數據類型,是我們自己創造的一種數據類型

  4.            引用
    數據類型  引用類型變數  指向      對象
    Student     zs        =   new Student();
    //讀作:聲明一個Student類型的引用zs,指向了一個學生對象
    
  5. 預設值:

    byte,short,int,long,char-----------------0
    float,double-----------------------------0.0
    boolean----------------------------------false
    引用類型----------------------------------null
    
  6. 潛艇游戲需求:

    • 所參與的角色:戰艦、炸彈、偵察潛艇、魚雷潛艇、水雷潛艇、水雷

    • 角色間的關係:

      • 戰艦發射炸彈

      • 炸彈打潛艇(偵察潛艇、魚雷潛艇、水雷潛艇),若打中了:

        • 潛艇消失、炸彈消失

        • 若打中的是偵察潛艇,則玩家得10分

          若打中的是魚雷潛艇,則玩家得40分

          若打中的是水雷潛艇,則戰艦增1條命

      • 水雷潛艇發射水雷

      • 水雷打戰艦,若打中了:

        • 水雷消失
        • 戰艦減1條命(命數為0時游戲結束)

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 有趣的特性:CHECK約束 功能說明 在MySQL 8.0.16以前, CREATE TABLE允許從語法層面輸入下列CHECK約束,但實際沒有效果: CHECK (expr) 在 MySQL 8.0.16,CREATE TABLE添加了針對所有存儲引擎的表和列的CHECK約束的核心特性。CREAT ...
  • 在B/S系統開發中,前後端分離開發設計已成為一種標準,而VUE作為前端三大主流框架之一,越來越受到大家的青睞,Antdv是Antd在Vue中的實現。本系列文章主要通過Antdv和Asp.net WebApi開發學生信息管理系統,簡述前後端分離開發的主要相關內容,僅供學習分享使用,如有不足之處,還請指... ...
  • vue3-admin-template 項目地址:vue3-admin-template 能拿來直接開發項目,不需要考慮格式化配置、打包編譯優化等等,難道它不香嗎?~~ 此項目是集成vue3 + vite + Element-Plus + Pinia + vue-router的後臺管理系統的模板工程 ...
  • 1 配置全局組件 當一個組件使用頻率非常高的時候,可以考慮設置其為全局組件,方便其他地方調用。 案例 我這兒封裝一個Card組件想在任何地方去使用: <template> <div class="card"> <div class="card-header"> <div>主標題</div> <div ...
  • 前言 由於業務需求,需要有一個圖片標記功能,其實就是對圖片畫框畫線做標記,類似微信的圖片編輯 但是需要存下標記圖及其標記的具體數據,。功能其實很簡單,但剛開始的時候也是費了一些功夫的。我將原項目中該功能抽離出來單獨寫了一個demo,作為記錄,同時你們在開發過程中有類似需求的話也可以參考一下該思路,其 ...
  • 原文鏈接:20 多個好用的 Vue 組件庫 在本文中,將分享一些常見的 vue.js 組件。 Tables / Data Grids Vue Tables-2 地址:https://github.com/matfish2/vue-tables-2 Vue Tables 2 旨在為開發者提供一個功能齊 ...
  • HashMap概要 代碼如果沒有特定說明,為JDK 1.8 HashMap用來存放鍵值對,是Map介面的實現,是非線程安全的 可以存儲key和value為null的值,但key為null的節點只能有一個 哈希值的計算:在hashCode的基礎上添加擾動函數,使元素分佈更加隨機 哈希衝突:通過鏈表存儲 ...
  • 一、Apach POI處理Excel的方式: 傳統Excel操作或者解析都是利用Apach POI進行操作,POI中處理Excel有以下幾種方式: 1、HSSFWorkbook: HSSFWorkbook用來處理.xls尾碼的Excel,即適用於Excel2003以前(包括2003)的版本。因為其最 ...
一周排行
    -Advertisement-
    Play Games
  • Dapr Outbox 是1.12中的功能。 本文只介紹Dapr Outbox 執行流程,Dapr Outbox基本用法請閱讀官方文檔 。本文中appID=order-processor,topic=orders 本文前提知識:熟悉Dapr狀態管理、Dapr發佈訂閱和Outbox 模式。 Outbo ...
  • 引言 在前幾章我們深度講解了單元測試和集成測試的基礎知識,這一章我們來講解一下代碼覆蓋率,代碼覆蓋率是單元測試運行的度量值,覆蓋率通常以百分比表示,用於衡量代碼被測試覆蓋的程度,幫助開發人員評估測試用例的質量和代碼的健壯性。常見的覆蓋率包括語句覆蓋率(Line Coverage)、分支覆蓋率(Bra ...
  • 前言 本文介紹瞭如何使用S7.NET庫實現對西門子PLC DB塊數據的讀寫,記錄了使用電腦模擬,模擬PLC,自至完成測試的詳細流程,並重點介紹了在這個過程中的易錯點,供參考。 用到的軟體: 1.Windows環境下鏈路層網路訪問的行業標準工具(WinPcap_4_1_3.exe)下載鏈接:http ...
  • 從依賴倒置原則(Dependency Inversion Principle, DIP)到控制反轉(Inversion of Control, IoC)再到依賴註入(Dependency Injection, DI)的演進過程,我們可以理解為一種逐步抽象和解耦的設計思想。這種思想在C#等面向對象的編 ...
  • 關於Python中的私有屬性和私有方法 Python對於類的成員沒有嚴格的訪問控制限制,這與其他面相對對象語言有區別。關於私有屬性和私有方法,有如下要點: 1、通常我們約定,兩個下劃線開頭的屬性是私有的(private)。其他為公共的(public); 2、類內部可以訪問私有屬性(方法); 3、類外 ...
  • C++ 訪問說明符 訪問說明符是 C++ 中控制類成員(屬性和方法)可訪問性的關鍵字。它們用於封裝類數據並保護其免受意外修改或濫用。 三種訪問說明符: public:允許從類外部的任何地方訪問成員。 private:僅允許在類內部訪問成員。 protected:允許在類內部及其派生類中訪問成員。 示 ...
  • 寫這個隨筆說一下C++的static_cast和dynamic_cast用在子類與父類的指針轉換時的一些事宜。首先,【static_cast,dynamic_cast】【父類指針,子類指針】,兩兩一組,共有4種組合:用 static_cast 父類轉子類、用 static_cast 子類轉父類、使用 ...
  • /******************************************************************************************************** * * * 設計雙向鏈表的介面 * * * * Copyright (c) 2023-2 ...
  • 相信接觸過spring做開發的小伙伴們一定使用過@ComponentScan註解 @ComponentScan("com.wangm.lifecycle") public class AppConfig { } @ComponentScan指定basePackage,將包下的類按照一定規則註冊成Be ...
  • 操作系統 :CentOS 7.6_x64 opensips版本: 2.4.9 python版本:2.7.5 python作為腳本語言,使用起來很方便,查了下opensips的文檔,支持使用python腳本寫邏輯代碼。今天整理下CentOS7環境下opensips2.4.9的python模塊筆記及使用 ...