ジェネリックAppleクラスを開発するには、テストクラスでさまざまなジェネリックオブジェクトをインスタンス化するために重み属性weightが必要です。オブジェクトa1のこの属性はString型である必要があり、オブジェクトa2のこの属性はInteger型であり、この属性はa3はDouble型の属性です。a1、a2、a3の重み属性にそれぞれ「500グラム」、500、500.0の値を割り当て、アクセサーを呼び出して属性値を取得し、テストクラスに出力します。さらに、a2とa3の属性がintとdoubleではなくIntegerとDoubleである必要がある理由を考えてみてください。
/ *汎用のAppleクラスを開発し、テストクラスでさまざまな汎用オブジェクトをインスタンス化するために重み属性の重みを要求します* /
パブリッククラスApple <T> {
T重量;
public Apple(){
}
パブリックアップル(Tウェイト){
重量=重量;
}
public T getWeight(){
戻り重量;
}
public void setWeight(T weight){
重量=重量;
}
@オーバーライド
public String toString(){
「Apple {」を返す+
"Weight =" +重量+
'}';
}
/ *オブジェクトa1のこの属性はString型である必要があり、オブジェクトa2のこの属性はInteger型である必要があります。
※a3のこの属性はダブルタイプです。a1 、a2 、およびa3の重み属性には、「500グラム」、500、500.0 * /という値が割り当てられます。
public static void main(String [] args){
Apple <String> a1 = new Apple <>( "500克");
Apple <整数> a2 =新しいApple <>(500);
Apple <Double> a3 =新しいApple <>(500.0);
/ *テストクラスで、アクセサを呼び出して属性値を取得し、出力します* /
System.out.println( "a1:" + a1.getWeight());
System.out.println( "a2:" + a2.getWeight());
System.out.println( "a3:" + a3.getWeight());
}
}
/ * a2とa3の属性がintとdoubleではなくIntegerとDoubleである必要があるのはなぜですか?
*これは、ジェネリック型は基本データ型ではなくクラスである必要があるため、基本データ型を使用する必要がある場所をパッケージングクラスに置き換える必要があるためです。
* * /
ニュースタイトル、ニュース作成者、ニュースコンテンツ、ニュースタイプの3つのプロパティを含み、必要なアクセサメソッドとモディファイアメソッドを提供し、toStringメソッドをオーバーライドし、オブジェクトの出力形式を「title」として出力する必要があるニュースクラスNewsをカプセル化します。 ;タイプ;作者 "、ニュースタイトルが同じである限り、同じニュースと判断される必要があります。このタイプのオブジェクトのみをテストクラスに保持できるArrayListコレクションを作成し、3つのニュースを追加します。コレクションをトラバースし、ニュースヘッドラインを印刷し、ニュースヘッドラインを10漢字の長さにカットします。
/ **
* @author Eightn0
* @create 2021-03-18 22:10
*ニュースタイトル、ニュース作成者、ニュースコンテンツ、ニュースタイプの3つの属性を含む、ニュースカテゴリニュースをカプセル化します。
*必要なアクセサーメソッドと修飾子メソッドを提供し、toStringメソッドを書き直し、オブジェクトを印刷するときに出力形式が「title; type; author」である必要があります。
※ニュースタイトルが同じであれば、同じニュースを審査する必要があります。
*テストクラスでこのタイプのオブジェクトのみを保持できるArrayListコレクションを作成し、3つのニュースを追加します。
*コレクションをトラバースし、ニュースヘッドラインを印刷し、ニュースヘッドラインを10漢字の長さにカットします。
* /
/ *ニュースタイトル、ニュース作成者、ニュースコンテンツ、ニュースタイプの3つの属性を含む、ニュースカテゴリニュースをカプセル化します* /
クラス社会{
}
クラスエンターテインメント{}
パブリッククラスニュース<T> {
Tタイプ;
文字列のタイトル;
文字列の作者;
文字列本体;
public News(){
}
public News(文字列のタイトル、文字列の作成者、文字列の本文){
this.title =タイトル;
this.author =作成者;
this.body = body;
}
/ *必要なアクセサーと修飾子のメソッドを提供します* /
public T getType(){
戻り値の型;
}
public void setType(T type){
タイプ=タイプ;
}
public String getTitle(){
タイトルを返す;
}
public void setTitle(String title){
this.title =タイトル;
}
public String getAuthor(){
作者を返す;
}
public void setAuthor(String author){
this.author =作成者;
}
public String getBody(){
リターンボディ;
}
public void setBody(String body){
this.body = body;
}
/ * toStringメソッドを書き直し、オブジェクトを出力するときに出力形式が「title; type; author」である必要があります* /
@オーバーライド
public String toString(){
「ニュース{」を返す+
"、title = '" +タイトル+' \ '' +
"Type =" + Type + '\' '+
"、author = '" +作成者+
'}';
}
/ *ニュースのタイトルが同じである限り、同じニュースと判断される必要があります。* /
@オーバーライド
public boolean equals(Object o){
if(this == o)はtrueを返します。
if(o == null || getClass()!= o.getClass())はfalseを返します;
ニュース<?>ニュース=(ニュース<?>)o;
Objects.equals(title、news.title);を返します。
}
/ *テストクラスでこのタイプのオブジェクトのみを保持できるArrayListコレクションを作成し、3つのニュースを追加します。* /
public static void main(String [] args){
ArrayList <News> newsList = new ArrayList <>(3);
newsList.add(new News <Society>( "良いニュース、大幅な値下げ"、 "Ines"、 "大幅な値下げ、大幅な値下げ、大幅な値下げ"));
newsList.add(new News <Society>( "悪いニュース、大幅な値上げ"、 "Ines"、 "大幅な値上げ、大幅な値上げ、大幅な値上げ"));
newsList.add(new News <Entertainment>( "はい、子供がいます"、 "Tony"、 "子供はどこですか、どこはどこですか"));
/ *コレクションをトラバースし、ニュースヘッドラインを印刷し、ニュースヘッドラインを10漢字の長さにカットします。* /
Iterator <News> iterator = newsList.iterator();
while(iterator.hasNext()){
ニュースnews = iterator.next();
System.out.println(news.getTitle());
}
}
}
必要に応じて次のタスクを完了します
- HashMapクラスを使用して、Mapタイプのオブジェクトm1をインスタンス化します。キー(文字列タイプ)と値(intタイプ)は、それぞれ従業員の名前と給与を格納するために使用されます。格納されるデータは次のとおりです。ZhangSan-800 yuan; Li Si -1500元;王呉-3000元;
- 張さんの給料を2,600元に変更
- 全従業員の給与が100元増加。
- コレクション内のすべての従業員をトラバースします
- コレクション内のすべての給与をトラバースします
パブリッククラスHashMapTest {
public static void main(String [] args){
/ * HashMapクラスを使用してMapタイプのオブジェクトm1をインスタンス化し、キー(Stringタイプ)とvalue(intタイプ)をそれぞれ使用して、従業員の名前と給与を格納します* /
HashMap <String、Integer> hashMap = new HashMap <>();
/ *以下のように堆積されたデータは次のとおり 張SAN- 800 ;リチウムSi-から元1500元、王WU- 3000元* /
hashMap.put( "張三"、800);
hashMap.put( " Li Si "、1500);
hashMap.put( "王五"、3000);
/ * ZhangSanの給与を2600元に変更します* /
hashMap.replace( " Zhang San "、2500);
/ *全従業員の給与を100元引き上げます* /
/ *コレクション内のすべての従業員をトラバースし、コレクション内のすべての給与をトラバースします* /
Set <Map.Entry <String、Integer >>エントリ= hashMap.entrySet();
Iterator <Map.Entry <String、Integer >> iterator = entry.iterator();
while(iterator.hasNext()){
Map.Entry <String、Integer> entry = iterator.next();
System.out.println(entry.getKey());
System.out.println(entry.getValue());
}
}
}