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

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

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

  • 1.この章では、我々は我々自身のクラスを使用して作成する方法を学ぶ:クラスは、クラスのコンストラクタ、あなたが設定することもでき、取得、toSring、あなたが定義するメソッドと同じ名前を持ちます。オブジェクトをインスタンス化し、オブジェクトは、すべてのクラスメソッドにより使用されてもよいです。インスタンス・データは作成の各インスタンスの後に新たな変数のメモリ空間を自動的に生成されます
  • 図の2.umlクラス:各クラスは、3つの部分を含むことができる:クラス名は、属性、オペレーション(メソッド)。UMLクラス図自身の構文、変数名の後に変数の型名、セパレータとしてのそれらの間の結腸、+方法及び - 可視性を示しています。点を矢印、および既知のクラスはいくつかの方法(コール)内の別のクラスを使用することを示しました。
  • 3.パッケージングコンセプト
  • 4.可視性修飾子:クラス(通常、それは任意に変更することができないため、セキュリティを保証することができ、一定のパブリックに設定)外部からパブリック直接アクセス
    プライベート必須パッケージは、保護され、外部の相続関連のクラスを呼び出すことはできません両方がサブクラスによって呼び出すことができますが、また、そのパッケージを確保するために、
  • クラス関係:依存性(有する)、継承は、重合は、これが参照
  • 6.インターフェースのコンセプト

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

  • 質問1:どのように静的メソッドを理解します
  • 問題1ソリューション:staticメソッド静的修正、呼び出すことができるクラスをインスタンス化せずに。これは、静的変数を参照するように、一般的に、クラスのインスタンスでインスタンス変数を参照しません
  • 質問2:この参照がどのような役割を持っています
  • 問題解決策2:これは、それ自体へのオブジェクト参照点を可能にし、これは、同じ名前のインスタンス変数に対応するパラメータの設定を区別するために使用される方法を指します。データ転送パラメータは、クラスを必要とするときは、左側限り、同じ名前を取るプラスこれを。引用することができます
  • 質問3:包装コンセプトは何ですか、なぜパッケージを促進すべきです
  • 質問3ソリューション:オブジェクトがパッケージ化する必要があり、パッケージは情報隠蔽を達成するために、データと関連する行動を詰め、いずれかのクラス隠された内容を達成し、また、クラス属性の直接操作を避けています。パッケージには、実際にユーザアクセスデータクラスの修飾の程度を制御し、オブジェクトのみを介してそれらのサービスを提供することができる方法は、インタフェースは、パッケージの正確な説明であることを意味するプログラムの他の部分と相互作用します。クラスは、変数の値を変更することはできませんべきではありません外のクラス内の変数を宣言し、クラスには、内側のみからアクセスできるようにして変更する必要があります。

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

  • 質問1:getメソッドでエラーが大量参加プログラムエラーにつながりました
  • 問題1つのソリューション:学生を支援することで、データのみを返すことができ、パラメータを渡すことはできませんgetメソッドを学びました。パラメータの受け渡しは、このようなセットなど、他のプロセスで実行する必要があります
  • 質問2:あなたはコインのクラスの本をノックすると、コードの行count1 = (coin1.isHeads()) ? count1+1 : 0;私はしますcount1+1になったノックcount++、もともとShiqueは無限ループを引き起こす実行している、非常に異なった考え

  • 問題2ソリューション:同等のは、それ自体が変更された回数。左側ためこうして無限ループを生じる、媒体種別カウント=があります。数+ 1カウントの値を変更しません、それは代入文で正常に使用することができますcount++count=count+1
  • 質問3:gitのは、設定された後、アップロードしません
  • 質問3ソリューション:プッシュを参照して、提出しなかった場合、デフォルトでは、コミットすることで、手動程度に設定する必要があります

