日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

20172310 2017-2018-2 《程序设计与数据结构》第四周学习总结

發(fā)布時(shí)間:2025/4/16 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 20172310 2017-2018-2 《程序设计与数据结构》第四周学习总结 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

20172310 2017-2018-2 《程序設(shè)計(jì)與數(shù)據(jù)結(jié)構(gòu)》第四周學(xué)習(xí)總結(jié)

教材學(xué)習(xí)內(nèi)容總結(jié)

第四章

  • 類結(jié)構(gòu)、實(shí)例數(shù)據(jù)、形式參數(shù)、實(shí)際參數(shù)這些概念實(shí)在是很容易混淆,一開始我都完全不知道程序中的各個(gè)數(shù)據(jù)到底是什么意思,不過后來同過自我學(xué)習(xí)和老師的講解逐漸明白了這些概念的區(qū)別,實(shí)際參數(shù)是調(diào)用一個(gè)方法時(shí),在方法名后的圓括號(hào)中一一對應(yīng)所輸入的數(shù)據(jù),形式參數(shù)則是方法申明首部中給出的參數(shù)列表,實(shí)例數(shù)據(jù)則是在創(chuàng)造類時(shí)賦給它的屬性,可以是變量或是常量。
  • 學(xué)習(xí)了修飾符,知道了之前在編寫方法時(shí)為何要加public private等。
  • 還學(xué)習(xí)了訪問器方法、修改器方法和Tostring,return這些基礎(chǔ)的知識(shí)。

第七章

  • 第七章主要是在掌握了第四章的基礎(chǔ)之后,進(jìn)一步的學(xué)習(xí)如何來真正設(shè)計(jì)一個(gè)對自己有價(jià)值的,及面向?qū)ο蟮能浖?/li>
  • 學(xué)習(xí)了靜態(tài)方法、靜態(tài)變量這兩個(gè)靜態(tài)類的成員。
  • 問題描述中的名詞可能指明了程序中需要的一些類和又對象。
  • 靜態(tài)變量由類的所有實(shí)例共享。
  • 一個(gè)聚合對象由其他的對象組成,形成一種“有”關(guān)系。
  • 接口是抽象方法的集合,因而不能被實(shí)例化。
  • 枚舉類型的值是具有該枚舉類型的靜態(tài)變量,在枚舉類型的類定義中可以增加屬性和方法。
  • 多個(gè)重載方法可以由方法的參數(shù)個(gè)數(shù)、類型及參數(shù)順序來區(qū)分。
  • 程序測試決不能保證程序已沒有錯(cuò)誤存在,成功的測試就是能夠發(fā)現(xiàn)錯(cuò)誤的測試。

教材學(xué)習(xí)中的問題和解決過程

  • 問題1:課本4.4.2中,我對形式參數(shù)和實(shí)際參數(shù)理解不了(博客開頭就提到當(dāng)時(shí)真的不太懂)以至于在實(shí)驗(yàn)時(shí)出現(xiàn)了null的空引用。
  • 問題1解決方案:

形式參數(shù)是函數(shù)定義中的,系統(tǒng)沒有為其分配內(nèi)存空間,但是在定義里面可以使用的參數(shù)。例如:fun(int a)。這里a就是形式參數(shù)。
實(shí)際參數(shù)是函數(shù)調(diào)用的時(shí)候傳給函數(shù)的變量。這個(gè)是系統(tǒng)實(shí)實(shí)在在分配了內(nèi)存空間的變量。
簡單點(diǎn)說,就是形式參數(shù)給個(gè)形式,實(shí)際參數(shù)放進(jìn)去用。例如:fun(a);
函數(shù)聲明的用處是告訴編譯器聲明的函數(shù)在后面有定義。如果你將函數(shù)定義放在調(diào)用的前面,就不需要聲明。另外聲明就是函數(shù)定義后面加上分號(hào)的形式。
例如:定義是fun(int a)。聲明就是fun(int a);
對于實(shí)驗(yàn)的解決方法就是

