201521123061 《Java程序设计》第三周学习总结
1. 本章學習總結
2. 書面作業
**Q1.代碼閱讀
public class Test1 { private int i = 1;//這行不能修改 private static int j = 2; public static void main(String[] args) {geti();Test1getj(); }public static void geti() {System.out.println(i); }public static void getj() {System.out.println(j);} }以上代碼可否編譯通過?哪里會出錯?為什么?嘗試改正?
如果創建3個Test1對象,有內存中有幾個i,幾個j?請分析原因?**
答:代碼不會編譯通過,在geti的函數中在調用i時會報錯,因為只能在靜態的方法里調用靜態的變量,而i不是靜態的。
i會有三個,j會有一個。因為j是靜態變量,不會改變;而每增加一個對象就會增加一個i。
Q2.構造函數有什么用?其編寫格式是什么?如果一個類不寫構造函數,它有構造函數嗎?如果一個類中只有帶參的構造函數,它有沒有不帶參數的默認構造函數?
構造函數是在新建對象的時候,同時對這個對象的一些屬性進行初始化。構造函數格式:構造函數具有和它所在的類完全一樣的名字并且構造函數沒有返回類型。一個類沒有構造函數的話,系統會自動生成默認構造函數。如果定義了一個有參的構造函數,為了防止出錯,系統不會創建無參構造函數,這時候,如果還想允許無參構造,就必須顯式的聲明一個。
Q3.使用 java.lang.Math 類的函數時,為什么不需要new?如果new Math()會產生什么錯誤?分析原因?
由于構造函數被聲明為私有的,就是說明不能被外部調用,所以不能用new來產生一個新對象,Math還定義為final類,不允許被繼承;截圖如下
如果強行new Math將會報錯。
Q4.什么是重載?什么是構造函數重載?在java.lang.Math類中舉出1個函數重載的例子?怎么才能區分兩個重載函數?
重載就是函數有相同名稱但參數不同,因此構造函數重載就是具有相同名稱的構造函數但函數所含參數是不同的。
Math中絕對值函數是一個構造函數且包含多個重載函數:
根據傳入的參數類型可以區分兩個函數。
Q5.final修飾的變量不能改變,為什么如下代碼可以正常運行?
final int[] NUMBS= {1,2,3,4,5};
NUMBS[2] = 1;
final引用的對象屬性可以改變但引用對象不可以改變。
Q6.閱讀代碼EmployeeTest.java,回答:
(1)當屬性都設置為private時,用戶不可以隨意對變量進行操作只能按照“劇本”來對變量進行操作
(2)
public Employee(){
this("雇員1",3000.0,2017,3,10);
}
(3)
import java.util.Date;
public Employee(String n,double s){
this.name=n;
this.salary=s;
SimpleDateFormat df=new SimpleDateFormat("****-- HH:mm:ss")//設置日期格式;
hideDay=df.format(new Date());
}
Q7.編寫函數 public static boolean isMondayToFriday()
功能:判斷今天如果是周一到周五,直接輸出如“上班時間”并返回true,否則輸出“休息時間”。
提示:使用LocalDateTime, DayOfWeek
import java.util.Calendar;
public class Test {
public static boolean isMondayToFriday() {
Calendar c = Calendar.getInstance();
int date = c.get(Calendar.DATE);
if(date>=1&&5<=date){
System.out.println("workday");
return true;
}
else {
System.out.println("weekend");
return false;}
}
3.碼云代碼提交記錄
4實驗總結:
這次的實驗是關于對象的一些基本概念,寫第一個實驗的時候對對象的概念不太明白,搞不清為什么get與set函數明明寫入了this.但是寫構造函數時還要再寫一遍this.,隨后在編程的過程中慢慢的明白,get與set是為數據的傳入特定了一種方式,構造函數中的this.是調用了get與set獲得的數據。后兩個題目寫的時候就很容易了。
轉載于:https://www.cnblogs.com/JMUNJF/p/6533357.html
總結
以上是生活随笔為你收集整理的201521123061 《Java程序设计》第三周学习总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: js ajax 异步上传图片,javas
- 下一篇: 联想 yoga213笔记本,无线网卡无法