Java 第三周总结
生活随笔
收集整理的這篇文章主要介紹了
Java 第三周总结
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1.本周學(xué)習(xí)總結(jié)
2.書面作業(yè)
1.代碼閱讀
public class Test1 { private int i = 1;//這行不能修改 private static int j = 2;public static void main(String[] args) {geti();Test1.getj();}public static void geti() {Test1 test=new Test1();System.out.println(test.i);}public static void getj() {System.out.println(j);}}以上代碼可否編譯通過?哪里會出錯?為什么?嘗試改正?如果創(chuàng)建3個Test1對象,有內(nèi)存中有幾個i,幾個j?
- 編譯無法通過,i會報錯,它不是一個靜態(tài)的對象。第二行不能更改,所以增加Test1 test=new Test1();
- 創(chuàng)建了三個Test1對象,內(nèi)存中有三個i,一個j。因為靜態(tài)對象的每個類就只有一個存儲空間,三個j都是同一個。但是i不是靜態(tài)對象,所以每次都會創(chuàng)建新的i,所以有三個。
2.構(gòu)造函數(shù)有什么用?其編寫格式是什么?如果一個類不寫構(gòu)造函數(shù),它有構(gòu)造函數(shù)嗎?如果一個類中只有帶參的構(gòu)造函數(shù),它有沒有不帶參數(shù)的默認(rèn)構(gòu)造函數(shù)?
- 構(gòu)造函數(shù)最大的好處是方便,能夠便捷的快速調(diào)用編寫好的一些程序,規(guī)則,同時也能區(qū)不同類型,用途的不同代碼。
- 編寫格式 public(或者private)類名(有無參數(shù)都行){}構(gòu)造函數(shù)不寫返回類型。
- 沒有。如果一個類,沒有定義構(gòu)造函數(shù),那么系統(tǒng)就會默認(rèn)有一個無參的構(gòu)造函數(shù)。但是如果定義了一個有參函數(shù),為了保證正確性,系統(tǒng)不會創(chuàng)建無參構(gòu)造函數(shù)。這時候如果還想允許無參構(gòu)造,就必須顯式的聲明一個。
3.使用java.lang.Math類的函數(shù)時,為什么不需要new?如果new Math()會產(chǎn)生什么錯誤?
- Math()是外部類,Math()類里面的方法是靜態(tài)的。所以直接使用類訪問就可以了。
- 如果new Math(),那么也找不到math下面的其他方法。
4.什么是重載?什么是構(gòu)造函數(shù)重載?在java.lang.Math類中舉出函數(shù)重載的例子?怎么才能區(qū)分兩個重載函數(shù)?
- 重載,簡單來說就是函數(shù)活著方法有相同的名稱,但是參數(shù)列表不相同的情況。可使函數(shù)、運算符等處理不同類型數(shù)據(jù)或接受不同個數(shù)的參數(shù)。
- 函數(shù)名可以相同,但是特征標(biāo)必須不同。用函數(shù)名來確定函數(shù)的不同,用特征標(biāo)來確定重載函數(shù)的不同。同時,參數(shù)的順序,類型不同也可以確定重載函數(shù)的不同。
5.final修飾的變量不能改變,為什么如下代碼可以正常運行?
final int[] NUMBS= {1,2,3,4,5}; NUMBS[2] = 1;- 對于一個final變量,如果是基本數(shù)據(jù)類型的變量,則其數(shù)值一旦在初始化之后便不能更改;如果是引用類型的變量,則在對其初始化之后便不能再讓其指向另一個對象。這里引用的是int型的變量,但是他的內(nèi)容還是可以改變的,所以代碼可以正常運行。輸出NUMBS[2]的答案為1;
6.閱讀代碼EmployeeTest.java,回答:
(1)為什么其屬性均為private?這樣設(shè)計有什么好處?
- 私有的,只能對自己使用,對別的類是不能訪問的,也就是說對于別的類來說是隱藏不可見的。如果所有方法都public,萬一被調(diào)用了本來應(yīng)該封裝的方法,那么很容易造成整個相關(guān)程序的修改。危害很大。
(2)為Employee類增加一個無參構(gòu)造函數(shù),調(diào)用其有參構(gòu)造函數(shù),設(shè)置name為雇員1, salary為3000, hireDay的年月日為2017年3月5日。
public Employee(){this("雇員1",3000.0,2015,3,5);}(3)為Employee類再增加一個有參構(gòu)造函數(shù),參數(shù)只有name與salary,hideDay為當(dāng)前日期。
public Employee(String n, double s, LocalDate hireDay){name = n;salary = s;hireDay = LocalDate.now();}7.編寫函數(shù)public static boolean isMondayToFriday()
功能:判斷今天如果是周一到周五,直接輸出如“上班時間”并返回true,否則輸出“休息時間”。
public static boolean isMondayToFriday(){LocalDateTime now = LocalDateTime.now();DayOfWeek dayOfWeek = now.getDayOfWeek();System.out.println(dayOfWeek);if(dayOfWeek!=DayOfWeek.SATURDAY && dayOfWeek!=DayOfWeek.SUNDAY)return true;return false;}if(isMondayToFriday())System.out.println("上班時間");elseSystem.out.println("休息時間");提示:使用LocalDateTime, DayOfWeek
參考資料:
JAVA 8:健壯、易用的時間-日期API - ImportNew.pdf
Java8DateTimeTest.java
3.碼云
4. PTA實驗總結(jié)
- 初始化塊的修飾符只能是static,使用static修飾的初始化塊被稱為靜態(tài)初始化。初始化塊里的代碼可以包含任何可執(zhí)行性語句,包括定義局部變量 ,調(diào)用其他對象的方法,以及使用分支,循環(huán)語句等。{}單純被一個大括號括起來的叫初始化塊,static{}叫做靜態(tài)初始化。
- 靜態(tài)初始化的等級是最高的,會最優(yōu)先執(zhí)行
- Shift+Alt+S,Generate toString()自動補全toString;Generate Getter and Setters,自動添加。
- Private ,編程語句在模塊級別中使用,用于聲明私有變量及分配存儲空間。使用private修飾符可以完全隱藏類的成員,使得不能從類外直接訪問它們。相對的,使用public修飾符允許任何類訪問類的成員。
- 在main函數(shù)里調(diào)用新建的類中定義的函數(shù),必須先new一個對象,然后對這個對象進行操作。
- 這次的實驗感覺不會太難,而且數(shù)量也比較適中,感覺這樣挺好的。。。
轉(zhuǎn)載于:https://www.cnblogs.com/ycll/p/6529410.html
總結(jié)
以上是生活随笔為你收集整理的Java 第三周总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: redis常用数据结构解析
- 下一篇: 英文构词法 —— ant、ent 后缀