20182327概要を学習の2019-2020-1「オブジェクト指向プログラミングとデータ構造、」第4週
コンテンツの概要を学びます
クラスとオブジェクト(クラス、属性、操作)は、約1.さらなる情報。理解するための簡単なポイントは、クラスを構成するオブジェクトのかなりの数です。
以下のためのクラスを書いている2.分析。(データのカプセル化の例として、視認性改質剤、およびアクセス修飾子)。
UMLのクラス図:構造間とクラス説明クラス3.関係。
分析の方法。(文、パラメータ、ローカルデータ、コンストラクタを返します)。
ソフトウェア開発の4つのプロセス。
6.明確なクラスとオブジェクト(一般的にはオブジェクトという名前のクラスは、一般的に、行動のような動詞の名詞である。)
7.静的変数と静的メソッド。(静的メソッドは、オブジェクトのクラスをインスタンス化する必要はないクラス名を介して呼び出すことができる静的、静的変数は、クラスのすべてのインスタンスで共有できるように方法内のローカル変数を宣言することはできません。)
8クラスの間の関係は、(この章では、依存性について主に関係や集約関係。)
9.は、多くの場合、この文はコンストラクタで使用されています。
10.定数およびインターフェース(Comparableインタフェースとイテレータインターフェース)を含む抽象メソッド。
問題##教科書の学習や決済処理
- 質問1:変数のスコープとは何ですか?
答えは:基準範囲変数は、プログラム領域で参照することができる変数です。クラスレベルのインスタンス変数の中で宣言は、クラスの方法のいずれかによって参照することができます。(仮パラメータを含む)ローカル変数の一つの特定のメソッド宣言では、方法は、参照することができます。
- 質問2:return文がどのように使用するには?なぜもう一度実パラメータを返すことができませんか?
ANSWER:戻り値型のメソッドは、メソッド文と一致しなければならないヘッダ・タイプで指定された値を返します。この方法では、ボイドの戻り値の型として、任意の値を返さないとき。return文は、予約語リターンとそれに続くオプションの表現で構成されています。return文は、呼び出し元のメソッドにすぐに、制御が戻りを実行して、式を定義する式の戻り値を返します。
- 質問3:静的変数と静的メソッドの違いは何ですか?
答え:
静的変数は、2つのケースがある:
クラスとして使用することができ、このクラスのインスタンスを作成する必要はありません外の静的変数は、この場合には、基本データ型で
静的変数が参照されます。この状況は、より特別で、主な問題は、静的変数は、オブジェクトへの参照ですへの参照は、それを指すようにした後、オブジェクトが初期化されなければならないためです。
我々はstaticとして定義された参照をしたいのであれば、その定義の時にオブジェクトを初期化する必要があります。
静的メソッド:クラス変数と異なる方法(静的メソッドとインスタンスメソッド)クラスの多くのインスタンスは、メソッドを共有どんなにメモリで唯一、。
:異なる静的メソッド、インスタンスメソッドは、
静的メソッドを直接使用することができ、及びクラスがインスタンス化された後に方法の例は、オブジェクトによって呼び出されなければなりません。
プロセスで解決コードのデバッグおよび問題
質問1:中国が文字化けIDEA出力を使用します。
質問1つのソリューション:あなたは、通常の出力GBK中国を選択することができます右下隅。
- 質問2:同等のインターフェースを実現
問題2解決策:
文字列にdouble型のフォーマットを使用するためのオリジナルのアイデアは、その後、二重に再変換します。しかし、実際には、この問題の核心は、インターネットと組み合わせたインターフェース、レビューブックを、実装位置し、です。これを解決することができます。
コードホスティング
(ファイル名を指定して実行は、スクリーンショットのstatistics.shスクリプトを結果)
先週試験間違った質問の概要
拡張された(経由間違った質問1:?継承次の概念の派生)クラスのサポート( の概念をサポートするために、以下のクラスの(派生を拡張することによって継承)?)
A.interfaces
B.modulary
C.informationが非表示
D.codeを(コードの再利用)を再利用
E.correctnessの
エラー分析を:クラスを継承し、それを拡張することによって、新しいクラスは、それによって、プログラマのための作業を保存し、方法または任意のインスタンスデータを再実装する必要性を継承します。そのため、それを拡張することによって、あなたのニーズを満たすために、他の人にコードの再利用コードを再利用する機能。親クラスを継承することによって大幅にコードの重複を減らすことができ、彼の選択インタフェースクラスの、彼はインターフェイスを選択する方法がわからない、彼は非常にファンだったと述べました。で、次の間違った質問2 :? Javaクラスに関する真( 以下においても同様であるJavaクラスの、?)
インクルードが持っている必要がありますA.Allクラスは、すべての(1つの親を持っていますが、任意のナンバーチルドレン(派生または拡張)のクラスの月きていますクラスは、親を持たなければならないが、サブクラスの任意の数(拡張または派生)クラスを有していてもよい。)
B.Allクラスを有していなければならない子供がいる。1(拡張または派生)クラスが、上では、親クラスの任意の数有していることができる
Cを。1つの.ALLクラスAの親クラスを持っていなければなら5月SINGLE子(拡張または派生)クラスで持ってきた
D.Allクラスは、任意の数(もっとまたは0)いずれかの親クラスと子どもの数(拡張または派生)クラスのを持っていることができます
e.allクラス0または1親のどちらか持つことができます (派生または拡張)クラスと子供の任意の数のクラス
解析エラー:Javaクラスは、すべての子要素の数が、唯一つの親を持つことができますので、Javaサポートの継承は、それは、多重継承をサポートしていません。すべてのJavaクラスは、オブジェクトクラスから直接または間接的に継承するためまた、すべてのJavaクラスは一つだけの親を持っています。この問題をやって、それが親を持たないので、考慮に最終的な親会社--Objectクラスを取って、そうでは私はEオプションがしかし、先生が言った、私は、問題があなた自身の親として自分自身を参照してくださいクラスオブジェクト可能性があり、選びましたまた、彼は無力だったと述べました。このサブユーズド......間違った質問3:であると宣言された変数 1クラスは、後でこの変数は(として知られ、そのクラスの拡張クラスを参照することができ、クラスで宣言された変数は、後でこの変数が呼び出され、このクラスを拡張するために参照することができます... )
A.protected
B.derivable
C.cloneable
D.polymorphic(多型)
上記のE.noneの一クラスに宣言された変数は、クラスの任意のタイプ、クラスも拡張決してリファレンスOTHERすることができる
エラー解析:長期マルチ状態変数は、多くの形態を取ることができることを意味します。一般的に、Javaは強く変数として定義され、別の型に変更されることはありません、かつて型として宣言されています。(同時に、変数が別の型に一種から変換することができないが)例外的に、多型変数は、派生クラスの任意のタイプであってもよいです。ポリモーフィック質問は、第十章を読んだ後、親クラスによって、オブジェクトの宣言は、あなたはサブクラスは親クラスを継承して参照することができ、この質問への回答を参照してください、この柔軟な運用を継承によって達成され、多型。- 間違った質問4:タイプを決定するために (多型変数が参照するが、判定が行われる。決定した、と呼ばれる多状態変数のタイプを決定するために)
A.byプログラマーでは、書かれた時時にプログラムAT IS
B.byでコンパイルコンパイラ時間AT
オペレーティングシステムでC.byですINTOプログラムメモリにロードされたときに
タイム時環境AT Javaの実行実行時D.by(Javaのランタイム環境を経由してランタイム。)
AT実行時E.byユーザー時間 エラー分析:多型の変数は、多くの異なる種類を含むことができますが、プログラムが実行される前に、それがどのタイプを知りません。変数を参照するときは、決定を下す必要があります。この決定がなされ、最新のランタイム環境変数と分布に従って行われました。この質問は、多状態の問題に関連し、その第十章を読んだ後、低よりも動的結合、事前バインディング効率の問題ですが、ダイナミックバインディング、それはマルチステート柔軟性を反映しています。
間違った質問5:予約語を使用して、スーパー 、1は(でき、予約語のスーパーをすることができます使用)
親class'constructor(S)A.access
B.access親インスタンスのclass'methodsとデータ
「子どもC.accessクラスをコンストラクタ(S)
D.accessインスタンスAと子class'methodsデータ
上のE.none
エラー分析:予約語は、スーパーのデータアクセス方法のためのメカニズムを提供し、(それらが隠されているか否か)親クラスの例。さらに、親クラスのスーパーアクセス構造を使用することが可能です。正解はAとBの組み合わせの選択肢です。間違った質問6:あなたは抽象クラスをインスタンス化した場合 、クラスまたはオブジェクトあなたが(と巻き上げるあなたは抽象クラスをインスタンス化した場合、クラスやオブジェクトがなる)
A.is ANまた抽象クラスは
通常のクラスB.is
C.isをインタフェースAN
D.is ANは、オブジェクトへの参照
、あなたは存在しませE.can'tは、抽象クラスはインスタンス化(存在しない抽象クラスインスタンス化することはできません)することができ
、エラーの分析を:あなたは具象クラスのみではなく、抽象クラスをインスタンス化することができます。しかし、あなたは、抽象クラスとインタフェースを拡張することができます。
サブクラスがするので、(抽象クラスは、実際にインスタンス化することができますが、彼は新しいオブジェクトを通して道のインスタンスを作成する方法はありませんが、親クラスを参照することにより、間接的にインスタンス化された親クラスを達成するためにサブクラスのインスタンスを指すように前者の例としては、まず、彼が作成されますので、サブクラスのオブジェクトは、抽象クラスを継承する親クラスをインスタンス化するだけでなく、インスタンス化するために、親クラス(抽象クラス)を入れて)しかします:インタフェースはインスタンス化することはできません(インタフェースではないコンストラクタ)。間違った質問7:すべてのメソッド派生クラスは、すべてのアクセス持つ親クラスのメソッドを、しかし、親クラスの唯一の保護またはパブリックインスタンスデータ( 派生クラスは親クラスにアクセスすることができますが、唯一の親クラスにアクセスするには保護またはパブリックインスタンスデータ)
A.true
B.falseの
エラー分析:派生クラスはプライベートメソッドにアクセスできないようにする方法としても、プライベートに宣言することができます。したがって、派生クラスは、親クラスで保護され、パブリックメソッド及びインスタンスのデータにアクセスすることができます。私はそう思うの直接の最後の部分で、すべてのメソッドへのアクセスは表示されません。間違った質問8:クラスAParentClassが保護されている場合は 、インスタンスデータxを、そしてAChildClassはAParentClassの派生クラスで、その後、AChildClassがXにアクセスすることができますが、異なるタイプのようにXを再定義することはできません( クラスAParentClassは、保護されたインスタンスデータを持っている場合。 X、及びAChildClassはAParentClassがxにAChildClassアクセスその後、派生クラスであるが、xが別の型に再定義することはできません。)
A.true
B.false間違った質問9
保護された可視性修飾子で、継承を許可別にはまたに使用されている
ため同じ、パッケージ変更の項目で定義された任意のクラスで保護さへのアクセスの許可証でA.
クラスで任意の静的により保護へのアクセスを許可してB.項目
へのアクセス時に許可証にC.保護された任意の親クラスによって、アイテム
クラスA CANないスローNullPointerExceptionがでていることを確認するD.
抽象インタフェースを定義するE.要素
私の答え:B正解
分析:保護されたモード制御のための保護された可視性修飾子プロジェクトへのアクセス。アクセス保護は、(プライベートプロジェクトとして)現在のクラスは、そのような拡張のクラスまたはクラスの同じパッケージに制限されています。間違ったタイトル10
?多重継承の以下の例ではIS ANの
A. Aは、メインフレームコンピュータことができますは、PCまたは
B. A PCは、デスクトップやラップトップAすることができます
ノートPCの両方-PCやポータブルデバイスですC.を
D.デバイスの軽量ポータブルデバイスである
E. MacintoshおよびIBM PCは、パソコンの両タイプがあり
、正しい答えは:C私の答え:E
分析:多重継承は、与えられたクラスが複数の親クラスを継承することを意味します。これらのうち、上記のノートPCは、PCやポータブルデバイスからプロパティを継承します。、BおよびEは、例を継承するために、単一の答えは、少なくとも2人の子供(Aには存在しているクラスは、メインフレームコンピュータは、子供やPCを持っている、B、PC持っている子供のデスクトップおよびノートブック型コンピュータ、E、PC子供MacintoshとIBM PC)を持っています。答えDは、クラスの属性を表します。間違った質問。11
そのクラスの後にクラスの拡張参照することができますの一つのクラスに宣言された変数。として知られているこの変数は、
A.、保護
B.が導き出せる
C.閉鎖可能
D.ポリモーフィック
に宣言された変数BE、のいずれも、上記E.ザ・を1クラスの他のどの参照することはできません 、でも拡張クラスクラスの型を
D私の答え:正しい答え
解像度:多型は、変数が多くの形態を取ることができることを意味します。通常の状況下では、Javaが強く、一度の型の変数として宣言、つまり、定義されているさまざまなタイプになることはありません。(同時に、変数は、ある型から別の型に変更することができるではないが)、これは例外で、多型変数は、派生クラスの任意のタイプであってもよいです。間違ったトピック12は、
使用予約語、スーパー、一つのCAN
A.アクセス親クラスのコンストラクタ(S)
B.アクセス親クラスA 'メソッドおよびデータ・インスタンス
C. A子供アクセスクラスのコンストラクタ(S)
D. A子供のアクセスクラスのインスタンスデータとメソッド
で上記のE.なし
正解:E私の答え:Bの
解析:スーパー予約語は、(関係なく、それらが隠されているかどうかの)メソッドとインスタンスデータアクセス親クラスのメカニズムを提供します。さらに、スーパーコンストラクタは、親クラスにアクセスするために使用することができます。したがって、正解はAとBの組み合わせである、これはオプションではないので、正解はEであります間違った質問13
宣言はならない理由は抽象メソッドである、決勝?
A.は、そうすることには何もありません
B.は抽象メソッドは、彼らとAはコンクリートクラスでこれまでしようとする場合でなければなりませんが、インスタンス化さ上書きすることができない
長い方法、抽象的で、AS(SO)C.を実際には他の方法によってで使用されていないん,,このことには問題ありません
限り、抽象メソッドでASのD.は、クラス(ないインターフェイス)で宣言され、このやっていないと何も間違っありません
上記するATのE.なし
正しい答えは: B私の答え:E
分析:抽象メソッドは、コンクリートになるようにするためには、それをカバーしなければなりません。最終的な宣言は、それをカバーすることは不可能である、方法です。これは矛盾である、禁止されています。間違ったタイトル14
もしクラスA AParentClassはX-保護されたインスタンスのデータを持っている、とAChildClassができますが、ないタイプの異なるXが-BE再定義にX-CAN AParentClassの派生クラス、そしてAChildClassアクセスです。
trueにA.
B.偽
正しい答え:私は答えるB :
解像度:派生クラスは、親クラスの任意のインスタンスデータまたはメソッドを再定義することができます。親クラスのバージョンは現在隠されているが、ちょうどでsuper.xのように、スーパーの使用を介してアクセスすることができます。間違った質問15
クラスワン別から継承することができているが、でも、抽象クラスは、インタフェースに継承することができません。
trueにA.を
B.偽
正しい答え:私の答えB
解像度:インターフェイスが共通の継承されたクラスが持っているすべての属性を持っています。したがって、あなたは、クラスの継承階層として作成することができます同じように、インターフェイスの継承階層を作成することができます。しかし、あなたが行うことができない、彼らは実装しなければならないインスタンスです。ペアピアレビューと
採点
- 適切な使用のマークダウン構文(1点):
- 値下げ余分なポイントを使用しないでください。
- 構文エラーは、(形成しない、リストが間違っている、リンクが動作しません...)プラスではありません
- 組版の混乱はプラスではありません
- 要素の範囲(1点)テンプレート
- ポイントなしで「教科書の学習と問題解決のプロセスを」行方不明
- ポイントなし「のプロセスにおける問題解決やデバッグコード」の欠如
- マネージコードは、ポイントなしで開くことができません
- 「ツイニングと相互評価」はポイントなしで開くことができないの欠落
- 行方不明プラスにすることはできません「先週は間違ったタイトルの検査がまとめました」
- 「プログレスバー」の欠如がプラスすることはできません
- 「参照」の欠如はプラスすることはできません
教科書の学習と問題解決のプロセス、問題1ポイント
コードのデバッグおよび問題は、プロセスに問題が1点を解決します
- 週300以上の支店有効なコード(プラス2ポイント)
- ポイントなし1週間提出未満20倍
- その他のプラスのポイント:
- 金曜日1ポイントの前に髪のブログ
- 感情、経験は大きな空の1ポイントを残しません
- 組版の微プラス1ポイント
- プログレスバーは、学習時間を記録し、1ポイントの状況を改善します
- ハンズオン新しいコードを書くことがありますが、1ポイントを追加
- クラスの選択は、1ポイントを確認した後、
- コードはメッセージ仕様1ポイントをコミット
- 深さの間違った質問を学ぶ、1ポイントを追加
- コメントは真剣に、私は、問題やブログのコードに加えて1ポイントを指摘することができます
- ペアは本物のプラス1ポイントを学びます
- ポイント:
- 盗作は0にバックル
- 0バックルするコードチート
- 0バックル後半の割り当て
レビュー
- 学習課題やブログワース:
- 学生は非常に簡単にブログに戻っての様々なスクリーンショットで発生したエラーを意識してきた、私はいつも戻って一度だけノックするのを忘れ。
- コードは、学習や問題価値があります:
- すべての道はローマに通ず、多くの学生は本当に感心説明し、それらを聞いた後、コードカーブ思考を思い付くことができます。
11ポイント:スコアに基づいて、私はこのブログの得点を与えます。次のようにスコアがある:1つの適切な使用のマークダウン構文の問題と問題+2気持ち+2コードのデバッグと解決のプロセスを解決する教育学習過程で、経験は綿密なレビューを学ぶために、大きな空+1 +1間違った質問を残さない.....真剣に、私は、問題やブログ、コード1。ペア+1本格的な学習を指摘することができます。放課後のタイトル検証+1、+1記録プログレスバーがあります。
コメントは、学生のブログやコードを持っていました
- ペア今週の学習
- 20182305
- ペアの写真
- ペア学習内容
1.(一般的にはクラスという名前のオブジェクトは、名詞、一般的行動などの動詞である。)クラスとオブジェクトを識別します
。2.静的変数と静的メソッド。(静的メソッドは、オブジェクトのクラスをインスタンス化する必要はないクラス名を介して呼び出すことができる静的、静的変数は、クラスのすべてのインスタンスで共有できるように方法内のローカル変数を宣言することはできません。)
3.クラス間の関係は、(この章では、依存性について主に関係や集約関係。)
4。は、多くの場合、この文はコンストラクタで使用されています。
- 先週のブログピアアセスメントケース
その他(知覚、思考、など、別売)
- 各レッスンの試験は、非常に多くの英語一方的、ジャワの問題だけではなく、私を作った知識から、教科書の異なるバージョンは、より多くのトラブルを発見するために、解決すべき多くの問題が、あります。
- 過去の4週目には、独立しIDEAは、いくつかのプログラムを書いていますが、それでも複雑ではない、コマンド文字クラスを使用することができ、まだ不慣れですが、また、より多くの練習を見に。
- 演習が完了すると、一度もGitのJUnitの設定を忘れて、次にGitは唯一繰り返すことができ、設定、UMLの熟練した使用を必要とする緊急性もあります。
学習の進捗バー
コードの行の数(/蓄積を追加) | ブログ量(/蓄積を追加) | 学習時間(/蓄積を追加) | 重要な成長 | |
---|---|---|---|---|
目標 | 5000行 | 30 | 400時間 | |
最初の週 | 200/200 | 2/2 | 20/20 | |
第二週 | 350/500 | 2/4 | 38分の24 | |
第3週 | 512/1000 | 3/7 | 60分の22 | |
4週 | 1158/1300 | 4/9 | 90分の35 |