在學(xué)習(xí)第七章找到了這種問題的解決方法:在上述構(gòu)造方法中,this引用特指對象的實(shí)例變量,賦值語句右邊的變量是構(gòu)造方法的形參變量。
這種方法避免了對含義相同的變量要給出不同命名以示區(qū)別的問題。有時(shí),這種情況發(fā)生在其他的方法中,但更經(jīng)常出現(xiàn)在構(gòu)造方法中。

  • 問題2:toString后要返回多個(gè)值怎么辦
  • 問題2解決方案:在做實(shí)驗(yàn)時(shí),我定義了三個(gè)實(shí)例數(shù)據(jù),而最后我想要返回值。按照老師的演示,我最后需要用toString方法,但在return時(shí)卻一直報(bào)錯(cuò),于是我就使用了多個(gè)toString方法,發(fā)現(xiàn)還是有錯(cuò)誤,最后才發(fā)現(xiàn)可以用“+”來拼接╥﹏╥

代碼調(diào)試中的問題和解決過程

  • 問題1:

在IDEA中想要上傳文件到碼云,卻遇到了這個(gè)問題

  • 問題1解決方案:其實(shí)自己還是不會(huì)使用IDEA來push和pull項(xiàng)目,有時(shí)成功有時(shí)又失敗,(╥╯^╰╥)。

  • 問題2:課本P214頁:PigLatinTranslator類沒有構(gòu)造方法,因?yàn)檫@個(gè)方法中不需要構(gòu)造方法,對于這個(gè)問題其實(shí)在周一的測試中也有遇到,所以比較不理解什么時(shí)候是不需要構(gòu)造方法的。
  • 問題2解決方案:課本有說過,每個(gè)類都有一個(gè)不帶參數(shù)的的默認(rèn)構(gòu)造方法。但是必須要實(shí)例化這個(gè)類(當(dāng)然這不是唯一產(chǎn)生對象的途徑,比如單例模式,但本質(zhì)上說所有途徑都是一樣的)的時(shí)候,那么就要用到自己寫的構(gòu)造函數(shù),即告訴程序我現(xiàn)在要實(shí)例化一個(gè)對象了,你給我馬上分配內(nèi)存,將內(nèi)存的首地址賦給我指定的類對象。

  • 問題3:
    在Linux中運(yùn)行RationalTester程序時(shí),一直都沒有任何顯示。
  • 問題3的解決方案:老師對這個(gè)程序進(jìn)行調(diào)試時(shí),發(fā)現(xiàn)其中有一項(xiàng)一直輸出空值,然后才發(fā)現(xiàn)是循環(huán)語句打錯(cuò)了(還沒有學(xué)循環(huán)語句)。

上周考試錯(cuò)題總結(jié)

  • 錯(cuò)題一:If two variables contain aliases of the same object then
    A . the object may be modified using either alias
    B . the object cannot be modified unless there's but a single reference to it
    C . a third alias is created if/when the object is modified
    D . the object will become an "orphan" if both variables are set to null
    E . answers A and D are correct
    正確答案: E
    解析:
    A.可以使用別名來修改對象
    B.對象不能被修改除非有一個(gè)單獨(dú)的引用
    C.語言如果對象被修改,則會(huì)創(chuàng)建第三個(gè)別名。
    D.如果兩個(gè)變量都被設(shè)為null,那么這個(gè)對象就會(huì)變成一個(gè)“孤兒”
    E.答案A和D是正確的
    解析:在課本3.1.1中有解釋,String對象一旦被創(chuàng)建就不可變,但是別名提供了一種可以修改對象的方法。根據(jù)定義如果兩個(gè)變量都被設(shè)為null,那么這個(gè)對象就不會(huì)被任何變量引用(通過任何別名),它確實(shí)會(huì)變成一個(gè)“孤兒”,并且在將來的某個(gè)時(shí)候會(huì)被垃圾收集。

  • 錯(cuò)題二:Which properties are true of String objects?
    A . Their lengths never change
    B . The shortest string has zero length
    C . Individual characters within a String may be changed using the replace method
    D . The index of the first character in a string is one
    E . Only A and B are true
    正確答案: E
    解析:字符串是不可變的。這意味著,一旦創(chuàng)建了string對象,就不能更改它。字符串的長度在創(chuàng)建后不會(huì)發(fā)生改變。最短的長度字符串是"",所以長度是0。replace方法允許從原來的一個(gè)字符串中創(chuàng)建一個(gè)新的字符串,替換一些字符。字符串中第一個(gè)位置的索引是0,而不是1。另外,每個(gè)字符串的最后一個(gè)字節(jié)包含字符串末尾字符,它是低值或二進(jìn)制0的字節(jié)。

  • 錯(cuò)題三:What happens if you attempt to use a variable before it has been initialized?
    A . A syntax error may be generated by the compiler
    B . A runtime error may occur during execution
    C . A "garbage" or "uninitialized" value will be used in the computation
    D . A value of zero is used if a variable has not been initialized
    E . Answers A and B are correct
    正確答案:E
    解析:很多時(shí)候,編譯器能夠檢測到未初始化的變量的嘗試,在這種情況下它會(huì)產(chǎn)生一個(gè)語法錯(cuò)誤。如果編譯器使用逃逸檢測,則在使用時(shí)出現(xiàn)運(yùn)行時(shí)錯(cuò)誤。Java是一種非常“安全”的語言,因此,如果在計(jì)算中使用未初始化的變量,則不允許使用“垃圾”或“零”。

  • 錯(cuò)題四:
    What is the function of the dot operator?
    A . It serves to separate the integer portion from the fractional portion of a floating point number
    B . It allows one to access the data within an object when given a reference to the object
    C . It allows one to invoke a method within an object when given a reference to the object
    D . It is used to terminate commands (much as a period terminates a sentence in English)
    E . Both B and C are correct
    正確答案: E
    解析: .點(diǎn)操作符直接追加在對象引用之后,后面是需要訪問的數(shù)據(jù)或方法。在數(shù)據(jù)的情況下,訪問可能是為了閱讀或?qū)懽鳌T诜椒ǖ那闆r下,訪問是允許某人調(diào)用該方法。浮點(diǎn)數(shù)中的點(diǎn)是一個(gè)小數(shù)點(diǎn)而不是一個(gè)點(diǎn)算符。

  • 錯(cuò)題五:In Java, "instantiation" means
    A . noticing the first time something is used
    B . creating a new object of the class
    C . creating a new alias to an existing object
    D . launching a method
    E . none of the above
    正確答案: B
    你的答案: C
    解析:“實(shí)例化”意味著創(chuàng)建對象的新實(shí)例。這通常是通過使用新操作符來完成的。在字符串的情況下,只需在表達(dá)式中使用引號(hào),就可以創(chuàng)建新的實(shí)例(實(shí)例化)。例如:字符串年代;s="一個(gè)新字符串(實(shí)例)";

  • 錯(cuò)題六:Say you write a program that makes use of the Random class, but you fail to include an import statement for java.util.Random (or java.util.). What will happen when you attempt to compile and run your program.
    A . The program won't run, but it will compile with a warning about the missing class.
    B . The program won't compile-you'll receive a syntax error about the missing class.
    C . The program will compile, but you'll receive a warning about the missing class.
    D . The program will encounter a runtime error when it attempts to access any member of the Random class
    E . none of the above
    正確答案: B
    你的答案: A
    假設(shè)您編寫了一個(gè)程序,該程序使用了Random類,但是您沒有包含java.util的import語句,(或java.util。)。當(dāng)您試圖編譯并運(yùn)行您的程序時(shí)將會(huì)發(fā)生什么。
    A.這個(gè)程序不會(huì)運(yùn)行,但是它將會(huì)對丟失的類發(fā)出警告。
    B.程序不會(huì)編譯,您將會(huì)收到關(guān)于丟失的類的語法錯(cuò)誤。
    C.程序?qū)?huì)編譯,但是您會(huì)收到一個(gè)關(guān)于丟失的類的警告。
    D.當(dāng)程序試圖訪問隨機(jī)類的任何成員時(shí),程序?qū)?huì)遇到運(yùn)行時(shí)錯(cuò)誤
    E.以上都不是缺少的類意味著將會(huì)有未定義的變量和/或方法。編譯器會(huì)檢測到這些,并會(huì)發(fā)出錯(cuò)誤消息。你的程序是不可執(zhí)行的。
    錯(cuò)因:還是沒有準(zhǔn)確理解編譯和進(jìn)行的區(qū)別。
    解析:缺少的類意味著將會(huì)有未定義的變量和/或方法。編譯器會(huì)檢測到這些,并會(huì)發(fā)出錯(cuò)誤消息。你的程序是不可執(zhí)行的。

  • 錯(cuò)題七:Which of the following will yield a pseudorandom number in the range [ -5, +5 ) given the following:
    Random gen = new Random( );
    A . gen.nextFloat( ) * 5
    B . gen.nextFloat( ) * 10 - 5
    C . gen.nextFloat( ) * 5 - 10
    D . gen.nextInt( ) * 10 - 5
    E . gen.nextInt(10) - 5
    正確答案: B 我的答案: E
    解析:gen.nextInt(10) - 5 所得到的結(jié)果是-5,-4,-3,-2,-1,0,1,2,3,4,并不是題目中所要求的,它得到的只是一些數(shù)而不是一個(gè)取值范圍。而nextFloat則是在范圍[0,1)中產(chǎn)生偽隨機(jī)數(shù)字;乘以10的收益率在0到10之間,再減去5,得到結(jié)果。

  • 錯(cuò)題八:Consider the following two lines of code. What can you say about s1 and s2?
    String s1 = "testing" + "123";
    String s2 = new String("testing 123");
    A . s1 and s2 are both references to the same String objects 1和s2都是對同一個(gè)字符串對象的引用
    B . the line declaring s2 is legal Java; the line declaring s1 will produce a syntax error 聲明s2的行是合法的Java;聲明s1的行將產(chǎn)生一個(gè)語法錯(cuò)誤
    C . s1 and s2 are both references to different String objects s1和s2都是對不同字符串對象的引用
    D . s1 and s2 will compare "equal" s1和s2會(huì)比較"相等"
    E . none of the above
    正確答案: C
    你的答案: A
    錯(cuò)因:粗心大意,沒有注意到兩者細(xì)微的差別。
    解析:這兩個(gè)聲明都是合法的Java。s1是一個(gè)字符串引用,它被初始化為字符串“testing123”。s2是一個(gè)字符串引用,它被初始化為字符串“測試123”。注意“測試”和“123”之間的空格。所以這兩個(gè)字符串不相等。

  • 錯(cuò)題九:
    An "alias"(別名) is when
    A . two different reference variables refer to the same physical object
    B . two different numeric variables refer to the same physical object
    C . two different numeric variables contain identical values
    D . two variables have the same names
    E . none of the above
    正確答案: A
    你的答案: B
    解析:當(dāng)有兩個(gè)或多個(gè)對同一物理對象的引用時(shí),就會(huì)出現(xiàn)“別名”,這樣,通過遵循任一引用,就可以讀/寫/修改對象

  • 錯(cuò)題十:
    The String class' compareTo method
    A . compares two string in a case-independent manner(獨(dú)立的方式)
    B . yields (收益率)true or false
    C . yields 0 if the two strings are identical
    D . returns 1 if the first string comes lexically before the second string
    E . none of the above
    正確答案: C
    你的答案: E
    解析:如果兩個(gè)字符串是完全一致的,那么它的值為0。

  • 錯(cuò)題十一:
    An API is
    A . an Abstract Programming Interface(一個(gè)抽象的編程接口)
    B . an Application Programmer's Interface(應(yīng)用程序程序員的接口)
    C . an Application Programming Interface(一個(gè)應(yīng)用程序編程接口)
    D . an Abstract Programmer's Interface(一個(gè)抽象的程序員的接口)
    E . an Absolute Programming Interface(一個(gè)絕對的編程接口)
    正確答案: C
    你的答案: B
    錯(cuò)因:沒有理解好課本3.3.1
    解析:API是一個(gè)應(yīng)用程序編程接口,它是為特定目的而構(gòu)建的相關(guān)類的集合。它們通常駐留在類庫中。

  • 錯(cuò)題十二:
    The advantage(s) of the Random class' pseudo-random number generators, compared to the Math.random method, is that(與數(shù)學(xué)相比,隨機(jī)類的偽隨機(jī)數(shù)生成器的優(yōu)點(diǎn)是隨機(jī)方法: )
    A . you may create several random number generators(你可以創(chuàng)建幾個(gè)隨機(jī)數(shù)生成器)
    B . the generators in Random are more efficient than the one in Math.random(隨機(jī)產(chǎn)生的發(fā)電機(jī)比數(shù)學(xué)中的那個(gè)更有效率)
    C . you can generate random ints, floats, and ints within a range(你可以在一個(gè)范圍內(nèi)生成隨機(jī)的ints、浮點(diǎn)數(shù)和ints)
    D . you can initialize and reinitialize Random generators(您可以初始化并重新初始化隨機(jī)生成器)
    E . all but answer B
    正確答案: E
    你的答案: C
    錯(cuò)因:沒有理解題目。
    解析:所有隨機(jī)數(shù)字生成器的效率是一樣的。隨機(jī)生成器優(yōu)于數(shù)學(xué)的優(yōu)點(diǎn)。隨機(jī)包含所有其他屬性。

  • 錯(cuò)題十三:
    The advantages of the DecimalFormat class compared with the NumberFormat class include(與NumberFormat類相比,十進(jìn)制格式類的優(yōu)點(diǎn)包括)
    A . precise control over the number of digits to be displayed(精確控制要顯示的數(shù)字的數(shù)量)
    B . control over the presence of a leading zero(控制一個(gè)前導(dǎo)零的存在)
    C . the ability to truncate values rather than to round them(語言能夠截?cái)嘀刀皇抢@過它們)
    D . the ability to display a % automatically at the beginning of the display(在顯示開始時(shí)自動(dòng)顯示“%”的能力)
    E . only A and B
    正確答案: E
    你的答案: A
    錯(cuò)因:沒有詳細(xì)比較兩者的區(qū)別
    解析:雖然十進(jìn)制格式提供的控制比NumberFormat要多得多,但是通過一個(gè)或多個(gè)數(shù)學(xué)方法,截?cái)嗳匀辉诔绦騿T的手中“%”符號(hào)會(huì)出現(xiàn)在顯示器的末端,而不是開始。

