JAVA實驗,java第三次實驗作業

 2023-10-15 阅读 28 评论 0

摘要:(一)學習總結 1.什么是面向對象的封裝性,Java中是如何實現封裝性的?試舉例說明。 封裝把對象的所有組成部分(數據和方法)封裝在一起構成類。 對象本身的數據得到保護/隱藏 其他對象通過該對象的訪問方法(接口/interface)與之發生聯

(一)學習總結

1.什么是面向對象的封裝性,Java中是如何實現封裝性的?試舉例說明。
封裝把對象的所有組成部分(數據和方法)封裝在一起構成類。
對象本身的數據得到保護/隱藏
其他對象通過該對象的訪問方法(接口/interface)與之發生聯系。
特點是模塊化,信息隱藏--通常定義一個公共接口/方法實現對對象的訪問。

class CashCard {
String number;
int balance;
int bonus;
}

2.閱讀下面程序,分析是否能編譯通過?如果不能,說明原因。
(1)

class A{private int secret = 5;
}
public class Test{public static void main(String args[]){A a = new A();System.out.println(a.secret++);}
}

不能編譯通過,secret被封裝,不能被類外訪問
(2)

public class Test{int x = 50;static int y = 200;public static void method(){System.out.println(x+y);}public static void main(String args[]){Test.method();}
}

字段 y 不能聲明為“靜態”;只能在靜態或頂級類型中才能聲明靜態字段
方法 main 不能聲明為“靜態”;只能在靜態類型或頂級類型中才能聲明靜態方法

JAVA實驗、3 . 使用類的靜態變量和構造方法,可以跟蹤某個類創建的對象個數。聲明一個圖書類,數據成員為編號,書名,書價,并擁有靜態數據成員冊數記錄圖書的總數。圖書編號從1000開始,每產生一個對象,則編號自動遞增(利用靜態變量和構造方法實現)。下面給出了測試類代碼和Book類的部分代碼,將代碼補充完整。

  class Book{int bookId;String bookName;double price;// 聲明靜態變量private static int bookNum;//定義靜態代碼塊對靜態變量初始化static{bookNum=1000;}//構造方法public Book(String bookName,double price){this.bookName=bookName;this.price=price;bookId=booknumber;booknumber++;}public String getBookName() {return bookName;}public void setBookName(String bookName) {this.bookName = bookName;}public double getPrice() {return price;}public void setPrice(double price) {this.price = price;}  //定義方法求圖書總冊數public static int totalBook(){return booknumber -1000;}//重寫toString方法public String toString(){return "編號:"+bookId+"書名"+this.boohName+"價格:"+this.price;}}public class Test{public static void main(String args[]){ Book[] books = {new Book("c語言程序設計",29.3),new Book("數據庫原理",30),new Book("Java學習筆記",68)};System.out.println("圖書總數為:"+ Book.totalBook()); for(Book book:books){System.out.println(book.toString());}}   }

4.什么是單例設計模式?它具有什么特點?用單例設計模式設計一個太陽類Sun。
Java中單例模式是一種常見的設計模式,單例模式的寫法有好幾種,這里主要介紹三種:懶漢式單例、餓漢式單例、登記式單例。
  單例模式有以下特點:
  1、單例類只能有一個實例。
  2、單例類必須自己創建自己的唯一實例。
  3、單例類必須給所有其他對象提供這一實例。
懶漢式:

public class Sun {  private Sun() {}  private static Sun single=null;  public static Sun getInstance() {  if (single == null) {    single = new Sun();  }    return single;  }  
}  

5.理解Java參數傳遞機制,閱讀下面的程序,運行結果是什么?說明理由。

public class Test {String str = new String("你好  ");char[] ch = { 'w','o','l','l','d' };public static void main(String args[]) {Test test = new Test();test.change(test.str, test.ch);System.out.print(test.str);System.out.print(test.ch);}public void change(String str, char ch[]) {str = "hello";ch[0] = 'W';}
}

結果為: 你好 Wolld
因為 str傳遞的是值,ch[]則傳遞的是地址,所以只有w 改變了

(二)實驗總結
實驗內容:
按照下列要求完成類的設計
(1)設計一個日期類,用于記錄年、月、日,提供對日期處理的常用方法(日期輸出格式xxxx-xx-xx)。
(2)設計一個職工類,該職工類至少具有下面的屬性:職工號,姓名,性別,生日,工作部門,參加工作時間,設計相應的方法。
(3)設計一個部門類,包括下列屬性:部門編號,部門名稱,經理,設計相應方法。
(4)設計一個測試類,采用對象數組模擬一個擁有兩個部門,10個職工的單位,實現對相關信息的查詢功能。

先寫員工類,按要求 定義需要的變量,實現基本字段的轉換,,在寫部門類,按要求定義需要的變量,實現基本字段的轉換,之后講員工和部門兩個類里分別和員工或部門關聯,在寫一個日期的類,定義輸出格式為xx-xx-xx

java作業,最后寫測試類,先輸入靜態常量,定義兩個部門分別為設計部和實踐部,在給兩個部門分別定義一個經理,之后輸出經歷的信息,利用循環分別輸出兩個部門里各個員工的信息

(三)代碼托管
https://git.oschina.net/hebau_cs15/Java-CS01QH.git
1079964-20170406124437082-596236178.png

代碼行數(新增/累計)學習時間(新增/累計
目標5000行300小時
第2-4周234/30041
第5周123/30028
第6周163/3008

轉載于:https://www.cnblogs.com/JoeH/p/6672942.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/2/138954.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息