20182306 2019-2020-1「オブジェクト指向プログラミングとデータ構造、」学習要約の6週

20182306 2019-2020-1「オブジェクト指向プログラミングとデータ構造、」学習要約の6週

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

多型は、異なる時間に異なるターゲットに可変基準点を指します。多型は、結合達成するための基礎となる
オブジェクト指向の原則は、コアオブジェクト指向設計、5つのSRPのオブジェクト指向の原則、OCP、LSP、DIP、ISPである
SRP(シングル責任Princple単一責任の原則)デザインの唯一の要素事。前にこの問題を議論し、(神クラスとサブクラス)は、再利用しやすいサブクラス化された。
柔軟な呼び出しを使用し、どのような出て行くことはありません:内の結束と低結合が高いです

OCP(オープン閉じるPrincpleを使用)
「の変形のためのクローズド;拡張のためのオープン」:オープン拡大するには、修正のため閉鎖
OCPの背後にあるメカニズム:抽象的多型
のソフトウェア・エンティティ(..クラスモジュール機能)でなければなりません

LSP:(リスコフの置換原則リヒター置換原則)リスコフは、この原則の著者です。5より大きいとご理解の数は、子供の父親が存在することができなければならない2、より大きくなければなりません。

DIP(依存反転原理依存関係逆転の原則)は抽象的に依存し、特定に依存しないでください。
サブクラスは、基本クラスに置き換えてもよい虐待を継承することはできません

ISP:(インタフェース棲み分け原理インタフェース別々の原則)ロールプレイの一種と同等のインターフェースが、俳優がインタフェースの実装と同等のものを再生するにはその段階でこの役割。したがって、それはに代わって役割にシンプルなインターフェイスである必要があり、インターフェイス分離の原則は、異なるクライアントに対処するための広い、狭い異なるインタフェースを提供するために、同じロールを話すことです。

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

  • 質問1:あなたはインターフェースインターフェースを実装することができます
  • 問題1つのソリューション:いいえ、インターフェイスメソッドのメンバーは抽象的ですが、メソッド本体を持っていない、継承されたインタフェースを実現することができません。
  • 質問2:マルチステート必要性とは何ですか
  • 問題2ソリューション:継承は、そこに書き換えられ、だけでなく、親クラスのオブジェクトの基準点は、サブクラス化

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

  • 質問1:

  • 問題1ソリューション:不注意のファイルの名前に気付かなかったので、均一ではなく、

コードホスティング

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

  • 間違った設問1
    次のコードではリストはint型の値の配列です何を想定しないん、TEMPは、以前は初期化されたint値の一部であり、cは0に初期化intで?
    用(J = 0; J ++; J <List.length) IF(リスト[J] <TEMP)、C ++、
    .ITはTEMPにおける最小値と店舗検索
    B .ITはTEMP内の最大値をITとストアを検索
    C .ITザがリスト内に等しい最小値要素の数をカウント
    数TEMP最後以内少ないリストのDの要素のカウントで.IT
    リスト内の値でE .ITのソートが昇順であることを
    Dあなたの答え:B正しい答えを
    分析:if文(リスト[J] <TEMP )C + リストの各要素は、温度と比較され、素子が温度未満であるCに要素を追加した場合にのみ、リスト内の要素の数が温度未満で計算し、結果はCに格納されています。
  • 間違った質問2
    ショー番号の次のリストの正確配列はソートによるセレクションザ・ファースト・パスアルゴリズム9,4,12,2,6,8,18 {}?の後になり
    0.9 ,. 4、12は、2であります6 ,. 8、18は
    B 0.4 ,. 9、12、2、。6 ,. 8は、18である
    C .2 ,. 4、12 ,. 9 ,. 6 ,. 8であり、18は
    D .2 ,. 4 ,. 6 ,. 8 ,. 9、12、18であります
    E 0.2、4、9、12 、6、8、18
    正解:C回答:B
    解析:各連続選択ソートを送信ソートが最小値を見つけることができません、と現在の配列インデックスを切り替えます(現在のインデックスは0から、最後から2番目の位置の配列になっています)。最初のパス、インデックス0、SO2の切換位置と9回の交換と最小要素2。
  • 間違った質問。3
    アルゴリズムは、n値の数がソートされた配列されている場所に________効率のソート順を有する有しソート挿入及び選択の両方。
    .Nの
    B *ログ.N、N-
    C ^ .N 2
    D ^ .N 3
    E .Insertionソート及びN ANの選択効率の効率を有するソート2 ^ n個有する
    C回答:B正解
    分析:ソートアルゴリズムの二種類が2つのネストされたループを使用し、各ループが実行されたn回程度これら2つのアルゴリズムの複雑さは、n * nまたはN ^ 2です。
  • 間違った質問4
    委任委任その?のための主要なプログラミングオブジェクト指向プログラミングメカニズムは何である
    .encapsulation、継承、多型
    Bの.encapsulation、抽象化、継承
    Cの.inheritance、多型、再帰
    Dの.polymorphism、再帰、抽象
    上記.noneのE
    正しい答え:あなたの答え:C
    分析:彼らは誤って変更することができないように隔離パッケージには、コードの一部であり、継承は、コードの再利用を提供し、名前の多型、意味論の複数。抽象化は便利な属性ですが、それはメカニズムではありません。制御構造は、再帰的サイクルまたは繰り返しを示す別の方法を提供します。
  • 間違った質問5
    できるプログラム展示の多型ITのみ実装し、事前バインディング?IF
    A .Yes、多型の一の形態は、オーバーロードされているため、
    LATEなしでサポートされていないことができますのでBの.NO、バインディング多型を
    SOロングプログラムでAS継承を使用しているため、C .Yesをおよび/またはインターフェースITでサポート多型
    D .Yes、アーリーバインディングは、多型とは何の関係も持っていないため
    で、上記のEの.none
    正しい答え:あなたの答え:Bの
    インタフェースのみがタイで多型と継承をサポートしていますが、けれども:分析これは、与えられた夜の状況でサポートされています。しかしながら、過負荷の多形体- (法)名、本体の複数の-限り、使用中、過負荷、多型を使用してプログラム。
  • 間違った質問6は、
    バイナリ検索の効率化には何ですか?
    .N ^ 2
    B .nという
    Cは、N- .log2
    D・N / 2
    で上記のEの.noneを
    正解:D:あなたの答えC
    分析:各比較して、バイナリサーチは、残りのデータの約半分がなくなります。このプロセスは、要素を見つけるために続けて発見されたか、可能なすべてのデータが削除されました。N個のデータ要素があるので、データが1つの未満の要素である前に、時刻データの数がlog2nを半分にすることができます。

    ペアピアレビューと

採点

  1. 適切な使用のマークダウン構文(1点)
  2. 要素の範囲(1点)テンプレート
  3. 教科書の学習と問題解決プロセス、3つの質問は、3ポイントを追加します

  4. コードのデバッグおよび問題解決プロセス、二つの問題に加えて2ポイント
  5. 週300以上の支店有効なコード(プラス2ポイント)
  6. 感情、経験は大きな空の1ポイントを残しません
  7. 組版の微プラス1ポイント
  8. プログレスバーは、学習時間を記録し、1ポイントの状況を改善します
  9. ハンズオン新しいコードを書くことがありますが、1ポイントを追加
  10. クラスの選択は、1ポイントを確認した後、
  11. 深さの間違った質問を学ぶ、1ポイントを追加
  12. コメントは真剣に、私は、問題やブログのコードに加えて1ポイントを指摘することができます
  13. ペアは本物のプラス1ポイントを学びます

コメントテンプレート:

  • 学習課題やブログワース:
    • グッド組版
  • コードは、学習や問題価値があります:
    • Javaの学習に非常に硬い今週の学生を双晶、私は、Javaを学ぶために懸命に仕事を持っていることを示す成長の符号量、
    • 倉庫少し混乱
  • 参考例

コメントは、学生のブログやコードを持っていました

  • ペア今週の学習
  • 先週のブログピアアセスメントケース

その他(知覚、思考、など、別売)

Javaの学習内容より多くの割り当ては、私が構築したい、成長しています

学習の進捗バー

コードの行の数(/蓄積を追加) ブログ量(/蓄積を追加) 学習時間(/蓄積を追加)
目標 5000行 30 400時間
最初の週 200/200 2/2 20/20
第二週 300/500 2/4 38分の18
第3週 500/1000 3/7 60分の22
4週 300/1300 2/9 90分の30
5週目 1526/2986 2/9 115分の20
6週 837/3823 2/11 135分の20

最後に、「計画的な学習の時間」と「実際の学習時間」を記録してみてください、あなたが計画する能力を向上させることができるかどうかを確認。この研究は、非常に重要な仕事であるにも便利です。
推定式消費:Y = X + X / N 、Y = XX / Nを、 より頻繁に訓練し、X、Yが閉じます。

参考:なぜそんなにハード、ソフトウェアエンジニアリングソフトウェアを推定されソフトウェアエンジニアリングの推定法

参考資料

おすすめ

転載: www.cnblogs.com/yanhan1/p/11681715.html