1つのパッケージ
- 組織コードは、名前の競合を避けます
- アンチパッケージ、ファイルシステムと整合パッケージレベル命名されているドメイン名を使って書かれました
パッケージ内のJDK:
java.io:IO処理動作
java.nioの:新しいIO
のjava.lang:基礎クラスの
持つjava.math:算術
java.net:ネットワークプログラミング
のjava.sql:リレーショナルデータベース操作の
java.time:日付時刻操作
java.utilの:フレームセット、ツール
パッケージのクラスを使用して、インターフェイス....
インポートパッケージ* ;.
インポートpackage.class。
同じパッケージ名で異なるクラスを使用する場合は使用して完全修飾クラス名であり
特別な注意:java.langのクラス、明示的にインポートせずに
静的インポート:インポート静的package.class.staticFiled / staticMethod
Eclipseは、Ctrlキー+導入+ Oの最適化をシフト
導入は、クラスが認識されません
削除されますが、インポートされたクラスの
import文、特定のルールの順序に従って
2、アクセス制御修飾子
プライベート:それは修正プロパティやメソッドのみのパッケージの目的を達成するために、このクラスにアクセスできることを意味し、プロパティ(メンバー)、メソッド、クラス(インナークラス)を変更することができます
デフォルト:あなたはプロパティ、メソッドを変更することができ、noキーワードを、クラスは、現在のパケットへのアクセスのみに変更した属性、メソッドまたはクラス、意味
保護を、(主に定義されたコール・サンズ以内)
公共:それはプロパティ(メンバー)を変更することができ、メソッド、クラス、意味変更されたプロパティ、メソッドまたはクラスが任意のコードをアクセスすることができます
デザインの原則:最も厳しいアクセス制御から(プライベート)、アクセス制御複数のキーワードを使用して、開始
実際の開発を:クラスのほとんどは公開され、クラスのメソッドのほとんどは公開され
、現在推奨:宿泊施設には、プライベート使用する必要があり、値を取得するにはセッターとゲッターpublicを使用。
属性の名前付けに:1を、単一の文字を使用しないでください(例:N-); 2、小文字の最初の文字属性(のuName)の使用だけではなく
お勧めします。名詞1、2、下ケース3に少なくとも2つの文字、複数を始めます。単語、2番目の単語は、スタートを大文字
図1に示すように、ユーザ宣言(ユーザ)クラスは、名前(名)、性別(ジェンダー)、誕生日(生年月日:1990年1月2日)、属性
2を、その大きさを述べてユーザ管理(のUserManager)クラスを宣言その属性としてアレイ10人のユーザ(ユーザ)
の定義方法の追加(ユーザ)のユーザ順次、ユーザに追加のアレイが一杯になると、サイズの新しいアレイ1.5倍アレイ(膨張)、元のユーザーを生成しますそして中に保存するために新しいユーザーを追加し、実際には、配列(ArrayListの)の容量の動的な増加をもたらしました
図3に示すように、書き込みテストクラス、テストの主な方法
パブリッククラスユーザー{ プライベート文字列名; プライベート文字列性別; プライベート文字列の誕生日。 パブリック文字列のgetName(){ 名前を返します。 } 公共ボイドのsetName(文字列名){ this.name =名。 } パブリック文字列getGender(){ 性別を返します。 } 公共ボイドsetGender(文字列性別){ this.gender =ジェンダー。 } パブリック文字列getBirthdate(){ リターン生年月日。 } 公共ボイドsetBirthdate(文字列生年月日){ this.birthdate =生年月日。 } }
パブリッククラスのUserManager { プライベートユーザー[]ユーザ=新しいユーザー[2]。 プライベートint型NUM = 0; 公共ボイド追加(ユーザU){ IF(NUM == users.length - 1){ ユーザーの[]は、x =新しいユーザ[users.length * 3/2]。 {(; iがusers.lengthを<I ++は、I = 0 INT)のために X [i]はユーザー[I]を=。 } ユーザー= xと; } ユーザーが[NUM] = U。 NUM ++; } 公共ボイドショー(){ ため(INT i = 0; I <NUM; iは++){ System.out.print(ユーザ[I] .getName()+ "「)。 System.out.print(ユーザー[I] .getBirthdate()+ "「)。 System.out.print(ユーザー[I] .getGender()+ "「)。 } } }
パブリッククラスTest { パブリック静的な無効メイン(文字列[] args){ // TODO自動生成方法スタブ のUserManagerのUserManager =新規のUserManager()。 ユーザーUSER1 =新しいユーザー(); ユーザuser2 =新しいユーザー(); user1.setBirthdate( "19980101"); user1.setGender( "男"); user1.setName( "suxiao"); userManager.add(USER1)。 userManager.show(); System.out.print( "\ n")を。 user2.setBirthdate( "19980101"); user2.setGender( "男"); user2.setName( "suxiao"); userManager.add(USER2)。 userManager.show(); System.out.print( "\ n")を。 ユーザーUSER3 =新しいユーザー(); USER3。 USER3。 user3.setName( "suxiao"); userManager.add(USER3)。 userManager.show(); } }
3、staticキーワード
使用シナリオ:
1つの変更した属性:すべてのインスタンスが財産を共有し、直接保存システムグローバル変数のクラス名プロパティを使用して呼び出されたときにインスタンス化する必要はありません。
2修正方法:直接クラス名メソッドを使用して呼び出されたときにインスタンス化する必要はありませんが、達成するために適用しました別のツール方法
3静的インポート:
4静的コードブロック
5つの静的内部クラス
4、コンストラクタ
構文:クラス名やメソッド名がまったく同じに配置され、そこには戻り値の型がなく、他の一般的な方法一貫した
効果:インスタンスを初期化:デフォルトパラメータを読んで、初期値が割り当てられた属性が....
特長:明示的な設定した場合この方法は、コンパイラはクラス修飾子のアクセス制御と一致している、引数なしのデフォルトコンストラクタを作成する
明示的なコンストラクタは、引数なしのデフォルトコンストラクタが存在しない場合
使用方法:新しいコールを使用し、または呼び出すためにスーパーに使用
TM:
特長:
1:レジスタ
2、ユーザのログイン
3、チェック残高
4、預金
5、引出し
6、転送
7、退出
クラスデザイナー:
ユーザー
ユーザーActionクラス
の業務用クラス
のグローバルデータは、クラス保存する
テストクラスを
パブリッククラスユーザー{ プライベート文字列名; プライベート文字列のパスワード。 プライベートダブルバランス。 プライベートブールislogin。 パブリック文字列のgetName(){ 名前を返します。 } 公共ボイドのsetName(文字列名){ this.name =名。 } パブリック文字列getPasswordに(){ 戻りパスワード。 } 公共ボイドするsetPassword(文字列のパスワード){ this.password =パスワード。 } 公共ダブルgetBalance(){ 戻りバランス; } 公共ボイドsetBalance(ダブルバランス){ this.balance =バランス; } パブリックブールisIslogin(){ islogin返します。 } 公共ボイドsetIslogin(ブールislogin){ this.islogin = islogin。 } }
パブリッククラスUserpro { 公共ボイドyanzheng(ユーザU){ ため(INT i = 0; I <database.num; iは++){ IF(。database.users [I] .getName()に等しい(u.getName())) { のSystem.out.println( "用户の已の存在")。 返します。 } } database.users [database.num] = U。 database.users [database.num] .setBalance(0)。 database.num ++; System.out.print( "用户注册成功"); } 公共ボイドログイン(文字列名、文字列のパスワード){ int型のx = 0。 以下のために(; iはdatabase.users.lengthを<; I = 0 int型私は++){ IF(。database.users [I] .getName()に等しい(名前)){ IF(database.users [I] .getPassword()。等しい(パスワード)){ database.users [I] .setIslogin(TRUE)。 System.out.print( "登陆成功"); X = 1。 ブレーク; } } } もし(x == 0){System.out.print( "cowu");} } }
パブリッククラスYewuopr { でます。public void(文字列名、二重のお金は){ のために(int型私= 0;私<database.num、私は++){ 場合(。database.users [i]の.getName()のequals(名)){ database.users [I] .setBalance(お金+ database.users [I] .getBalance())。 System.out.print( "存钱成功"); ブレーク; } } } 公共ボイドアウト(文字列名、二重お金){ {(; I <database.num I ++は、I = 0をINT)するための (。database.users [I] .getName()に等しい(名))場合、{ データベース.users [I] .setBalance(database.users [I] .getBalance() -お金)。 System.out.print( "取钱成功"); ブレーク; } } } 公共ボイドショー(){ 以下のために(INT i = 0; I <database.num; I ++){ System.out.print(database.users [I] .getBalance())。 } } 公共ボイドZZ(文字列名、文字列NAME2、二重お金){ int型、P = 0。 int型のq = 0; 以下のために(INT i = 0; I <database.num; iは++){ IF(database.users [I] .getName()に等しい(名前)){ P = 1、Q = I。 } } (i = 0、int型、I <database.num; iが++)のために(P == 1){場合{ 場合(database.users [I] .getName()に等しい(NAME2)){ database.users [Q ] .setBalance(database.users [Q] .getBalance() -お金)。 database.users [I] .setBalance(database.users [I] .getBalance()+お金)。 System.out.print( "zhuan钱成功"); ブレーク; } } } } }
パブリッククラスデータベース{ 静的ユーザー[]ユーザー=新しいユーザ[10]。 静的int型NUM = 0; }
インポートjava.util.Scanner; パブリッククラスTest2を{ パブリック静的無効メイン(文字列[] args){ // TODO方法スタブ自動生成 スキャナスキャナ=新しいスキャナ(System.in)。 Userpro userpro =新しいUserpro(); yewuopr Yewuopr =新しいYewuopr(); 一方、(TRUE){ System.out.print( "请选择操作1、注册、2、登录")。 INT X = scanner.nextInt()。 もし(x == 1){ ユーザーUSER1 =新しいユーザー(); System.out.print( "用户の名"); user1.setName(scanner.next())。 System.out.print( "密码"); user1.setPassword(scanner.next())。 userpro.yanzheng(USER1)。 ; System.out.print( "\ N-")の } 他{ ユーザー新しい新しいUSER1 =ユーザー(); System.out.printの( "ユーザ名"); 文字列名= Scanner.next(); のSystem.out.print( "パスワード"); 文字列のパスワード= Scanner.next(); ; userpro.login(名、パスワード) ; System.out.print( "\ N-")の 真の一方(){ System.out.printの(「サービス1を選択、預金、2、引き出し、3、4ショー転送"); INT scanner.nextInt X1 =(); IF(X1は== 1){ System.out.print(の"ユーザ名量「); 文字列NAME1 =スキャナ。次の()。 ダブルお金= scanner.nextDouble(); (お金、NAME1)yewuopr.in。 System.out.print( "\ n")を。 }そうであれば(X1 == 2){ System.out.print( "用户名金额")。 ストリングNAME1 = scanner.next()。 ダブルお金= scanner.nextDouble(); yewuopr.out(NAME1、お金)。 System.out.print( "\ n")を。 }他(X1 == 4){もし yewuopr.show()。 System.out.print( "\ n")を。 }そうであれば(×1 == 3){ System.out.print( "用户名用户名金额")。 ストリングNAME1 = scanner.next()。 ストリングNAME2 = scanner.next()。 ダブルお金= scanner.nextDouble(); yewuopr.zz(NAME1、NAME2、お金)。 System.out.print( "\ n")を。 } } } } } }
今の仕事は、長い書き込みます。。。。。。。。。。。。彼は疲れて見えました