ジャワ議政石12枚
13241 ワード
ch 12-1 Genericsとは?
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(10) //OK.
list.add("20") //ERROR
//타입 체크가 강화됨. 지네릭스 덕분에
ギネス世界記録の長所
1.タイプ安定性の提供
2.タイプチェックと変換を省略して、コードを簡潔にすることができます.
(ClassCastException変換エラーを軽減)
(実行時エラーをコンパイル時エラーに導入するにはどうすればいいですか?)
ch 12-2型変数
ch 12-3型変数の代入
ArrayList<Tv> tvList = new ArrayList<Tv>();
ch 12-4ギネス用語
Box:Generic Class.”TのBoxまたは「T Box」と読みます.
T:タイプ変数またはタイプパラメータ.(Tはタイプ文字)
Box:オリジナルタイプ(オリジナルタイプ)
ch 12-5ムカデ型過多型性
ArrayList<Tv> = new ArrayList<Tv>(); //OK. 일치
ArrayList<Product> = new ArrayList<Tv>(); //에러. 불일
List<Tv> list = new ArrayList<Tv>(); //OK. 다형성
List<Tv> list = new LinkedList<Tv>(); //OK. 다형성
ArrayList<Product> = new ArrayList<Product>();
list.add(new Product());
list.add(new Tv()); //자손도 OK
list.add(new Audio()); //자손도 OK
ch12-7 Iterator
ch12-8 HashMap<K,V>
HashMap<String, Student> map = new HashMap<String, Student>(); //생성
map.put("자바왕", new Student("자바왕",1,1,100,100,100)); //데이터 저장
ch 12-9制限ギネス類
class FruitBox<T extends Fruit> {
ArryaList<T> list = new ArrayList<T>();
...
} //Fruit의 자손만 대입 가능
FruitBox<Apple> appleBox = new FruitBox<Apple>(); //OK.
FruitBox<Toy> toyBox = new FruitBox<Toy>(); //에러. Toy는 Fruit의 자손이 아님
ch 12-11ギネス製薬会社
タイプ変数は、
T[] itemArr;//OK
T[] tmpArr = new T[itemArr.length];//エラー
ch 12-12ワイルドカード<?>
'":Tとその子孫のみ
'':Tとその祖先のみ
'' : 制限はありません.と同じ
ArrayList<? extends Product> list = new ArrayList<Tv>(); //OK
ArrayList<? extends Product> list = new ArrayList<Audio>(); //OK
static Juice makeJuice(FruitBox<? extends Fruit> box) {
String tmp="";
...
System.out.println(Juicer.makeJuice(new FruitBox<Fruit>()));
System.out.println(Juicer.makeJuice(new FruitBox<Apple>()));
}
ch 12-14ムカデの方法
ギネスタイプを宣言する方法(タイプ変数はメソッドでのみ有効)
クラスのタイプパラメータはメソッドのタイプパラメータとは異なります
class FruitBox<T> {
...
static <T> void sort(List<T> list, Comparator<? super T> c) {
...
}
}
ch 12-15ムカデ型変換
ch 12-16ムカデ型の除去
12-17列挙(enum)
12-18列挙の定義と使用
列挙タイプの定義方法
列挙名{定数名1,定数名2,...}
//0, 1 ...
列挙タイプの変数を宣言および使用します.
列挙定数の比較には==とcompareTo()を使用できます.
(比較演算子は許可されていません)
12-19列挙型の祖先-java。lang.Enum
Class<E> getDeclaringClass() //열거형의 Class객체를 반환
String name() //열거형 상수의 이름을 문자열로 반환
int ordinal() //열거형 상수가 정의된 순서를 반환(0부터 시작)
T valueOf(Class<T> enumType, String name)
//지정된 열거형에서 name과 일치하는 열거형 상수를 반환
値ch 12-21列挙へのメンバーの追加
不連続な列挙定数の場合、必要な値をかっこ()に書きます.
enum Direction { EAST(1), SOUTH(5), WEST(-1), NORTH(10) }
カッコ()を使用するには、新しいインスタンス変数とコンストラクション関数を追加する必要があります.
enum Direction {
EAST(1), SOUTH(5), WEST(-1), NORTH(10);
private final int value; //정수를 저장할 필드(인스턴스 변수)를 추가
Direction(int value) {this.value=value;} //생성자 추가
public int getValue() {return value;}
}
Direction d = new Direction(1); //에러. 열거형의 생성자는 외부에서 호출불가
ch 12-23アニメーションとは?
@Test //이 메서드가 테스트 대상임을 테스트 프로그램에 알린다.
public void method() {
...
}
ch 12-24標準プレゼンテーション
ch12-25 @Override
コンパイラに
コンパイラに
12-26 @Deprecated
推奨
@Deprecated
public int getDate() {
return normalize().getDayOfMonth();
}
Deprentedを含むターゲットコードのコンパイル中に表示されるメッセージNote: ... use or overrides a deprecated API.
12-27 @FunctionallInterface
12-28 @SuppressWarnings
コンパイラの警告メッセージが表示されないようにします.
カッコ()内で非表示にする警告のタイプを文字列として指定します.
複数のアラームを同時に抑制
「-Xlint」オプションでコンパイルすると、警告メッセージが表示されます.
12-29メタデータ
12-30 @Target
12-31 @Retention
CLASS:クラスファイルに存在します.実行時に使用できません.デフォルト
RUNTIME:クラスファイルに存在します.実行時に使用できます.
12-32 @Documented, @Inherited
Javadocで作成したドキュメントに含めるには、@Documentedを貼り付けます.
アニメーションをサブクラスに継承する場合は、@Inheritedが追加されます.
12-33 @Repeatable
繰り返し貼り付け可能なプレゼンテーションの定義には
12-34アニメーションタイプの定義
@interface 애너테이션이름 {
타입 요소이름(); //애너테이션의 요소를 선언
...
}
12-35プレゼンテーション要素
適用時に値が指定されていない場合は、使用可能なデフォルト値(Null値を除く)を指定できます.
要素が1つしかなくvalueという名前の場合は、要素の名前を省略できます.
要素のタイプが配列の場合は、カッコ{}を使用する必要があります.
12-36すべてのアニメーションの祖先
12-37タグ補助-タグAnnotation
12-38アニメーション要素の規則
パラメータは
Reference
この問題について(ジャワ議政石12枚), 我々は、より多くの情報をここで見つけました https://velog.io/@tone8943/자바의정석-12장テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol