静的内部クラスが静的内部クラスを継承することによる点のまとめ
13775 ワード
1.staticクラスの継承
これでいいですか.
この質問に答える前に、staticキーワードをどのように使うか考えてみましょう.
1つ目は、newがどれだけのオブジェクトを出力しても、そのデータはメモリに1部しか格納されません.
たとえば定数は、他のクラスでこの変数を参照する可能性があるため、newにオブジェクトを出したくない場合はstaticキーワードしか使用できません.
2つ目は、メソッドがクラスのインスタンスオブジェクトに関連付けられないようにしたい場合です.
内部クラスの使用方法
クラスAがクラスBのインスタンスオブジェクトを使用する必要があり、クラスBにクラスAの変数またはメソッドも使用される場合、クラスBをクラスAの内部クラスとして定義する必要がある.クラスBがクラスAの変数やメソッドを使用しない場合、他の外部クラスでもクラスBの変数やメソッドを頻繁に使用する場合は、クラスBをクラスAの静的内部クラスとして定義できます.
次に、上記のコードを分析します.
このstaticクラスはGfanStoreクラスの静的内部クラスです
1. この2つのクラスを静的内部クラスとして定義する理由
静的内部クラスは彼の外部クラスに依存しないため、すぐに外部クラスのオブジェクトを作成しないで、私たちは依然として内部クラスのオブジェクトを作成することができます.他のクラスでProductInfoのインスタンスオブジェクトを作成したい場合、彼が簡単な内部クラスであれば、まずGfanStoreクラスのインスタンスオブジェクトを作成する必要があります(この内部クラスをメモリにロードするには、このようにしてのみ).
ProductInfoのインスタンスオブジェクト.単純な内部クラスの場合、私たちは通常外部クラスの内部で使用するだけです.例えば、1つのViewではAdapterを使用する必要があります.では、内部クラスを使用してBaseAdapterのサブクラスを作成することができます.他のviewではこのAdapterを使用してはいけません.このように内部クラスを使用するのは適切ですが、他のクラスではこのクラスを使用する必要があります.では、staticとして定義する必要があります.このstatic内部クラスは、上記の2つの静的内部クラスのような外部クラスとして使用できます.viewではインスタンスオブジェクトを作成する必要があります.私は直接newオブジェクトを作成することができます.これは簡単です.
2. 静的内部クラスの継承
静的内部クラス静的内部クラスを継承してもよいが,少し違和感があるように見えるだけである.
付録:
ネットユーザーの文章を引用して,よく書いた.
http://lavasoft.blog.51cto.com/62575/179484/
もう1つは,内部クラスによる間接的なクラスの多重継承である.
http://jiangzhengjun.javaeye.com/blog/658353
public
static
class
ProductInfo{
public
static
final
String P_ID
=
"
id
"
;
public
static
final
String PRODUCT_TYPE
=
"
id
"
;
public
static
final
String P_NAME
=
"
id
"
;
public
static
final
String PRICE
=
"
id
"
;
public
static
final
String PAY_CATEGORY
=
"
id
"
;
public
static
final
String RATING
=
"
id
"
;
public
static
final
String ICON_URL
=
"
id
"
;
public
static
final
String SHORT_DESCRIPTION
=
"
id
"
;
public
static
final
String APP_SIZE
=
"
id
"
;
public
static
final
String SOURCE_TYPE
=
"
id
"
;
public
static
final
String AUTHOR_NAME
=
"
id
"
;
public
static
final
String RATINGS_COUNT
=
"
id
"
;
public
static
final
String SPECIAL_FLAG
=
"
id
"
;
public
String p_id;
public
String product_type;
public
String name;
public
String price;
public
String pay_category;
public
String rating;
public
String icon_url;
public
String short_description;
public
String app_size;
public
String source_type;
public
String author_name;
public
String ratings_count;
public
String special_flag;
}
public
static
class
ProductDetailInfo
extends
ProductInfo{
public
String packagename;
public
String version_code;
public
String comments_count;
public
String download_count;
public
String long_description;
public
String publish_time;
public
String screenshot_1;
public
String screenshot_2;
public
String screenshot_3;
public
String screenshot_4;
public
String screenshot_5;
public
String version_name;
public
String uses_permission;
}
これでいいですか.
この質問に答える前に、staticキーワードをどのように使うか考えてみましょう.
1つ目は、newがどれだけのオブジェクトを出力しても、そのデータはメモリに1部しか格納されません.
たとえば定数は、他のクラスでこの変数を参照する可能性があるため、newにオブジェクトを出したくない場合はstaticキーワードしか使用できません.
2つ目は、メソッドがクラスのインスタンスオブジェクトに関連付けられないようにしたい場合です.
内部クラスの使用方法
クラスAがクラスBのインスタンスオブジェクトを使用する必要があり、クラスBにクラスAの変数またはメソッドも使用される場合、クラスBをクラスAの内部クラスとして定義する必要がある.クラスBがクラスAの変数やメソッドを使用しない場合、他の外部クラスでもクラスBの変数やメソッドを頻繁に使用する場合は、クラスBをクラスAの静的内部クラスとして定義できます.
次に、上記のコードを分析します.
このstaticクラスはGfanStoreクラスの静的内部クラスです
1. この2つのクラスを静的内部クラスとして定義する理由
静的内部クラスは彼の外部クラスに依存しないため、すぐに外部クラスのオブジェクトを作成しないで、私たちは依然として内部クラスのオブジェクトを作成することができます.他のクラスでProductInfoのインスタンスオブジェクトを作成したい場合、彼が簡単な内部クラスであれば、まずGfanStoreクラスのインスタンスオブジェクトを作成する必要があります(この内部クラスをメモリにロードするには、このようにしてのみ).
ProductInfoのインスタンスオブジェクト.単純な内部クラスの場合、私たちは通常外部クラスの内部で使用するだけです.例えば、1つのViewではAdapterを使用する必要があります.では、内部クラスを使用してBaseAdapterのサブクラスを作成することができます.他のviewではこのAdapterを使用してはいけません.このように内部クラスを使用するのは適切ですが、他のクラスではこのクラスを使用する必要があります.では、staticとして定義する必要があります.このstatic内部クラスは、上記の2つの静的内部クラスのような外部クラスとして使用できます.viewではインスタンスオブジェクトを作成する必要があります.私は直接newオブジェクトを作成することができます.これは簡単です.
2. 静的内部クラスの継承
静的内部クラス静的内部クラスを継承してもよいが,少し違和感があるように見えるだけである.
付録:
ネットユーザーの文章を引用して,よく書いた.
http://lavasoft.blog.51cto.com/62575/179484/
もう1つは,内部クラスによる間接的なクラスの多重継承である.
http://jiangzhengjun.javaeye.com/blog/658353