oo.day06

シューティングゲーム初日:
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
}


プロジェクト---------コミュニティ
パッケージ----------建物+ユニット
カテゴリ-----------家

元の記事を33件投稿しました 賞賛されました4 訪問2726

おすすめ

転載: blog.csdn.net/qq_41650000/article/details/81107394