毎週学習| 3月の第4週

wow CSDNの編集ページを更新しました(^ - ^)昔
はもっと便利になりました。

1.学習内容

1.概要

  • 例外処理
  • 包括的なプロジェクト3:開発チームのスケジューリングソフトウェア
  • 高度な記事-マルチスレッド
  • 高度な記事-一般的に使用されるカテゴリ

2.具体内容

例外処理

  • 例外処理メカニズム:(2つのメソッド)
    最後にcatchを試行:一般的に使用される、{例外を閉じる}キャッチを試行(例外タイプ){例外メソッドを処理}最後に{実行されるコンテンツ}
    throws:上位にスロー
  • 例外オブジェクトを手動でスローし、catchおよびthrowメソッドを
    スローします。スロー:2種類、システムが自動的にスロー、スロースロー(負の入力など)を
    キャッチ:2種類、最後にキャッチを試行、スロー

ここに画像の説明を挿入

プロジェクト3開発チームのスケジューリングソフトウェア

domain-Javabeanクラスが配置されているパッケージ

従業員およびサブクラスプログラマー、デザイナー、アーキテクト
インターフェイス機器および実装クラスノートブック、PC、プリンター

基本的なクラスの作成

サービス固有の実装モジュール

NameListService:
従業員[]配列のデータのデータをカプセル化するための責任に関連する業務を提供しながら、従業員[]メソッド
ここに画像の説明を挿入
社員[] IDの名前、年齢、給与賞与ストック位置デバイスを充電
配列の数構築する1.最初のデータ
2.合計ID名Data.EMPLOMMES [i]は[1]を取得して年齢を支払う
int型へ*注Integer.parseIntのint型の二重使用のタイプの文字列を
[]例えば、二重給与= Integer.parseInt(Data.EMPLOYEES [I ] [4 ]);
3.スイッチを使用(タイプ)
{ケースxxx:
休憩; ...
}
タイプに応じて、対応する機器とボーナス、株式、ポジションを抽出します。
[例]従業員[i] =新しいアーキテクト(ID、名前、年齢、給与) 、備品、ボーナス、在庫);
4.3で取得した備品はメソッドとして記述できます。createEquipment(i)
は、スイッチケース
[eg]
double price = を使用して、Data.EQUIPMENTS [] []配列のタイプに従って対応するテキストコンテンツを生成します。Double.parseDouble(Data.EQUIPMENTS [i] [2]);
新しいNoteBook(モデル、価格);
5.すべての従業員のメソッドを取得getAllEmployees()は
直接従業員を返します;
6.指定されたIDの従業員メソッドを取得getEmployee(int id)throws TeamException {
*指定された従業員の例外が見つからないことに注意してください
【eg】throw new TeamException(「指定されたものが見つかりません従業員 "); //例外をスローします
ここに画像の説明を挿入


開発チームメンバーのTeamService 管理:追加、削除など
ここに画像の説明を挿入
1.属性
カウンター:1 ++からのメンバーID [静的int]
MAX_MEMBER:開発チームの数を制限[最終int]
プログラマー[]チーム:アレイチーム、開発チームメンバーを保存
合計:開発チームの実際の人数を記録します[int]
2.getTeam()
開発チーム
チームのすべてのメンバーを取得します[i] = this.team [i];
3.addMember(Employee e)throws TeamException {
指定された従業員を
3.1 開発チームでのエラー
、そのメンバーは開発者ではないため追加できない




というエラーが報告されます従業員はすでに開発チームに属しています(isExitメソッドを使用)従業員はすでにチームのメンバーです(ステータスステータスで判断)メンバーは休暇中であり、追加できませんチームに含めることができるアーキテクトは最大1人です。チームに含めることができるデザイナーは最大2人です。チームに含めることができるプログラマは最大3人です。
[例]このメンバーは開発者ではないため
、(!(E instanceof Programmer)){
throw new TeamException( "このメンバーは開発者ではないため、追加できません");
}
[例]ステータスを確認する
従業員はすでにチームのメンバーです(ステータスによる判断)従業員は休暇中であり、追加できません
// 1.強制
プログラマーp =(プログラマー)e;
// 2.判断ステータス
if(“ BUSY” .equals(p。 getStatus()。getNAME())){//前に注意してください、nullポインタエラーの可能性があります
新しいTeamException( "従業員はすでにチームメンバーです");
} else if( "VOCATION" .equals(p.getStatus( ).getNAME())){
throw new TeamException( "このメンバーは休暇中のため、追加できません");
}
3.2制限に達すると、エラーが報告されます
//チームの既存のメンバーのアーキテクト、デザイナー、プログラマーを取得します多くの
IF(チーム[I]のinstanceofアーキテクト){
++ numOfArch;
//現在のカテゴリpを取得
IF(アーキテクトのinstanceof P){
IF(numOfArch> = 1。){
スロー新しい新TeamException(「チームが持つことができ、最大1つの建築家”);
}
} Else if(p instanceof Designer){ 必要なif(){if()…}の記述と、小さな弧から大きなProへの順序に
注意してください
&&ライティングを使用すると、アーキテクトがいっぱいになったときに、アーキテクトに加わると、アーキテクトはデザイナーとして扱われ、elseに参加します。
論理的に理解
3.3結合
//
チームの追加[合計++] = p;
//ステータス
p.setStatus(Status.BUSY);
// mID
p.setMemberId(counter ++);
4. delete
removeMember(int memberId)throws TeamException {
// BREAKを見つけるために、FREEに、状態を発見したチームIDを横断するため1
(I ==合計){//私が最終的に合計が一致しないことが知られている場合は、//エラーが
スロー新しい新しいTeamExceptionは(「指定を見つけることができませんStaff memberId、delete failed ");
}
// 2 delete — j-1 = j; total-1 = null;

モジュールを表示

対応する出力インターフェイスを
記述し、whileループが使用されない場合と使用されない場合に注意する

 switch (menu){
               case '1':
                   getTeam();//显示团队成员列表
                   break;
               case '2':
                   addMember();//添加成员
                   break;
               case '3':
                   deleteMember();//删除成员
                   break;
               case '4':
                   System.out.println("确认是否退出(Y/N):");
                   char isExit = TSUtility.readConfirmSelection();
                   if (isExit == 'Y'){
                       loopFlag = false;
                   }

ここに画像の説明を挿入
ここに画像の説明を挿入

高度な記事-マルチスレッド

スレッドの作成(4つの方法)

スレッドの継承、
実行可能インターフェースの
実装、呼び出し可能インターフェースの実装、
スレッドプールの使用(一般的に使用されます)

スレッドセーフティの問題を解決する(3つの方法)

同期されたコードブロックが同期されました(同じ同期モニター){}
同期メソッドprivate synchronized void show(){}
ロックロックmanual.lock .unlock

高度な記事-一般的に使用されるJAVA

文字列...内部で作成された場所

ここに画像の説明を挿入

3.発生した問題と反映(80/100)

  • IDEAのショートカットキーに慣れていない
    ため徐々に蓄積し、一般的な操作をショートカットキーに置き換えます
  • IDEAプロジェクトのパッケージ間の関係がよくわかりません
  • Huawei社のソフトウォームアップマッチを選ぶ...それは働いてます...でもインポートデータ
    検索機能を強化するために、Baiduは場所ではありません
    し、他のシステムの完成とルック

2.来週の計画

  • 高度なステージに進む
  • ハードウェアソフトピックのトピック
  • Android開発チュートリアル
オリジナルの記事を14件公開 Likes0 訪問数575

おすすめ

転載: blog.csdn.net/weixin_44618426/article/details/105167181