静的内部クラスが静的内部クラスを継承することによる点のまとめ

13775 ワード

1.staticクラスの継承

  
    
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