クラスは、オブジェクトのクラスの状態と動作を説明テンプレートであり、オブジェクトは、オブジェクトクラスのコンストラクタとして知られるプロセスによって作成されたクラスのクラス、インスタンスの特定のインスタンスです。例えば:街灯は、オブジェクトの各クラスは、街路灯クラスです。
1.クラス宣言
クラス宣言の形式
| [パブリック] [抽象最終]クラスは抽象クラスに抽象的、最終的なクラス//クラス名がクラスの声明が続いていることを示しているクラスが継承することはできませんように、クラスの終わりを表し クラスを表す// [スーパークラス名を拡張します]継承された親 [実装インタフェース名リスト] {//クラスがインターフェイスを達成することを示す データメンバ宣言および初期化するステップと、 メソッド宣言とその方法; } 例:WATCHインスタンス パブリッククラス時計{ //メンバ変数 INTの時間、 INT分; INT SECOND; //方法部材 のsetTime(INT newH、NEWM INT、INTニュース)ボイド公共{ 時間= newH; 分= NEWM、 SECOND =ニュース; } 公共SHOWTIMEボイド(){ System.out.printlnは(時間+ ":"分+ + ":" +秒); } }
2.オブジェクトの作成
オブジェクト名は宣言され、オブジェクト型を使用する前にして、キーワードを使用して新しいオブジェクトを作成する必要があります。
Statementオブジェクトの構文:クラス名参照変数名
以下のような::時計は、クラスオブジェクトへの参照を格納するために使用される、参照変数のalockを宣言するために、今宣言されたクラス名です
時計aclock; //この時点では、オブジェクトが、ヌル参照を生成しませんでした
作成オブジェクト構文:新しい<クラス名>()
aclock =新しいクロック(); //オブジェクトのクロック型メモリのメモリ空間を割り当てる、オブジェクトへの参照を返し 参照オブジェクトがヌル値を割り当てることができ aclock =ヌル。
3.データメンバー
データメンバは、オブジェクトの状態は、データの任意のタイプであってもよい示します。
1.宣言データメンバー
[パブリック|保護|プライベート] [静的] [最終] [トランジェント] [揮発性] データ型変数名1 [=変数の初期値]、変数名2 [=変数の初期値]、...; //パブリック、保護プライベートアクセス指定子はれる //静的これは静的メンバ変数であることを示す(クラス変数) //変数の最終値を修正することができません指定 //過渡指定された変数はシリアライズ必要とされない //揮発性指定された変数は、共有変数であります
2.インスタンス変数 - 属性は、オブジェクトを記述します
インスタンス変数と呼ばれる変数(データメンバ)の静的な変更ありません。
属性に必要なすべてのインスタンスを格納し、属性値が異なるインスタンスで異なる場合があります。
ファイルに保存されている//ラウンドCircle.javaクラス、2つのファイルに格納されたテスト・クラス・ファイルShapeTester.java と同じディレクトリに配置// パブリッククラスサークル{ INT RADIUS; } publicクラスShapeTester { メインパブリック静的ボイド(文字列[]引数){ サークルX; X =新しい新しいサークル(); のSystem.out.println(X) のSystem.out.println( "RADIUS =" + x.radius); } } //実行結果 サークル@ 26b249 半径= 0
3.クラス変数
静的修飾、全体クラスで唯一の値は、すべて同じ属性のオブジェクト、または共有データへの頻繁な必要性、またはいくつかのシステムを使用する必要のクラスのクラス初期化を割り当てられています定数値。
引用形式:<クラス名|インスタンス名> <クラス変数名>
クラスサークル{パブリック 静的ダブルPI = 3.1415926; INT RADIUS; } //我々がCircleクラスのインスタンスを作成し、各インスタンスにPIの全く記憶された値がない場合、クラスに格納されたPI値 パブリッククラスClassVariableTester { 公共の静的メインボイド(文字列[]引数){ サークルサークル新しい新しいX =(); のSystem.out.println(x.PI) のSystem.out.println(Circle.PI); Circle.PI = 3.14; のSystem.out.println (x.PI) のSystem.out.println(Circle.PI); } } //実行結果 3.14159265 3.14159265 3.14 3.14
4.メソッドのメンバー
1.文法フォーム
[パブリック|保護|プライベート] [静的] [最終] [抄録] [ネイティブ] [同期] 戻り値の型の名前([パラメータリスト])[スローのExceptionList] { メソッド本体 } //パブリック、保護、管理アクセス専用 この静的メソッドであることを示す//静的 この方法の終わりであることを示す最終// 抽象//これは抽象メソッドであることを示す Javaコードと他の言語のための//ネイティブ統合コード 複数の並行スレッドを制御する同期//共有データへのアクセス //戻り型:Javaは、戻り値が必要とされない場合、戻り型が無効である、任意のデータ型とすることができる @パラメータタイプ:単純データ型、または参照型(配列、クラスまたはインタフェースであってもよいです); パラメータの//数:複数のパラメータがあるかもしれない、パラメータは、メソッド宣言のパラメータは、仮パラメータと呼ばれることができない ローカル変数の宣言文と、すべての正当なJavaを備え、メソッドの実装のために://手順スコーピングのための内部メソッド //のExceptionListをスロー:例外リストを投げます
方法の2例:特定のオブジェクトの振る舞いを表し、元の文は、静的な変更を追加する必要はありません。
コール:アクション/機能のオブジェクトを使用して、メソッドオブジェクトを呼び出すことで、オブジェクトへのメッセージ、。
フォーマット:
<オブジェクト名>。<メソッド名>([パラメータリスト]) <オブジェクト名>は、メッセージの受信者であります
パラメータの受け渡し
1.値が渡される:パラメータのデータ型が基本型であり、引数、パラメータによって渡さ
参照によって渡された2:パラメータタイプは参照型であります
パブリッククラスサークル{ 静的ダブルPI = 3.14159265。 int型の半径; パブリックダブル周囲(){ リターン2 * PI *半径。 } 公共ボイド拡大(INT因子){ 半径=半径*因子。 } パブリックブールfitsInside(矩形R){ リターン(2つの*半径<r.width)&&(2つの*半径<r.height)。 } } publicクラスInsideTester { メインパブリック静的ボイド(文字列[]引数){ 円C1 =新しいサークル()。 c1.radius = 8。 円C2 =新しいサークル(); c2.radius = 15。 矩形R =新しいRectangle()。 r.width = 20。 r.height = 30。 System.out.println( "矩形内1つのフィットサークル:" + c1.fitsInside(登録商標)); System.out.println( "矩形内2つの嵌合サークル:" + c2.fitsInside(登録商標)); } } //运行结果 サークル矩形の内部に1つのフィット:真の 長方形の内側サークル2つのフィット:偽
3.クラスメソッドは:静的な変更を加える必要性を宣言します
クラスメソッドは、abstractとして宣言することはできませんクラス名によって呼び出すことができ、それはまた、直接クラスインスタンスを通じて呼び出すことができます。
//華氏(華氏)に摂氏(摂氏)に変換 パブリッククラスコンバータ{ centigradeToFahenheit(INTセント){int型のpublic static ;リターン(。*セント9 / + 32 5) } } //メソッド呼び出し Converter.centigradeToFahrenheit(40 )
パラメータは、可変長パラメータ、利用可能な省略記号、その本質は、文字列として配列された渡されたときには...、可変長パラメータに渡された実際のパラメータは、ゼロ以上のオブジェクトであってもよいです。
静的二重maxArea(円C、長方形... varRec){ 長方形[] REC = varRec。 用(矩形R:REC){ // ... } } パブリック静的無効メイン(文字列[] args){ 円C =新しいサークル()。 矩形R1 =新しいRectangle()。 矩形R2 =新しいRectangle()。 System.out.println( "Cの最大面積は、R1及びR2は" + maxArea(C、R1、R2))。 System.out.println( "最大面積c及びR1は" + maxArea(C、R1))。 System.out.println( "最大領域C及びR2は" + maxArea(C、R2))。 System.out.println(+ maxArea(C) "のみ、Cの最大面積です")。 }