代碼托管

學(xué)習(xí)進(jìn)度條

代碼行數(shù)(新增/累積)博客量(新增/累積)學(xué)習(xí)時(shí)間(新增/累積)重要成長
目標(biāo)5000行30篇400小時(shí)
第一周127/1271/125/25
第二周278/4051/220/45
第三周442/8471/320/65
第四周1063/19102/530/95

其他(感悟、思考等,可選)

在學(xué)第七章的時(shí)候遇見了很多的條件語句,也遇到了很多的問題,發(fā)現(xiàn)就算是照著課本打,有時(shí)也會(huì)出問題,因?yàn)槟愀揪蜎]有理解這些數(shù)據(jù)的含義到底是什么。所以我們的學(xué)習(xí)不只是簡單照著書本上敲代碼,更多的是要去理解他為什么要這樣敲,要從中去總結(jié)規(guī)律,這樣才能更快更好的去掌握知識(shí)。我認(rèn)為我要努力的方面還有很多,還要盡量去使用網(wǎng)上的資源,而不是僅僅只看課本。

參考資料

《Java程序設(shè)計(jì)與數(shù)據(jù)結(jié)構(gòu)教程(第二版)》
《Java程序設(shè)計(jì)與數(shù)據(jù)結(jié)構(gòu)教程(第二版)》學(xué)習(xí)指導(dǎo)

轉(zhuǎn)載于:https://www.cnblogs.com/Qiuxia2017/p/8650167.html

總結(jié)

以上是生活随笔為你收集整理的20172310 2017-2018-2 《程序设计与数据结构》第四周学习总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。