4- Generic Classes

Jun 20, 2026 05:17 · 4:27 · English · Whisper Turbo · 3 speakers
អត្ថបទ​នេះ​ផុត​កំណត់​ក្នុង 24 ថ្ងៃ & # 160; ។ ធ្វើ​ឲ្យ​ប្រសើរ​សម្រាប់​ការ​ផ្ទុក​ជា​និច្ច →
បង្ហាញ​តែ
0:03
S… Speaker 1 (4- Generic Classes)
Let's see how generics prevent the problems we discussed earlier.
0:06
S… Speaker 2 (4- Generic Classes)
So,
0:07
S… Speaker 1 (4- Generic Classes)
let's add a new class in this package.
0:10
S… Speaker 1 (4- Generic Classes)
We call this generic list to differentiate from
0:14
S… Speaker 1 (4- Generic Classes)
the other list implementation.
0:17
S… Speaker 1 (4- Generic Classes)
Now we want this class to be generic so we can reuse it to store different
0:21
S… Speaker 1 (4- Generic Classes)
types of objects.
0:22
S… Speaker 1 (4- Generic Classes)
So right after the name of the class we type is angle
0:26
S… Speaker 1 (4- Generic Classes)
brackets and inside these brackets we type a capital T as
0:30
S… Speaker 1 (4- Generic Classes)
in short for type or template.
0:32
S… Speaker 1 (4- Generic Classes)
Now we could use any letters here,
0:33
S… Speaker 1 (4- Generic Classes)
it doesn't have to be a T,
0:35
S… Speaker 1 (4- Generic Classes)
but T is a common convention.
0:37
S… Speaker 1 (4- Generic Classes)
Another convention is E
0:39
S… Speaker 1 (4- Generic Classes)
as in short for element,
0:41
S… Speaker 1 (4- Generic Classes)
we use that when we want to implement a class that acts as a collection.
0:44
S… Speaker 1 (4- Generic Classes)
So it can store many elements.
0:46
S… Speaker 1 (4- Generic Classes)
So here we could use either e or t.
0:49
S… Speaker 1 (4- Generic Classes)
I'm going to go with t.
0:50
S… Speaker 1 (4- Generic Classes)
Now this t is a type parameter for this class.
0:53
S… Speaker 1 (4- Generic Classes)
So just like our methods can have parameters,
0:55
S… Speaker 1 (4- Generic Classes)
our classes can have parameters as well.
0:58
S… Speaker 1 (4- Generic Classes)
This T over here represents the type of objects we want to store in this
1:02
S… Speaker 1 (4- Generic Classes)
list. When we create an instance of this class,
1:05
S… Speaker 1 (4- Generic Classes)
we'll have to specify an argument or a value for this parameter.
1:08
S… Speaker 1 (4- Generic Classes)
For example,
1:09
S… Speaker 1 (4- Generic Classes)
back in our main class,
1:10
S… Speaker 1 (4- Generic Classes)
let me delete all this code.
1:12
S… Speaker 1 (4- Generic Classes)
If you want to create an instance
1:16
S… Speaker 1 (4- Generic Classes)
of our generic list,
1:17
S… Speaker 1 (4- Generic Classes)
we type new generic list.
1:19
S… Speaker 1 (4- Generic Classes)
Now here we specify the type of objects we want to store in
1:23
S… Speaker 1 (4- Generic Classes)
this list.
1:24
S… Speaker 1 (4- Generic Classes)
For example,
1:25
S… Speaker 1 (4- Generic Classes)
user.
1:25
S… Speaker 1 (4- Generic Classes)
Or string.
1:27
S… Speaker 1 (4- Generic Classes)
Or integer.
1:29
S… Speaker 2 (4- Generic Classes)
Okay?
1:31
S… Speaker 1 (4- Generic Classes)
So back to our generic less implementation this T represents the
1:35
S… Speaker 1 (4- Generic Classes)
type of objects we want to store here Now we need an array of type T
1:39
S… Speaker 1 (4- Generic Classes)
so private T array we call it items and
1:43
S… Speaker 1 (4- Generic Classes)
set it to new T array of 10
1:46
S… Speaker 1 (4- Generic Classes)
Now here we have a compilation error because the Java compiler doesn't know
1:50
S… Speaker 1 (4- Generic Classes)
the type of T at this stage.
1:52
S… Speaker 1 (4- Generic Classes)
Is it the character class or the string class or the user class?
1:55
S… Speaker 1 (4- Generic Classes)
It doesn't know what it is.
1:56
S… Speaker 1 (4- Generic Classes)
That is why it cannot instantiate it.
1:59
S… Speaker 1 (4- Generic Classes)
Now one simple workaround is to use new object array here and
2:03
S… Speaker 1 (4- Generic Classes)
then cast a result to T
2:08
S… Speaker 1 (4- Generic Classes)
array.
2:09
S… Speaker 2 (4- Generic Classes)
Okay,
2:10
S… Speaker 1 (4- Generic Classes)
now just like before when it
2:13
S… Speaker 1 (4- Generic Classes)
a field for keeping track of the number of items in this list.
2:16
S… Speaker 1 (4- Generic Classes)
So private int count.
2:18
S… Speaker 1 (4- Generic Classes)
Next we implement our add method,
2:20
S… Speaker 1 (4- Generic Classes)
so public void add.
2:22
S… Speaker 1 (4- Generic Classes)
Now instead of an integer or an object,
2:25
S… Speaker 1 (4- Generic Classes)
we pass t.
2:26
S… Speaker 1 (4- Generic Classes)
The type of t will be determined later when we create an instance
2:30
S… Speaker 1 (4- Generic Classes)
of this class.
2:31
S… Speaker 1 (4- Generic Classes)
So we call it item just like before.
2:33
S… Speaker 1 (4- Generic Classes)
And here we store item in our array.
2:36
S… Speaker 1 (4- Generic Classes)
So items of count plus plus equals item.
2:42
S… Speaker 3 (4- Generic Classes)
Finally,
2:42
S… Speaker 1 (4- Generic Classes)
we need our get method,
2:43
S… Speaker 1 (4- Generic Classes)
so public t get integer index.
2:47
S… Speaker 1 (4- Generic Classes)
Again,
2:48
S… Speaker 1 (4- Generic Classes)
instead of an integer or an object,
2:50
S… Speaker 1 (4- Generic Classes)
we return t.
2:52
S… Speaker 1 (4- Generic Classes)
So here we return items
2:56
S… Speaker 1 (4- Generic Classes)
of index.
2:57
S… Speaker 2 (4- Generic Classes)
Now,
2:58
S… Speaker 1 (4- Generic Classes)
back to our main class,
3:00
S… Speaker 1 (4- Generic Classes)
when we create a generic list of integer and
3:05
S… Speaker 1 (4- Generic Classes)
call the add method,
3:06
S… Speaker 1 (4- Generic Classes)
Look, the type of this parameter becomes integer.
3:09
S… Speaker 1 (4- Generic Classes)
So if I call this method and pass a string,
3:12
S… Speaker 1 (4- Generic Classes)
I get a compile time error.
3:14
S… Speaker 1 (4- Generic Classes)
This is the benefit of generics.
3:16
S… Speaker 1 (4- Generic Classes)
This generic class ensures that every object in this list is an integer.
3:21
S… Speaker 2 (4- Generic Classes)
Okay,
3:21
S… Speaker 1 (4- Generic Classes)
now actually let's store this in a variable called
3:26
S… Speaker 1 (4- Generic Classes)
list and here we call list
3:30
S… Speaker 2 (4- Generic Classes)
.add.
3:31
S… Speaker 2 (4- Generic Classes)
Let's pass an integer
3:35
S… Speaker 1 (4- Generic Classes)
Now here's the second benefit.
3:37
S… Speaker 1 (4- Generic Classes)
When we call the get method,
3:39
S… Speaker 2 (4- Generic Classes)
look,
3:40
S… Speaker 1 (4- Generic Classes)
we get an integer.
3:41
S… Speaker 1 (4- Generic Classes)
So if we get the first item,
3:43
S… Speaker 1 (4- Generic Classes)
we can simply store it in an integer,
3:46
S… Speaker 1 (4- Generic Classes)
and here we don't need an explicit cast.
3:50
S… Speaker 1 (4- Generic Classes)
If we had a generic list of users,
3:52
S… Speaker 1 (4- Generic Classes)
we could add a user object here,
3:55
S… Speaker 1 (4- Generic Classes)
and when reading the first item,
3:59
S… Speaker 1 (4- Generic Classes)
we would store it in a user object.
4:01
S… Speaker 2 (4- Generic Classes)
Okay,
4:03
S… Speaker 1 (4- Generic Classes)
again, we don't need an explicit cast.
4:05
S… Speaker 1 (4- Generic Classes)
So our code becomes cleaner and we get compile time type safety.
4:10
S… Speaker 1 (4- Generic Classes)
So we can catch our mistakes at compile time rather than at runtime.
4:14
S… Speaker 1 (4- Generic Classes)
That is the beauty of generics.
4:16
S… Speaker 1 (4- Generic Classes)
Now over the next few videos,
4:17
S… Speaker 1 (4- Generic Classes)
we're going to study generics in more detail.
4:19
S… Speaker 1 (4- Generic Classes)
You're going to understand how exactly generics work under the hood.
4:23
S… Speaker 1 (4- Generic Classes)
So I will see you in the next video.

This transcript was generated by AI (automatic speech recognition). May contain errors — verify against the original audio for critical use. AI policy

❤️ ស្រឡាញ់ STT.ai? ប្រាប់មិត្តភក្តិរបស់អ្នក!
សេចក្ដី​សង្ខេប
ចុច សង្ខេប ដើម្បី​បង្កើត​សេចក្ដី​សង្ខេប AI នៃ​ការ​បកប្រែ​នេះ & # 160; ។
កំពុង​សង្ខេប...
សំណួរ AI អំពី​ការ​បកប្រែ​នេះ
សំណួរអ្វីមួយអំពីការបកប្រែនេះ - AI នឹងរកឃើញផ្នែកដែលទាក់ទងនិងឆ្លើយតប។