20182311 2019-2020-1「データ構造とオブジェクト指向プログラミング、」最初の4週間の学習概要

テキスト

20182311 2019-2020-1「データ構造とオブジェクト指向プログラミング、」最初の4週間の学習概要

コンテンツの概要を学びます

教科書4.8.1章および第V

  1. ループのイテレータとA
  2. クラスとオブジェクト:子と親クラス、継承。クラスがメモリ空間を割り当てません宣言し、スペースを割り当てますのみオブジェクトをインスタンス化します。二つの方法が、現在の静的メソッドは、クラス名を使用して、直接メソッドを呼び出し、オブジェクトの呼び出しをインスタンス化することによって、クラスを呼び出すことが知られています。
  3. 可視性の修飾子:プライベート、保護、公衆。親クラスとインスタンス変数のプライベートサブクラスが継承メカニズム最も適切なパッケージとの間に設けられても継承することを確実にするために保護することができます。
  4. UMLのクラス図
  5. 静的メソッドと静的クラス:静的クラスは、非静的変数を呼び出すことはできません。クラスのすべてのインスタンスによって共有される静的変数は、静的変数は静的変数の値に対応するクラスの変更は、すべてのクラスを変更します。
  6. クラス関係:依存性の重合(HAS-A)。

教科書の学習と問題解決のプロセス

  • 問題1:コールクラスオブジェクトでは省略メソッドToStringメソッドのprintlnを使用して生成することができます。
  • 問題解決策1:すべてのクラスは、直接的または間接的にオブジェクト・クラスから導出され、Obeject含有のtoString()メソッドは、すべてのサブクラスによって継承されます。ただし、印刷は直接のみ、オブジェクト名と文字列のいくつかの奇妙な数字のうち、(オブジェクト)printlnを。一般的には、彼らのニーズに応じてオーバーライドをToStringメソッドします。
  • 質問2:どのようにインターフェイスを理解するには?抽象クラスとインタフェースの違いは?
  • 問題2ソリューション:理解:インターフェースが抽象メソッドのグループで構成されています。
    • その、抽象クラスのメソッドの実装を行うことができるインタフェースのメソッドが含まれていません。
    • 唯一の静的定数を使用することができますインターフェイスは、抽象クラスは、通常の変数を持つことができます。
    • インタフェースクラスは(実装)は達成されなければならない、抽象クラスはサブクラスによって継承されなければならない(延び)
    • 抽象クラスは、インタフェースが抽象的機能である、抽象クラスです。
    • クラスは一つだけの継承を持つことができますが、複数のインタフェースを持つことができます。Javaの単一継承が、複数のインタフェースを継承することができますインターフェイス。
    • 抽象インタフェースのメソッドは、抽象、抽象クラス抽象メソッドではない地域をデフォルトことがあります。
  • 質問3:抽象クラスと抽象メソッドとの関係?なぜ抽象クラスでしょうか?
  • ソリューション質問3:クラスは抽象メソッドが含まれていますが、抽象クラスとして宣言する必要があり、抽象クラスは、抽象メソッドを含めることはできません。そして、インタフェースクラスは、抽象クラスをインスタンス化することはできません。抽象クラスは、トップレベル・デザインです。

プロセスで解決コードのデバッグおよび問題

  • 質問1:そこに定義されているが数えるが、メソッド内のローカル変数、なぜ文句を言うのだろうか?

  • 問題1ソリューション:、変数の変更でブレースリードの役割を欠落している自分自身を理解することは問題ありません。
  • 質問2:インデックス2(配列境界例外)、および1つの出力だけ第一再びアレイ、スレッド「メイン」java.lang.ArrayIndexOutOfBoundsExceptionの例外が発生するのを横断する反復子を使用して、アレイを横断し、そしてそれを使用します。

  • 問題2ソリューション:二回出力していイテレータと配列トラバーサル順序転置はイテレータと使用上の問題の原則でなければなりません。
  • 反復子原理:イテレータの原理は、()のhasNextを有する第1、配列へのポインタである(プログラムが偽出口直接法を返すべきである)次の要素があるか否かを判断し、次の位置に次のポインタに移動しました。
  • 内部循環のために、実際にイテレータトラバーサルを呼んでいます。しかし、変更は、ポインタは、変調サイクルのポインタの前に再びサイクルの最後が、初期条件の初期位置を有している結果の順序は、点の配列である逆べきです。
  • 質問3:列挙型は数字にすることはできませんか?

  • 質問3溶液:列挙型は、クラスであり、アレイに理解することができません。単一の文字を含む2、3は、それらが割り当てることができない、データ型ではなくオブジェクトでも可変であり、列挙型リテラル定数を定義することができません。

コードホスティング

先週試験間違った質問の概要

  • 错题1:Which of the following is true regarding the mod operator, %? (关于求余运算符%,下面哪项是正确的?)
    A .It can only be performed on int values and its result is a double
    B .It can only be performed on int values and its result is an int
    C .It can only be performed on float or double values and its result is an int
    D .It can only be performed on float or double values and its result is a double
    E .It can be performed on any numeric values, and the result always is numeric
  • 反思:正确答案:E。尽管通常使用整数值,但%运算符可以用于所有类型的数字数据。
  • 错题2: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。字符串一旦创立,不可改变,长度可以为0。调用replace方法不是改变原有的字符串,而是在原有字符串的基础上修改并把加过存入一个新的字符串。
  • 错题3: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。很多时候编译器能够检测未初始化变量的尝试使用,在这种情况下它会产生语法错误。如果使用编译器的逃逸检测,则使用时会出现运行时错误。
  • 错题4:The String class' compareTo method
    A .compares two string in a case-independent manner
    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。两个字符串相等输出0,第一个在第二个字符串之前输出-1,否则就输出+1。

结对及互评

点评过的同学博客和代码

感悟

我发现一个快速学习的方法,先去看一堆看不懂的代码,然后再带着问题看书,这样知识点会留下更深的印象,也更有侧重性。不懂的地方不要随便相信书或者别人的博客,自己打一遍还能加深印象。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 10000行 30篇 400小时
第一周 246/246 2/2 30/30 初步掌握linux命令、java小程序和jdb调试
第二周 73/319 3/3 30/60
第三周 906/1225 3/6 20/80
第四周 748/1973 2/8 20/100

参考资料

おすすめ

転載: www.cnblogs.com/lengchong/p/11614535.html