<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      第03周 預習、實驗與作業:面向對象入門2與類的識別

      集美大學課程實驗報告-第03周 預習、實驗與作業:面向對象入門2與類的識別

      項目名稱 內容
      課程名稱 Java
      班級 網安2413
      指導教師 鄭如濱
      學生姓名 林沁茹
      學號 202421336067
      實驗項目名稱 第03周 預習、實驗與作業:面向對象入門2與類的識別
      上機實踐日期
      上機實踐時間 2學時

      一、目的(本次實驗所涉及并要求掌握的知識點)

      • 重點:掌握pivate、public關鍵字的用途及其與setter/getter模式和封裝性之間的關系。
      • 理解static屬性與static方法的用途。
      • 掌握使用初始化塊初始類的方法。掌握初始化塊與靜態初始化塊的區別。
      • 掌握使用package管理類。
      • 重點:學會識別問題中的類并定義解決問題所需要的類。
      • 初步了解Java編程規范。

      二、課前問題解答

      題目1—什么樣的方法應該用static修飾?不用static修飾的方法往往具有什么特性?Student的getName應該用static修飾嗎?

      1. static意味著“靜態的”或“屬于類的”。當一個方法被static修飾后,它就不再屬于任何一個具體的對象實例,而是直接屬于類本身。
      2. 當一個方法沒有static修飾時,它被稱為實例方法。它代表了對象的行為,并且與對象的狀態緊密相關。
      3. 不能,getName是為了獲得特定的學生的名字,而不是整個類共有的相同名字。
      

      題目2—購物車案例中,使用了什么方法將問題描述中的類、方法、屬性找出來?方法與屬性到底屬于哪個類,要怎么判定呢?

      1.名詞-動詞分析法,根據需求寫出代碼
      2.同一類的方法和屬性封裝在一起
      

      題目3—一個項目中有很多類。怎樣才能避免你項目中的類與別人編寫的類同名呢?項目中類各種各樣要怎么管理這些代碼呢?舉例說明。

      1.使用包來區分分類
      2.
      (1)按功能分包,例如:Controller包,Service包等
      (2)按層分包(分層架構),例如:四層結構(表示層、應用程序層、領域層、基礎設施層),三層結構(顯示層(UI層)、業務邏輯層(BLL)、數據訪問層(DAL)),SSH框架(域模塊層、數據持久化層、業務邏輯層、頁面表示層)
      (3)使用 Maven/Gradle 管理依賴
      例如:Maven 項目結構示例
      my-project/
      ├── pom.xml          // 項目配置文件
      ├── src/
      │   ├── main/
      │   │   ├── java/    // Java 源代碼
      │   │   └── resources/ // 配置文件
      │   └── test/
      │       ├── java/    // 測試代碼
      │       └── resources/ // 測試資源
      
      (4)使用模塊化
      例如:模塊化項目結構
      my-project/
      ├── cart-module/
      │   ├── src/
      │   │   └── module-info.java
      │   └── com/example/cart/
      ├── payment-module/
      │   ├── src/
      │   │   └── module-info.java
      │   └── com/example/payment/
      
      

      題目4—閱讀《阿里巴巴Java開發手冊 終極版(1.3.0)》,寫出至少7條Java編程規范。應包含如下幾個方面:

      變量命名、類命名、方法命名、常量命名、包命名、代碼格式、OOP規約。

      1.代碼格式

      • 杜絕完全不規范的縮寫,避免望文不知義。
      • 為了達到代碼自解釋的目標,任何自定義編程元素在命名時,使用盡量完整的單詞組合來表達其意
      • 如果模塊、接口、類、方法使用了設計模式,在命名時體現出具體模式
      • 大括號的使用約定。如果是大括號內為空,則簡潔地寫成{}即可,不需要換行;如果是非空代碼塊則
      • 左小括號和字符之間不出現空格;同樣,右小括號和字符之間也不出現空格
      • if/for/while/switch/do 等保留字與括號之間都必須加空格
      • 任何二目、三目運算符的左右兩邊都需要加一個空格
      • 采用 4 個空格縮進,禁止使用 tab 字符
      • 注釋的雙斜線與注釋內容之間有且僅有一個空格
      • 單行字符數限制不超過 120 個,超出需要換行,換行時遵循如下原則:
        1) 第二行相對第一行縮進 4 個空格,從第三行開始,不再繼續縮進
        2) 運算符與下文一起換行。
        3) 方法調用的點符號與下文一起換行。
        4) 方法調用時,多個參數,需要換行時,在逗號后進行。
        5) 在括號前不要換行
      • 方法參數在定義和傳入時,多個參數逗號后邊必須加空格
      • IDE 的 text file encoding 設置為 UTF-8; IDE 中文件的換行符使用 Unix 格式,不要使用 Windows 格式

      2.變量命名

      • 代碼中的命名均不能以下劃線或美元符號開始,也不能以下劃線或美元符號結束
      • 代碼中的命名嚴禁使用拼音與英文混合的方式,更不允許直接使用中文的方式(國際通用的名稱,可視同英文)
      • 中括號是數組類型的一部分,數組定義如下:String[] args
      • POJO 類中布爾類型的變量,都不要加 is,否則部分框架解析會引起序列化錯誤。反例:定義為基本數據類型 Boolean isDeleted;的屬性,它的方法也是 isDeleted(),RPC框架在反向解析的時候,“以為”對應的屬性名稱是 deleted,導致屬性獲取不到,進而拋出異

      3.類命名

      • 類名使用 UpperCamelCase 風格,必須遵從駝峰形式(單詞連寫,不使用空格或下劃線,每個單詞的首字母大寫或小寫,以區分單詞邊界),但以下情形例外:DO / BO / DTO / VO / AO
      • 抽象類命名使用 Abstract 或 Base 開頭;異常類命名使用 Exception 結尾;測試類命名以它要測試的類的名稱開始,以 Test 結尾。

      4.方法命名

      • 方法名、參數名、成員變量、局部變量都統一使用 lowerCamelCase 風格,必須遵從駝峰形式

      5.常量命名

      • 常量命名全部大寫,單詞間用下劃線隔開,力求語義表達完整清楚,不要嫌名字長

      6.常量命名

      • 不允許任何魔法值(即未經定義的常量)直接出現在代碼中
      • long 或者 Long 初始賦值時,使用大寫的 L,不能是小寫的 l,小寫容易跟數字 1 混
        淆,造成誤解
      • 不要使用一個常量類維護所有常量,按常量功能進行歸類,分開維護
      • 如果變量值僅在一個范圍內變化,且帶有名稱之外的延伸屬性,定義為枚舉類。下面
        正例中的數字就是延伸信息,表示星期幾

      7.包命名

      • 包名統一使用小寫,點分隔符之間有且僅有一個自然語義的英語單詞。包名統一使用單數形式,但是類名如果有復數含義,類名可以使用復數形式。

      8.OOP規約

      • 避免通過一個類的對象引用訪問此類的靜態變量或靜態方法,無謂增加編譯器解析成
        本,直接用類名來訪問即可
      • 所有的覆寫方法,必須加@Override 注解
      • 相同參數類型,相同業務含義,才可以使用 Java 的可變參數,避免使用 Object(可變參數必須放置在參數列表的最后)
      • 外部正在調用或者二方庫依賴的接口,不允許修改方法簽名,避免對接口調用方產生影響。接口過時必須加@Deprecated 注解,并清晰地說明采用的新接口或者新服務是什么
      • 不能使用過時的類或方法*
      • Object 的 equals 方法容易拋空指針異常,應使用常量或確定有值的對象來調用equals
      • 所有的相同類型的包裝類對象之間值的比較,全部使用 equals 方法比較
      • 關于基本數據類型與包裝數據類型的使用標準如下:
        1) 【強制】所有的 POJO 類屬性必須使用包裝數據類型。
        2) 【強制】RPC 方法的返回值和參數必須使用包裝數據類型。
        3) 【推薦】所有的局部變量使用基本數據類型。
      • 定義 DO/DTO/VO 等 POJO 類時,不要設定任何屬性默認值
      • 序列化類新增屬性時,請不要修改 serialVersionUID 字段,避免反序列失敗;如果完全不兼容升級,避免反序列化混亂,那么請修改 serialVersionUID 值
      • 構造方法里面禁止加入任何業務邏輯,如果有初始化邏輯,請放在 init 方法中
      • POJO 類必須寫 toString 方法。使用 IDE 的中工具:source> generate toString時,如果繼承了另一個 POJO 類,注意在前面加一下 super.toString*

      三、實驗使用環境(本次實驗所使用的平臺和相關軟件)

      以下請根據實際情況編寫

      • 操作系統:Windows 11專業版
      • 編程語言:Java
      • 開發工具:[eclipse)

      四、附件-參考文件

      購物車案例

      Commodity.java

      點擊查看代碼
      package shopping;
      
      
      /**
       * 商品類:用來存放商品的信息(商品名稱name、商品價格price)。
       * 該類有待完善。比如,未包含能唯一標識商品的商品編號屬性。
       */
      public class Commodity {
      	private String name;
      	private double price;
      
      	public Commodity(String name, double price) {
      		this.name = name;
      		this.price = price;
      	}
      	public String getName() {
      		return name;
      	}
      	public void setName(String name) {
      		this.name = name;
      	}
      	public double getPrice() {
      		return price;
      	}
      	public void setPrice(double price) {
      		this.price = price;
      	}
      	
      }
      
      

      ShoppingCart.java

      點擊查看代碼
      package shopping;
      
      import java.util.ArrayList;
      
      /**
       * 購物車類:可以用來存放商品,且包含購物車常用的操作方法。
       * 該類有待完善。未包含清空購物車、刪除某件商品、修改某件商品的數量等方法。
       */
      public class ShoppingCart {
      	private ArrayList<Commodity> items = new ArrayList<>();//存放商品的容器
      	
      	/**
      	 * 往購物車里面存放商品。
      	 * 該方法還不完善,未能將相同商品歸為一項。你能修改完善嗎?
      	 * 怎么能獲得某件商品的數量?
      	 * @param item
      	 */
      	public void add(Commodity item) {
      		items.add(item);
      	}
      	
      	/**
      	 * 獲得購物車內商品的數量
      	 * @return 購物車內商品的數量
      	 */
      	public int getQty() {
      		return items.size();
      	}
      	
      	/**
      	 * 結算
      	 * @return 返回購物車中所有商品的總價
      	 */
      	public double checkout() {
      		double x = 0;
      		for (Commodity commodity : items) {
      			x += commodity.getPrice();
      		}
      		return x;
      	}
      	
      	/**
      	 * 顯示購物車中的商品
      	 */
      	public void show() {
      		for (Commodity commodity : items) {
      			printCommodity(commodity);
      			System.out.println();
      		}
      	}
      
      	private void printCommodity(Commodity commodity) {
      		System.out.printf("name: %s, price: %f", commodity.getName(), commodity.getPrice());
      		
      	}
      
      }
      
      

      Main.java

      點擊查看代碼
      package shopping;
      
      public class Main {
      
      	public static void main(String[] args) {
      		Commodity c1 = new Commodity("蘋果", 10.5);
      		Commodity c2 = new Commodity("蘋果", 10.5);
      		Commodity c3 = new Commodity("手機", 25.99);
      		Commodity c4 = new Commodity("Java教程", 8.88);
      		ShoppingCart cart = new ShoppingCart();
      		cart.add(c1);cart.add(c2);cart.add(c3);cart.add(c4);
      		double x = cart.checkout();
      		cart.show();
      		System.out.println("數量"+cart.getQty());
      		System.out.println("總價:"+x);
      
      	}
      
      }
      
      
      posted @ 2025-09-16 23:59  穗和  閱讀(13)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 91孕妇精品一区二区三区| 中文字幕有码无码AV| 亚洲AV蜜桃永久无码精品| 免费人成自慰网站| 国产成人精品18| 东京热高清无码精品| 国产午夜福利视频合集| 国产91精品丝袜美腿在线| 久久久久高潮毛片免费全部播放| 国产精品午夜福利免费看| 免费看欧美日韩一区二区三区| 亚洲色欲色欱WWW在线| 好吊妞| 国产对白老熟女正在播放| 国产91精品一区二区蜜臀| 少妇午夜福利一区二区三区| 久久精品人妻无码专区| 7m精品福利视频导航| 激情六月丁香婷婷四房播| 日本丶国产丶欧美色综合| 久章草在线毛片视频播放| 国产精品无码久久久久AV| 亚洲精品成人片在线观看精品字幕| 激情亚洲专区一区二区三区| 双乳奶水饱满少妇呻吟免费看| 亚洲欧洲日产国产av无码| 中文字幕无码视频手机免费看 | 国内精品大秀视频日韩精品| 国产99久久亚洲综合精品西瓜tv| 最近中文字幕日韩有码| 国产日韩AV免费无码一区二区三区| 麻豆国产va免费精品高清在线| 啊轻点灬大JI巴太粗太长了在线| 国产第一区二区三区精品| 久久久久久久一线毛片| 时尚| 撩起胸让我的?蹭来蹭去| 九九热免费在线视频观看| 高清无码在线视频| 亚洲精品国产精品国自产| 亚洲中文无码手机永久|