シューティングゲーム初日:
1. 6つのオブジェクトクラスを作成し、Worldクラステストを作成
シューティングゲームの2日目:
1. 6つのオブジェクトクラスに構築メソッドを追加してテストする
シューティングゲームの3日目:
1.小さな敵の飛行機、大きな敵の飛行機、小さな蜂、弾丸配列をテストし、テストする
2. FlyingObjectスーパークラスをデザインする、6つのオブジェクトクラスがそれぞれ継承する
3. FlyingObjectスーパークラスの2つの構築メソッドをデザインする、オブジェクトクラスは個別に呼び出されます
ゲーム日撮影撮影:
1.小敵のアレイ、ミツバチの組み合わせFlyingObjectアレイ、及び試験の敵少数の大きなアレイ
スーパーオブジェクトクラス6(2.書換ステップ)移動させる
3.絵を窓
シューティングゲーム5日目:
1.クラスのメンバーにアクセス制御修飾子
を追加します。2. 6つのオブジェクトクラスに画像属性を追加します。
レビュー:
1.上位モデリング:
1)スーパータイプ参照は派生クラスのオブジェクトを指します
2)指摘できること、参照のタイプを参照してください
2.メソッドのオーバーライド(オーバーライド):
1)親クラスと子クラスで発生し、メソッド名は同じです、パラメーターリストが同じで、メソッド本体が異なる
2)rewriteメソッドが呼び出されたときに、オブジェクトのタイプを確認します
3.書き換えとオーバーロードの違い:
1)書き換え:
親クラスと子クラスで発生し、メソッド名は同じで、パラメーターリストは同じですメソッド本体は
、メソッドを呼び出すオブジェクトタイプに応じて「ランタイム」が異なります
2)オーバーロード:
クラスで発生し、メソッド名は同じで、パラメーターリストが異なります。メソッド本体は
「コンパイル時」が異なります。メソッドをバインドするためのリファレンス/パラメータータイプを参照してください
注:
1.パッケージ:
1)役割:クラスの名前の競合を回避するため
2)パッケージ名は階層構造を持つことができ、同じパッケージ内のクラスは同じ名前にすることはできません
3)クラスの完全な名前:パッケージ名。クラス名
4)提案:パッケージ名のすべての文字インポートはすべて小文字
です:
1)同じパッケージ内のクラスには直接アクセスでき
ますが、異なるパッケージ内のクラスには直接アクセスできません。これらにアクセスする唯一の方法は次のとおりです:
1.1)宣言クラスを最初にインポートしてからクラス
1.2を使用することをお勧めします。 ---------扱いにくい、推奨されない
2.アクセス制御修飾子:
1)パブリック:パブリック、任意のクラス
2)プライベート:プライベート、このクラス
3)保護:保護、このクラス、派生クラス、同じパッケージクラス
4)デフォルト:何も書き込まれず、このクラス、同じパッケージクラスの
説明:
1)クラスのアクセス変更は、パブリックまたはデフォルトのみにすることができます
2)クラスのメンバーのアクセス変更は、上記の4にすることができます
3.final:最終的な、低-----単独不変
1)変更する変数:変数は変更することができない
方法を書き換えることはできません:2)改質方法
3)変更カテゴリー:クラスが継承することができない
4.static :静的
1)静的変数:
1.1)静的で装飾
1.2)メソッド領域に格納されたクラスに属し、コピーは1つだけ
1.3)クラス名ポイントを通じて頻繁にアクセスされる
1.4)使用するタイミング:すべてのオブジェクト(画像、オーディオ、ビデオなど)によって共有されるデータ
2)静的メソッド:
2.1)静的メソッドにより変更
2.2)クラスに属し、メソッド領域に格納される、 1つだけのコピー
2.3)はクラス名を通じてアクセスされることが多い
2.4)静的メソッドは暗黙的にこれを渡さず、
静的メソッドはインスタンスメンバーに直接アクセスできない
2.5)使用する場合:メソッドの操作はパラメーターではなくオブジェクトにのみ関連する
3)静的ブロック:
3.1)クラスに属し
、クラスが1回だけ読み込まれるため、クラスの読み込み中に自動的に実行されます。したがって、静的ブロックは1回だけ実行されます
。3.2)使用するタイミング:静的リソース(画像、オーディオ、ビデオ)の読み込み/初期化
演習:
1.プログラムが正常に動作することを確認します
。2.飛行機を例に取り、静的と例の画像の違いを体験し
ます。3.静的な最終定数をプレビューします
。4.昨日に基づいて今日のプロジェクトコードを2回書き換えます
火曜日----------オブジェクトの描画(移動なし)
水曜日は----------オブジェクトが移動
----------木曜日オブジェクトが移動する
敵弾と戦う----------金曜日
---月曜日-----ヒーローは敵とクラッシュします
画像の読み取り-----ファイルの読み取りと書き込み(IO)
ファイルIO操作は特に例外が発生しやすい
----したがってJavaは必須であり、ファイル処理を実行するときは例外処理を追加する必要がある
background.png
画像------- int、int []
------- BufferedImage
すべてのオブジェクトには画像があり、その場合はスーパークラスに配置する必要があります
--------ここでスーパークラスに配置することは適切ではありません-----
各オブジェクトの画像は同じ---派生クラス
描画ウィンドウ
オブジェクトの写真を準備する
オブジェクトのペイント-------------
Arrays.sort(arr);
sort()が静的ではないと仮定します
。a1、a2、a3、...、a100のどのオブジェクトでも、---
()に移動すると、最終的な結果は同じです----- sort()に
注意してください操作はパラメータにのみ関連し、オブジェクトには関連しません 。Arrays
a1 = new Arrays();
a1.sort(arr);
配列a2 = new Arrays();
a2.sort(arr);
配列a3 = new Arrays();
a3.sort(arr);
double d = Math.sqrt(25);
sqrt()が静的でないと仮定します:
m1、m2、m3、...、m100のどのオブジェクトにも関係なく、---
sqrt(25)に移動すると、最終結果は次のようになります。同じ-sqrt
()の操作はパラメーターではなくオブジェクトにのみ関連していることを示しています
数学m1 = new Math();
double d = m1.sqrt(25); //5.0
数学m2 = new Math();
double d = m2.sqrt(25); //5.0
数学m3 = new Math();
double d = m3.sqrt(25); //5.0
Scanner scan = new Scanner(System.in);
int a = scan.nextInt();
double b = scan.nextDouble(); ----------例の方法
double c = Math.random();
double d = Math.sqrt(25);
int [] b = Arrays.copyOf(arr、6);
Arrays.sort(arr); ----------------------静态方法
インスタンス変数または静的変数は他にありますか?----------複数のインスタンス変数-多くの
インスタンスメソッドまたはより多くの静的メソッド--------多くのインスタンスメソッド
すべての小さな敵機
------- planet.png (1部)Baiduの音楽は、山をパトロールするように私に電話するように王に聞いています)
IQiyi Vampire Diariesシーズン8エピソード1 --- xi.avi(1部)
100機の敵機---小さな敵機
ヒープ:新しいオブジェクト(インスタンス変数を含む)
スタック:ローカル変数(メソッドパラメーターを含む)
メソッド領域:.classバイトコードファイル(メソッド、静的変数を含む)
メンバー変数:
1)インスタンス変数:静的に変更されないもの、オブジェクトに属し 、オブジェクト名を介してアクセスされるヒープ内に
いくつかのオブジェクトがあります2)静的変数:staticによって変更されるもの、クラス、メソッド領域に属します、 クラス名ポイントによってアクセスされる 1つのコピーのみ
クラスAoo {
int a;
静的整数b;
}
デフォルトの装飾には推奨されません
変数プライベート、スーパークラス変数保護
メソッドpublic
データ(変数)プライベート
動作(メソッド)パブリック(パブリック)
class Card {
private String cardId;
プライベート文字列cardPwd;
プライベートダブルバランス;
public boolean payMoney(double money){
if(balance> = money){
balance- = money;
trueを返します。
} else {
falseを返します。
}
}
public boolean checkPwd(String pwd){
if(cardPwd.equals(pwd)){
return true;
} else {
falseを返します。
}
}
}
パッケージjava.util;
クラスScanner {
Scanner(Stream s){
}
int nextInt(){
}
double nextDouble(){
}
String next(){
}
}
import java.util.Scanner;
Scanner scan = new Scanner(System.in);
int a = scan.nextInt();
double b = scan.nextDouble();
文字列s = scan.next();
民生銀行
会社A:
パッケージcom.abcd;
クラスAoo {
}
会社B:
パッケージcom.mbcd;
クラスAoo {
}
勧告:--------------理解して
ドメイン名を抗書き込みモジュールのクラス名のプロジェクト名...
Cn.tedu aproject stumanager ...
Cn.tedu aproject teachmanager ...
cn.tedu。bproject。
com.taobao
com.baidu
パッケージabcde;
クラスAoo {//a.Aoo
}
パッケージbmqny;
クラスAoo {//b.Aoo
}
プロジェクト---------コミュニティ
パッケージ----------建物+ユニット
カテゴリ-----------家