毎週学習| 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開発チュートリアル