CodeGym /Java Course /자바 구문 /제네릭이란 무엇입니까?

제네릭이란 무엇입니까?

자바 구문
레벨 7 , 레슨 7
사용 가능

"또 다른 멋진 주제."

"계속 놀라움이 찾아옵니다! 제 생일인가요?"

"오늘은 제네릭에 대해 알려드리겠습니다. 제네릭은 매개변수가 있는 유형입니다. Java에서 컨테이너 클래스를 사용하면 내부 개체의 유형을 나타낼 수 있습니다."

"일반 변수를 선언할 때 하나가 아닌 두 가지 유형, 즉 변수 유형과 변수가 저장하는 데이터 유형을 나타냅니다."

"ArrayList가 좋은 예입니다. 새 ArrayList 개체를 만들 때 이 목록에 저장될 값의 유형을 지정하는 것이 편리합니다."

암호 설명
ArrayList<String> list = new ArrayList<String>();
라는 ArrayList 변수를 만듭니다 list.
여기에 ArrayList 객체를 할당합니다. 이 목록은 String 개체
만 저장할 수 있습니다 .
ArrayList list = new ArrayList();
라는 ArrayList 변수를 만듭니다 list.
여기에 ArrayList 객체를 할당합니다. 이 목록은 모든 값을 저장할 수 있습니다 .
ArrayList<Integer> list = new ArrayList<Integer>();
라는 ArrayList 변수를 만듭니다 list.
여기에 ArrayList 객체를 할당합니다.
이 목록은 값만 저장할 수 Integer있습니다 int.

"굉장히 흥미롭게 들리네요. 특히 모든 유형의 값을 저장하는 부분이요 ."

"좋은 일인 것 같습니다. 실제로 한 메서드에서 문자열을 ArrayList에 넣은 다음 다른 메서드에 숫자가 포함될 것으로 예상하면 프로그램이 충돌합니다(오류와 함께 종료)."

"알겠어요."

"지금은 유형 매개변수를 사용하여 자체 클래스를 생성하지 않을 것입니다 . 기존 클래스만 사용하겠습니다."

"어떤 클래스도 유형 매개변수가 될 수 있습니까? 제가 작성한 클래스도요?"

"예. 기본 유형을 제외한 모든 유형입니다. 모든 유형 매개변수는 Object 클래스에서 상속해야 합니다."

" 내가 ArrayList<int>를 쓸 수 없다는 뜻인가요? "

"실제로 할 수 없습니다. 그러나 Java 개발자는 각 기본 유형에 대한 래퍼 클래스를 작성했습니다. 이러한 클래스는 Object 를 상속합니다 . 다음과 같이 표시됩니다."

원시 유형 수업 목록
정수 정수 ArrayList< 정수 >
더블 더블 ArrayList< 더블 >
부울 부울 ArrayList< 부울 >
성격 ArrayList< 문자 >
바이트 바이트 ArrayList< 바이트 >

"기본 클래스와 그 유사체(래퍼 클래스)를 서로 쉽게 할당할 수 있습니다."

int a = 5;
Integer b = a;
int c = b;

Character c = 'c';  //the literal c is a char
char d = c;
Byte b = (byte) 77;  // The literal 77 is an int
Boolean isOk = true;  // the literal true is a boolean
Double d = 1.0d;  // The literal 1.0d is a double

"좋습니다. ArrayList를 더 자주 사용하려고 노력할 것 같습니다."

코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION