Java第三次作業 1502 馬 帥

《Java技術》第三次作業

(一)學習總結

1.書中對面向對象封裝性的定義為:指把對象的屬性和行為看成一個密不可分的整體,把不需要讓外界知道的信息隱蔽起來。簡單來說,就是定義的一些對象,只有在本類中才可以使用,在外界是不可以訪問和調用的。
Java中通過使用private和public聲明來區別私有和公由,例如:

class setting{private int a=1;public int b=1;
}
public class Test {public static void main(String[] args){setting get;int c,d;c=get.a;d=get.b;}
}

這段代碼是不能通過編譯的,會提示“a不可視”,即"a"不能被調用:
1079820-20170406163302160-1902600951.png

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++);}
}

此段代碼不能通過編譯,提示“A.secret不可視”,因為封裝性的緣故,在Test類的main()方法中是不能調用".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();}
}

此段代碼不能通過編譯,因為"x"為非靜態變量,不能對非靜態變量進行靜態引用。

3.修改后的代碼如下:

class Book{static int bookId;String bookName;double price;// 聲明靜態 變量static int count;//定義靜態代碼塊對靜態變量初始化static {count=0;bookId=1000;}//構造方法public Book(){}public Book(String bookName,double price) {this.bookName=bookName;this.price=price;count++;}  public int getBookId(){return ++bookId;}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 count;}//重寫toString方法public String toString(){return "書名為:"+getBookName()+"圖書編號為:"+getBookId()+",價格為:"+getPrice();}
}
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. 單例設計模式只能有自己創建的唯一一個實例,并且必須給所有其他對象提供這一實例。

class Sun{private static Sun instance = new Sun() ;private Sun(){}public static Sun getInstance(){return instance ;}
}

5.如下代碼:

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”
為什么不為“hello Wolld”呢?原因很簡單,通過調用傳參,傳遞的為str字符串和ch[]字符數組的地址,所以修改字符數組,即為修改內容;而修改的字符串內容,可以理解為是在修改形參,并不影響實參的值,因為傳遞的是內容而不是地址。
6.使用構造方法后,我覺得很多的程序變的更加清晰,即使出錯也可以很快地確認錯誤的位置,十分方便。還有就是感覺前邊的知識不能忘啊,例如比較,比較double數值是十分重要的一個點,用到了很多次。

(二)實驗總結

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

  • 程序設計思路:
    (1)日期類:用set和get方法記錄年月日即可;
    (2)職工類:用set和get方法記錄職工號、姓名、性別,并用Date(日期類)定義生日和工作時間,用Department(部門類)定義所屬部門;
    (3)部門類:用set和get方法記錄部門編號、部門名稱,并用Employee(職工類)定義經理;
    (4)測試類:輸入數據并輸出。

2.設計一個計算工具類,要求:
(1)為用戶提供幾個常見的幾何體面積和體積的算法(如球的體積和表面積,圓柱體的體積和表面積,圓錐體的體積和表面積)(可以學習使用static關鍵字)
(2)設計一個測試類,給出幾個不同的圓柱體,圓錐體,球體的尺寸,用計算工具類分別求它們體積的累加和與表面積的累加和。
(3)設計一個測試類,隨機產生球,圓柱、圓錐體的尺寸,模擬考試,要求用戶回答它們的體積和面積,并判斷用戶的回答是否正確

  • 程序設計思路:
    (1)輸入類:將半徑、高、母線長等參數輸入;
    (2)計算類:定義π的值為3.14,調用輸入類中的參數,對所有公式進行計算;
    (3)測試類:分兩個部分。第一個部分,輸入參數存入輸入類,調用計算類中的公式進行計算;第二個部分,使用Random類生成隨機數,即對用戶出題,讓用戶輸入答案,判斷答案是否正確。
  • 實驗問題分析:
    問題:在對用戶出題時,結果無法判斷。
    原因:精度不同。
    解決方案:將兩個值四舍五入后判斷內容是否一致,就可以進行判斷了。

3.用面向對象編程思想完成評分系統

  • 程序設計思路:
    (1)定義各選手的信息變量和分數數組變量,并寫出接口,方便用Arrays.sort()進行排序;
    (2)輸入各選手的信息,在排序后進行輸出。

4.用面向對象編程思想編寫猜拳游戲

  • 程序設計思路:
    (1)電腦類:定義電腦的名字,和分數,使用隨機數生成電腦的出拳;
    (2)選手類:與電腦類定義相同,只不過在出拳的方法不再使用隨機數生成;
    (3)游戲類:分別生成電腦類變量和選手類變量,輸出規則,并決定是否開始,使用循環實現多次游戲,并定義變量記錄游戲次數,每次游戲結束調用判斷方法判斷游戲結果,并詢問是否繼續;
    (4)調用游戲類中的初始化和開始游戲的方法。

(三)代碼托管

  • 碼云commit歷史截圖
    1079820-20170406173452582-1461735650.png

轉載于:https://www.cnblogs.com/masart/p/6674599.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/371140.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/371140.shtml
英文地址,請注明出處:http://en.pswp.cn/news/371140.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

sass運算

sass具有運算的特性,可以對數值型的Value(如:數字、顏色、變量等)進行加減乘除四則運算。 請注意運算符前后請留一個空格,不然會出錯。 scss.style css.style 本文轉載于:猿2048https://www.mk2048.com/blog/blog.php?idiij12j&titles…

163 coremail_Icoremail企業郵箱

高速穩定iCoremail企業郵箱于國內外多個網絡運營商的主干網數據中心放置郵件服務器,同時采用我司自主研發的Coremail電子郵件系統,從多方面保障了用戶的流暢體驗。安全可靠iCoremail企業郵箱使用歐洲最大的反病毒安全提供商的Sophos反病毒系列產品&#…

jquery-基礎事件[下]

