*匿名内部クラスエッセンス
*基本的に:継承されたクラスまたはサブクラス実装インタフェース匿名オブジェクトその
*は匿名内部クラスを詳述
する*匿名内部クラス許容できる多形型
`` `Javaの
インター新しい新しいI =インター(){
@Override
公共ボイド方法(){
}
}
``
*匿名の内部クラスは、メソッド呼び出し
`Javaの
間のインタフェース{
ボイド方法();
}
クラスのテスト{
公共の静的な無効メイン(文字列[] args) {
新新インター(){
@Override
ます。public void方法、(){
System.out.printlnは( "私は匿名内部クラスだ");
}
} .method(); //は、直接メソッドを呼び出します
}
}
`` `
(アプリケーション)の開発に使用される### 2.4匿名内部クラス
*匿名内部クラスは、開発に使用し
、彼らは方法を見つけた場合*、サブクラスのオブジェクト・インターフェースや抽象クラスを必要とし、我々は匿名を渡すことができます内部クラスの過去、伝統的なコード簡素化する
*サンプルコード:
`` `Javaの
インタフェースJumpping {
空ジャンプを();
}
実装をJumppingクラス猫は{
@Override
(公共空ジャンプを){
System.out.printlnはは(」猫がジャンプアップすることができます");
}
}
クラス犬実装Jumpping {
@Override
公共ボイドジャンプ(){
のSystem.out.printlnは("犬)」をジャンプすることができ;
}
}
クラスJumppingOperator {
公共ボイドメソッド(Jumpping J){//新しい新しい猫( );新しい新しい犬();
j.jump();
}
}
クラスJumppingDemo {
パブリック静的が無効メイン(文字列[] args){
//要件:オブジェクトの作成インタフェースの操作クラスメソッドは、メソッド呼び出し
JumppingOperator新しい新しいJumppingOperatorジョー=();
Jumpping J =新しい新しい猫();
jo.method( J);
Jumpping J2 =新しい新しい犬();
jo.method(J2);
System.out.printlnは( "--------");
//単純化匿名内部クラス
jo.method(新しいJumpping( ){
@Override
ます。public voidジャンプ(){
System.out.printlnは() "猫がジャンプアップすることができます";
}
});
単純化匿名内部クラス//
jo.method(新新Jumpping(){
@Override
ます。public voidジャンプ(){
System.out.printlnは( "犬がジャンプすることができます");
}
});
}
}
`
## 3.共通API
### 3.1数学(アプリケーション)
* 1、概要Mathクラス
の基本操作を行うことを含む*数学法
* 2は、プロセスは数学と呼ばれていない
ことができ、いかなる数学クラスのコンストラクタ*が、メソッドの内部は静的で**コール**へのクラス名
* 3は、一般のMathクラスのメソッドを使用
|メソッド名メソッド名|説明|
| -------------------------- -------------------- | ----------------------------- ----------------- |
|パブリックstatic int型ABS(INT A )| の絶対値パラメータリターン|
|パブリック静的ダブルCEIL(ダブルA)は、|最小値より大きいを返すよりやパラメータを倍に等しい整数が等しい|
|フロアパブリック静的ダブル(ダブルA)|最大値は、以下で二重パラメータ整数等しい戻る|
|パブリックstatic int型ラウンド(フロートA)|丸めINTに従って最も近いパラメータを返す|
|パブリックstatic int型の最大値(int型、int型B)| 2つのリターンのINT値が大きいほど|
|パブリックstatic int型の分(int型A、INT B)は| 2つの値の小さい方の値をint型返し|
B乗戻る| |パブリック静的ダブルPOW(ダブル、ダブルB)値|
|パブリック静的ダブルランダム()|二重陽性の戻り値、[0.0,1.0)|
###システム3.2(アプリケーション)
*システムのクラスの一般的な方法
|メソッド名|説明|
| ------------------------------------- --- | ---------------------------------------------- - |
|公共の静的な無効終了(INTステータス)| |、現在実行中のJava仮想マシンを終了し、ゼロ以外は異常終了を示し
|公共の静的なロングにcurrentTimeMillisを()|(ミリ秒単位)現在の時刻を返します|
*サンプルコード
*需要:1から10000コンソール出力、何ミリ秒のコードない計算
`` `Javaの
パブリッククラスSystemDemo {
公共の静的な無効メイン(文字列[] args){
//開始ノードの時間が取得
長い開始=にSystem.currentTimeMillis( );
INT I =(1; I <= 10000; I ++){
のSystem.out.println(I);
}
//コードの実行が終了した後の時点をゲット
ロングエンド=にSystem.currentTimeMillis();
System.out.printlnは( "合計時間:" +(終了-開始) + " ミリ秒");
}
}
`
##方法#3.3オブジェクトクラスのtoString(アプリケーション)
*オブジェクトクラス概要
*オブジェクトは、クラス階層のルートであり、スーパーなどの各クラスは、オブジェクトができます。すべてのクラスは、直接的または間接的に、このクラスから継承されている、つまり、このクラスはメソッドを持っている、すべてのクラスがあります
ソースを*メソッドの方法を表示する
*方法を選択し、Ctrlキーを押しながら+ Bの
モード*のtoStringメソッドを書き換えます
* 1. Altキー+挿入のtoStringを選択
*空白領域でクラス2、右- >生成- >のtoString選択した
アクションのtoStringメソッド*:
*良いフォーマット、属性値とより便利な表示オブジェクト
*サンプルコード:
Javaの`` `
クラスの学生は、Object {拡張
プライベート文字列名を、
プライベートint型の年齢、
公共学生(){
}
公共学生(文字列名、int型の年齢){
this.name =名。
this.ageは年齢を=。
}
パブリック文字列のgetName(){
戻り名。
}
公共ボイドのsetName(文字列名){
this.name =名。
}
公共INT getAge(){
戻り年齢;
}
公共ボイドsetAge(int型の年齢){
this.age =年齢。
}
@Override
公共の文字列のtoString(){
リターン"学生{" +
"名=" '+名+ '\'' +
"年齢=" +年齢+
'}';
}
}
パブリッククラスObjectDemo {
パブリック静的無効メイン(文字列[] args){
学生学生新しい新しいS =();
s.setName( "ブリジット林");
s.setAge(30)
のSystem.out.println (S);
のSystem.out.println(s.toString());
}
}
``
*実行結果: `
` `のJava
学生{NAME = 'ブリジット'、年齢= 30}
生徒{NAME = 'ブリジット' } = 30年齢
`
方法### 3.4オブジェクトクラス(アプリケーション)に等しい
*アクションは、方法と等しい
オブジェクト間の比較のため*、戻りの真及び偽の結果
*例:s1.equals(S2)を、S1そして、s2は、2つのオブジェクトがあります
*オーバーライドメソッドのシーンに等しい
*、比較の値に対応する時間を比較するために、オブジェクトのプロパティを組み合わせることする必要はありません。
*メソッドのオーバーライドモードを等しい
* 1. Alt + Insert選択equals()とhashCode()、 IntelliJのデフォルト、 次のすべての方法、に仕上げ
空白領域ベースで* 2、右- >生成- >等号を選択します()そして、hashCode()、上記バック。
*サンプルコード:
`` `のJava
クラスの学生{
プライベート文字列名;
プライベートint型の年齢、
公共学生(){
}
公共学生(文字列名、INT年齢){
this.name =名;
this.age =年齢;
}
パブリック文字列getName(){
戻り名;
}
ボイド公共のsetName(文字列名){
this.name =名;
}
公共のint getAge(){
年齢を返します。
}
公共ボイドsetAge(int型の年齢){
this.age =年齢。
}
@Override
パブリックブール等しい(オブジェクトo){
//この- S1
// O - S2
(これは== O)trueを返す場合。
もし(O == nullの||のgetClass()= o.getClassは、()!)はfalseを返します。
学生学生=(学生)O; //学生- s2の
場合(年齢= student.age!)のリターンはfalse;
リターン名!= nullの?name.equals(student.name):student.name == nullを。
}
}
publicクラスObjectDemo {
パブリック静的無効メイン(文字列[] args){
S1 =新しい新しい学生学生();
s1.setName( "ブリジット林");
s1.setAge(30);
学生学生新しい新しいS2 =();
s2.setName( "ブリジット林");
s2.setAge(30);
//需要:二つのオブジェクトの内容が同じである比較
(s1.equals(S2))のSystem.out.println;
}
}
``
###バブルソートの原理(理解)の3.5
*バブルソート概説
*のランキングすべてのデータが並べ替えを完了するために必要とされるまでモード、大規模なデータの背面に隣接するデータペアワイズ比較でソートされるデータは、順次全てのデータ上で動作する
ソートデータがnある場合* 、N-1個の時間比較の合計は、
各比較が終了する*、次のデータの比較は、少なくとも一つに関与する
### 3.6バブルソートコード器具(理解)
*のコード
`のJava
/ *
バブルソート:
A 、大規模なデータの裏に、隣接するデータ対ごとの比較でデータをソートするソートモード種
すべてのデータが完全にソートするために必要になるまで順次、すべてのデータを操作
* /
パブリッククラスArrayDemo {
パブリック静的無効メイン(文字列[] args){
アレイの//定義
INT [] = {ARR 24、69、80、57}は、13である;
のSystem.out.println( "ソートフロント:" arrayToString +(ARR));
ラウンド時間を比較するための制御である、//保存1
X <arr.length - 1; INT X = 0(のためのX ++){
// -1オーバーインデックス避けるために、-X-効率の比較を高めるためである
<;(I {I ++ - - 1 X arr.length INT I = 0)のための
(ARR [I + 1] {IF ARR [I])>
INT ARR TEMP = [I]は、
ARR [I] = ARR [I + 1];
ARR [I + 1] = TEMP;
}
}
}
のSystem.out.printlnは( "ソート:" + arrayToString(ARR)) 。
}
//指定された文字列に応じて、ルールの配列の要素:[要素1、要素2、...]
パブリック静的文字列arrayToString(INT [] ARR){
StringBuilderのStringBuilderの新しい新しいSB =();
sb.append ( "[")
のための(INT I = 0; I <arr.length; I ++){
IF(I == arr.length - 1){
sb.append(ARR [I]);
}他{
sb.append (ARR [I])追記( "");
}
}
sb.append( "]");
文字列sb.toString S =();
戻りS;
}
}
``
### 3。7つのアレイ(アプリケーション)
の一般的な方法*の配列
|メソッド名|説明|
| -------------------------------------- | ---------- ------------------------ |
|静的パブリック文字列のtoString(INT [] a)は|指定された配列の文字列表現の内容を返し|
|公共静的ボイドソート(INT [] A )| 指定された配列は、番号順に配置され|
*デザインツール
1は、プライベートコンストラクタメソッド修飾
修飾パブリック静的メンバを使用して、2
クラス名パラメータや戻り値として(で)
おすすめ
転載: blog.csdn.net/qq_39581763/article/details/103919183
おすすめ
ランキング