201521123061 《Java程序设计》第三周学习总结
1. 本章學(xué)習(xí)總結(jié)
2. 書面作業(yè)
**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);} }以上代碼可否編譯通過(guò)?哪里會(huì)出錯(cuò)?為什么?嘗試改正?
如果創(chuàng)建3個(gè)Test1對(duì)象,有內(nèi)存中有幾個(gè)i,幾個(gè)j?請(qǐng)分析原因?**
答:代碼不會(huì)編譯通過(guò),在geti的函數(shù)中在調(diào)用i時(shí)會(huì)報(bào)錯(cuò),因?yàn)橹荒茉陟o態(tài)的方法里調(diào)用靜態(tài)的變量,而i不是靜態(tài)的。
i會(huì)有三個(gè),j會(huì)有一個(gè)。因?yàn)閖是靜態(tài)變量,不會(huì)改變;而每增加一個(gè)對(duì)象就會(huì)增加一個(gè)i。
Q2.構(gòu)造函數(shù)有什么用?其編寫格式是什么?如果一個(gè)類不寫構(gòu)造函數(shù),它有構(gòu)造函數(shù)嗎?如果一個(gè)類中只有帶參的構(gòu)造函數(shù),它有沒(méi)有不帶參數(shù)的默認(rèn)構(gòu)造函數(shù)?
構(gòu)造函數(shù)是在新建對(duì)象的時(shí)候,同時(shí)對(duì)這個(gè)對(duì)象的一些屬性進(jìn)行初始化。構(gòu)造函數(shù)格式:構(gòu)造函數(shù)具有和它所在的類完全一樣的名字并且構(gòu)造函數(shù)沒(méi)有返回類型。一個(gè)類沒(méi)有構(gòu)造函數(shù)的話,系統(tǒng)會(huì)自動(dòng)生成默認(rèn)構(gòu)造函數(shù)。如果定義了一個(gè)有參的構(gòu)造函數(shù),為了防止出錯(cuò),系統(tǒng)不會(huì)創(chuàng)建無(wú)參構(gòu)造函數(shù),這時(shí)候,如果還想允許無(wú)參構(gòu)造,就必須顯式的聲明一個(gè)。
Q3.使用 java.lang.Math 類的函數(shù)時(shí),為什么不需要new?如果new Math()會(huì)產(chǎn)生什么錯(cuò)誤?分析原因?
由于構(gòu)造函數(shù)被聲明為私有的,就是說(shuō)明不能被外部調(diào)用,所以不能用new來(lái)產(chǎn)生一個(gè)新對(duì)象,Math還定義為final類,不允許被繼承;截圖如下
如果強(qiáng)行new Math將會(huì)報(bào)錯(cuò)。
Q4.什么是重載?什么是構(gòu)造函數(shù)重載?在java.lang.Math類中舉出1個(gè)函數(shù)重載的例子?怎么才能區(qū)分兩個(gè)重載函數(shù)?
重載就是函數(shù)有相同名稱但參數(shù)不同,因此構(gòu)造函數(shù)重載就是具有相同名稱的構(gòu)造函數(shù)但函數(shù)所含參數(shù)是不同的。
Math中絕對(duì)值函數(shù)是一個(gè)構(gòu)造函數(shù)且包含多個(gè)重載函數(shù):
根據(jù)傳入的參數(shù)類型可以區(qū)分兩個(gè)函數(shù)。
Q5.final修飾的變量不能改變,為什么如下代碼可以正常運(yùn)行?
final int[] NUMBS= {1,2,3,4,5};
NUMBS[2] = 1;
final引用的對(duì)象屬性可以改變但引用對(duì)象不可以改變。
Q6.閱讀代碼EmployeeTest.java,回答:
(1)當(dāng)屬性都設(shè)置為private時(shí),用戶不可以隨意對(duì)變量進(jìn)行操作只能按照“劇本”來(lái)對(duì)變量進(jìn)行操作
(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")//設(shè)置日期格式;
hideDay=df.format(new Date());
}
Q7.編寫函數(shù) public static boolean isMondayToFriday()
功能:判斷今天如果是周一到周五,直接輸出如“上班時(shí)間”并返回true,否則輸出“休息時(shí)間”。
提示:使用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實(shí)驗(yàn)總結(jié):
這次的實(shí)驗(yàn)是關(guān)于對(duì)象的一些基本概念,寫第一個(gè)實(shí)驗(yàn)的時(shí)候?qū)?duì)象的概念不太明白,搞不清為什么get與set函數(shù)明明寫入了this.但是寫構(gòu)造函數(shù)時(shí)還要再寫一遍this.,隨后在編程的過(guò)程中慢慢的明白,get與set是為數(shù)據(jù)的傳入特定了一種方式,構(gòu)造函數(shù)中的this.是調(diào)用了get與set獲得的數(shù)據(jù)。后兩個(gè)題目寫的時(shí)候就很容易了。
轉(zhuǎn)載于:https://www.cnblogs.com/JMUNJF/p/6533357.html
總結(jié)
以上是生活随笔為你收集整理的201521123061 《Java程序设计》第三周学习总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: js ajax 异步上传图片,javas
- 下一篇: Java并发性和多线程介绍目录