<script>$(function () {mouseover mouseout mouseenter mouseleave的區別$(div).mouseover(function () {$(this).css(background, red);}).mouseout(function () {$(this).css(background, green);});$(div).mouseenter(function () {$(this).css(background, red);}).…

JavaOne 2012:NetBeans.Next –未來路線圖

我從Continental Ballroom 4和一個NetBeans主題&#xff08; 項目Easel &#xff09;到Continental Ballroom 5&#xff0c;走了必要的幾個步驟&#xff0c;以查看另一個面向NetBeans的演示文稿&#xff1a;“ NetBeans.Next –未來路線圖”。 Ashwin Rao發起了“羽毛之鳥”&am…

LeetCode day30

LeetCode day30 害&#xff0c;昨天和今天在搞數據結構的報告&#xff0c;后面應該也會把哈夫曼的大作業寫上來。 今天認識認識貪心算法。(&#xff61;&#xff65;?&#xff65;)&#xff89; 2697. 字典序最小回文串 給你一個由 小寫英文字母 組成的字符串 s &#xff0c;…

html注冊表

這是第一次使用html寫一個簡單的注冊表&#xff08;有不對的地方希望大家可以幫我指出來謝謝?&#xff09; <!DOCTYPE html><html><head> <title>木木音樂網第一次注冊表</title></head><body><h2>使用手機號碼注冊</…

C#復習正則表達式

由于前段時間為了寫工具學的太J8粗糙 加上最近一段時間太浮躁 所以靜下心來復習 一遍以前學的很弱的一些地方1 委托 public delegate double weituo(double a, double b);public static double test1(double a,double b){return a * b;}public static double test2(double a,…

使用JPA偵聽器的數據庫加密

最近&#xff0c;我不得不將數據庫加密添加到幾個字段中&#xff0c;并且發現了很多不好的建議。 建筑問題 最大的問題是建筑。 如果持久性管理器悄悄地處理您的加密&#xff0c;那么根據定義&#xff0c;您的體系結構將在持久性和安全性設計之間要求緊密而不必要的綁定。 您…

Java是先難后易嗎_在解決問題的時候,是先難后易還是先易后難?

有家長問&#xff0c;孩子一旦聽到不同聲音&#xff0c;就沮喪&#xff0c;一旦有難的事情&#xff0c;就逃避&#xff0c;怎么辦&#xff1f;回答這個問題之前&#xff0c;我們問一個問題“你給孩子玩穿紐扣游戲&#xff0c;是一開始給孩子玩容易穿的紐扣好呢&#xff1f;還是…

在vue中安裝使用vux

最近因為的工作的原因在弄vue&#xff0c;從后端弄到前端之前一直用js&#xff0c;現在第一次接觸vue感覺還挺有意思的&#xff0c;就是自己太菜了&#xff0c;這個腦子呀。。。。不太夠用。。。。。頁面設計用了一個叫vux的東西&#xff0c;vux可以提供一些組件&#xff0c;用…

form表單 獲取與賦值

form表單中使用頻繁的組件: 文本框、單選框、多選框、下拉框、文本域form通過getValues()獲取表單中所有name的值 通過setValues({key:values})給對應的name值進行賦值&#xff0c;其中key對應的name值 在給單選框和多選框賦值時&#xff0c;有幾個疑惑的地方&#xff1a;  …

Zabbix全方位告警接入-電話/微信/短信都支持

http://www.cnblogs.com/baidu-gaojing/p/5128035.html 百度告警平臺地址&#xff1a; http://gaojing.baidu.com 聯系我們&#xff1a; 郵箱&#xff1a;gaojingbaidu.com 電話&#xff1a;13924600771 QQ群&#xff1a;183806029 對于使用zabbix的用戶&#xff0c;要接入百度…

Spring MVC定制用戶登錄注銷實現示例

這篇文章描述了如何實現對Spring MVC Web應用程序的自定義用戶訪問&#xff08;登錄注銷&#xff09;。 作為前提&#xff0c;建議讀者閱讀這篇文章 &#xff0c;其中介紹了一些Spring Security概念。 該代碼示例可從Spring-MVC-Login-Logout目錄中的Github獲得。 它從帶有注釋…

HTML5與CSS3權威指南筆記案例1

第1章 <!DOCTYPE html> <meta charset "UTF-8"> <title> Search </title> <form> <p><label>Search&#xff1a;<input name"search" autofocus></label> </p> </form> <!DOCTYPE&…

java循環的概念_Java數據結構之循環隊列簡單定義與用法示例

本文實例講述了Java數據結構之循環隊列簡單定義與用法。分享給大家供大家參考&#xff0c;具體如下&#xff1a;一、概述&#xff1a;1、原理&#xff1a;與普通隊列的區別在于循環隊列添加數據時&#xff0c;如果其有效數據end maxSize - 1(最大空間)的話&#xff0c;end指針…

Unrecognized option: -jrockit

weblogic報錯&#xff1a; starting weblogic with Java version: Unrecognized option: -jrockit Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit. Starting WLS with line: /data/jdk1.8.0_45/bin/java -jroc…

51nod 1105 第K大的數

基準時間限制&#xff1a;1 秒 空間限制&#xff1a;131072 KB 分值: 40 難度&#xff1a;4級算法題 數組A和數組B&#xff0c;里面都有n個整數。數組C共有n^2個整數&#xff0c;分別是A[0] * B[0],A[0] * B[1] ......A[1] * B[0],A[1] * B[1]......A[n - 1] * B[n - 1]&#x…

在Tomcat上設置和使用Apache Solr

前一陣子花了一點時間來玩Solr&#xff0c;但立即被我們可以在一些更大的數據集上獲得的性能所震撼。 這是我的一些初始設置和配置學習信息&#xff0c;也許可以幫助某人啟動它并更快地運行。 首先在Windows上進行設置。 下載并解壓縮Apache Tomcat和Solr&#xff0c;然后將其復…

sass變量

sass變量用法 1、sass變量必須以$符開頭&#xff0c;后面緊跟著變量名 2、變量值和變量名之間就需要使用冒號(:)分隔開&#xff08;就像CSS屬性設置一樣&#xff09; 3、如果值后面加上!default則表示默認值 默認變量 sass的默認變量&#xff1a;僅需要在值后面加上!defaul…

西安4年java多少時間_西安學習java一般要多久

線程小n行的任務/任務執的數單個量為間隔執行池大所需時間時間&#xff0c;西安學習的配置&#xff0c;西安學習行定行池務的務執c配在執注置任方法時任上標&#xff0c;下解行調問題務的方度任有以異步決辦采用法&#xff1a;上述式執。比如、般要多本名(套接套接5套t地地節點…