コードホスティング

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

  • ドット演算子の機能は何ですか?
    • .ITは、浮動小数点数の小数部分から整数部分を分離するのに役立ちます
    • B .ITは、オブジェクトへの参照を与えられたときに一方がオブジェクト内のデータにアクセスすることを可能にします
    • オブジェクトへの参照が与えられたときにC .ITは、1つのオブジェクト内のメソッドを呼び出すことを可能にします
    • D .ITは、(英語で文を終了期間など多くの)コマンドを終了するために使用されています
    • E .Both B及びCが正しいです
    • ドット演算子は、アクセスが所望されるべきデータまたは方法に続いて、オブジェクト参照の直後に付加されます。データの場合は、アクセスは、読み取りまたは書き込みのためであってもよいです。この方法の場合には、アクセスは、1つのメソッドを呼び出すようにすることです。浮動小数点数内のドットは小数点ではないドット演算子です。
    • 理解:ドット演算子は、直接呼び出されるメソッドの名前を追加し、オブジェクト参照に追加することができ、データオブジェクトは、所与の基準オブジェクトにアクセスすることができます。
  • 文字列クラスのcompareToメソッド
    • ケースに依存しない方法で.compares 2つの文字列
    • Bは、真または偽.yields
    • 2つの文字列が同一である場合、Cは0を.yields
    • 最初の文字列が2番目の文字列の前に辞書的に来る場合Dは1を.returns
    • 上記のEの.none
    • 理解:等しいと同じ、それは英語の意味は、エラーの原因を理解していません。compareToおよび使用は、Cに類似しています
  • ラッパークラスの名前はなく、最初の大文字と、プリミティブデータ型の名前だけです。
    • B .FALSE
    • これは、ラッパークラスのほとんどのために真であるが、それはint型(整数)とCHAR(文字)はfalseです。
    • 理解:本を読んで、整数をint型のラッパークラスを見つけることができ、文字ラッパークラスは、文字、包装タイトル文字の他の種類があります
  • Math.random方法に比べランダムクラスの擬似乱数生成器の利点(複数可)は、、ということです
    • 。あなたには、いくつかの乱数ジェネレータを作成することができます
    • ランダムでBの.theのジェネレータはMath.randomで1よりも効率的です
    • C。あなたは、範囲内のランダムなint型、フロート、及びint値を生成することができます
    • D。あなたは、乱数発生器を初期化し、再初期化することができます
    • E .ALLしかし答えるB
    • すべての乱数発生器の効率は同じです。Math.random以上の乱数発生器の利点は、他のすべてのプロパティが含まれています。
    • 理解:効率が同じです
  • 文字列の収量同じ結果を設定するこれらの二つの方法:
  • a)は文字列=新しい文字列( "123.45"); b)は文字列= "" + 123.45。
    • B .FALSE
    • 「同等、文字列、接続文字列+以下の図は、文字列の形であるように自動的に、文字列に割り当てられている」私は理解しました
  • オブジェクトのカプセル化を維持するために、我々はその1を除いて、次のすべてをしますか?
    • .Makeインスタンスデータは、プライベート
    • B .DEFINEインスタンスのデータにアクセスし操作するクラス内のメソッド
    • C .Makeクラスのパブリックのメソッド
    • D .Makeクラスファイナル
    • 上記の維持カプセル化のE。すべて
    • カプセル化は、クラスは、データとデータを操作するために必要なメソッドの両方が含まれていることを意味します。インスタンス・データはプライベート作られ、方法は、インスタンスデータにアクセスし、操作するために定義されるように適切にカプセルを保持するために、インスタンス・データは、クラスの外部から直接アクセスすべきではありません。他のクラスのオブジェクトを使用できるように、更に、インスタンスのデータにアクセスして操作する方法が公開されています。予約語は、「最終的には」継承を制御するために使用し、カプセル化とは何の関係もありません。
    • 理解:クラスが最終的に設定されている場合、Dは、間違っていなければなりません、それは書き換えることができない、常に抽象クラスのサブクラスをインスタンス化することはできないだろう
  • 各方法は、異なる数を有するか、またはパラメータの種類は次のように知られている場合、同じ名前の複数のクラスのメソッドを有します
    • .encapsulation
    • Bの.information隠蔽
    • Cの.tokenizing
    • Dの.importing
    • E .methodオーバーロード
    • メソッドが同じ名前を共有する場合、それらがオーバーロードされると言われています。メッセージに渡されるパラメータの数およびタイプは、適切なメソッドが呼び出されることにより、情報を提供します。
    • 私は理解します。エラーの理由があるため、本の種類を理解するための知識不足であります
  • 可視性修飾子には、
    • 変数やメソッドのパブリック、プライベート、保護されたコントロールの可視性。変数、メソッド、またはクラスがさらに視認性がない変更または上書きすることができるかどうかを最終的なコントロール。変数またはメソッドは、クラスまたはクラス自体のインスタンスに関連付けられているかどうかを静的制御します。
  • 以下の方法ヘッダー定義は、構文エラーになります。public void aMethodを();
    • B .FALSE
    • それはで終わるので、構文エラーの理由は「;」シンボル。その代わりに、ブラケットの内側0以上の命令と、{}が続くことが必要です。抽象メソッドは、で終了します「;」このヘッダは、抽象メソッドを定義していません。
    • 理解:まず第一に、メソッドの後にコロンを持つことはできません。第二に、それはバックブレースを持っている必要があります
  • すべてのクラス定義は、コンストラクタを含める必要があります。
    • B .FALSE
    • Javaはしかし、このような場合に使用されているデフォルトコンストラクタがあり、クラスがコンストラクタなしで定義することができます。
    • 定義されないことがあり、それはデフォルトコンストラクタを生成します。おくります

ペアピアレビューと

採点

  1. 適切な使用のマークダウン構文(1点):
    • 値下げ余分なポイントを使用しないでください。
    • 構文エラーは、(形成しない、リストが間違っている、リンクが動作しません...)プラスではありません
    • 組版の混乱はプラスではありません
  2. 要素の範囲(1点)テンプレート
    • ポイントなしで「教科書の学習と問題解決のプロセスを」行方不明
    • ポイントなし「のプロセスにおける問題解決やデバッグコード」の欠如
    • マネージコードは、ポイントなしで開くことができません
    • 「ツイニングと相互評価」はポイントなしで開くことができないの欠落
    • 行方不明プラスにすることはできません「先週は間違ったタイトルの検査がまとめました」
    • 「プログレスバー」の欠如がプラスすることはできません
    • 「参照」の欠如はプラスすることはできません
  3. 教科書の学習と問題解決のプロセス、問題1ポイント

  4. コードのデバッグおよび問題は、プロセスに問題が1点を解決します

  5. 週300以上の支店有効なコード(プラス2ポイント)
    • ポイントなし1週間提出未満20倍
  6. その他のプラスのポイント:
    • 金曜日1ポイントの前に髪のブログ
    • 感情、経験は大きな空の1ポイントを残しません
    • 組版の微プラス1ポイント
    • プログレスバーは、学習時間を記録し、1ポイントの状況を改善します
    • ハンズオン新しいコードを書くことがありますが、1ポイントを追加
    • クラスの選択は、1ポイントを確認した後、
    • コードはメッセージ仕様1ポイントをコミット
    • 深さの間違った質問を学ぶ、1ポイントを追加
    • コメントは真剣に、私は、問題やブログのコードに加えて1ポイントを指摘することができます
    • ペアは本物のプラス1ポイントを学びます
  7. ポイント:
    • 盗作は0にバックル
    • 0バックルするコードチート
    • 0バックル後半の割り当て

コメントテンプレート:

  • 学習課題やブログワース:
    • XXX
    • XXX
    • ...
  • コードは、学習や問題価値があります:
    • XXX
    • XXX
    • ...
  • XXのポイント:スコアに基づいて、私はこのブログのレートを与えます。次のようにスコア:XXX

  • 参考例

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

  • ペア今週の学習
    • 20182302
      • ペア学習コンテンツ
      • 特定の操作とインタフェースをとるように学習の概念
      • 包装理解定義されたクラス
      • デバッグ・テスト・プログラムは、コンパイルエラー
  • 先週のブログピアアセスメントケース

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

  • テストの後、私は自分自身だけの教科書は、おそらく多くの詳細はまだ不明知識、改善の余地があることを理解していました
  • 第五章から始めて、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 35/100

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

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

  • プランの学習時間:40時間

  • 実際の学習時間:35時間

  • 状況を改善するために:私は、学習効率のいくつかを改善しようとします

(利用可能なより多くの参照現代のソフトウェア工学コースウェア
ソフトウェアエンジニア自己評価フォームへの能力を

参考資料

おすすめ

転載: www.cnblogs.com/acgacg/p/11614371.html