All language subtitles for 006 Quidditch Game – Part 3_en

af Afrikaans
ak Akan
sq Albanian
am Amharic
ar Arabic
hy Armenian
az Azerbaijani
eu Basque
be Belarusian
bem Bemba
bn Bengali
bh Bihari
bs Bosnian
br Breton
bg Bulgarian
km Cambodian
ca Catalan
ceb Cebuano
chr Cherokee
ny Chichewa
zh-CN Chinese (Simplified)
zh-TW Chinese (Traditional)
co Corsican
hr Croatian
cs Czech
da Danish
nl Dutch
en English
eo Esperanto
et Estonian
ee Ewe
fo Faroese
tl Filipino
fi Finnish
fr French
fy Frisian
gaa Ga
gl Galician
ka Georgian
de German
el Greek
gn Guarani
gu Gujarati
ht Haitian Creole
ha Hausa
haw Hawaiian
iw Hebrew
hi Hindi
hmn Hmong
hu Hungarian Download
is Icelandic
ig Igbo
id Indonesian
ia Interlingua
ga Irish
it Italian
ja Japanese
jw Javanese
kn Kannada
kk Kazakh
rw Kinyarwanda
rn Kirundi
kg Kongo
ko Korean
kri Krio (Sierra Leone)
ku Kurdish
ckb Kurdish (Soranî)
ky Kyrgyz
lo Laothian
la Latin
lv Latvian
ln Lingala
lt Lithuanian
loz Lozi
lg Luganda
ach Luo
lb Luxembourgish
mk Macedonian
mg Malagasy
ms Malay
ml Malayalam
mt Maltese
mi Maori
mr Marathi
mfe Mauritian Creole
mo Moldavian
mn Mongolian
my Myanmar (Burmese)
sr-ME Montenegrin
ne Nepali
pcm Nigerian Pidgin
nso Northern Sotho
no Norwegian
nn Norwegian (Nynorsk)
oc Occitan
or Oriya
om Oromo
ps Pashto
fa Persian
pl Polish
pt-BR Portuguese (Brazil)
pt Portuguese (Portugal)
pa Punjabi
qu Quechua
ro Romanian
rm Romansh
nyn Runyakitara
ru Russian
sm Samoan
gd Scots Gaelic
sr Serbian
sh Serbo-Croatian
st Sesotho
tn Setswana
crs Seychellois Creole
sn Shona
sd Sindhi
si Sinhalese
sk Slovak
sl Slovenian
so Somali
es Spanish
es-419 Spanish (Latin American)
su Sundanese
sw Swahili
sv Swedish
tg Tajik
ta Tamil
tt Tatar
te Telugu
th Thai
ti Tigrinya
to Tonga
lua Tshiluba
tum Tumbuka
tr Turkish
tk Turkmen
tw Twi
ug Uighur
uk Ukrainian
ur Urdu
uz Uzbek
vi Vietnamese
cy Welsh
wo Wolof
xh Xhosa
yi Yiddish
yo Yoruba
zu Zulu
Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated: 1 00:00:00,210 --> 00:00:03,630 The solution is going to cover part three where we start setting up the game class. 2 00:00:05,320 --> 00:00:10,090 We'll start by defining the scoreboard field, a scoreboard needs to monitor the score of each team. 3 00:00:10,420 --> 00:00:14,670 So we're going to use a Hashmat because there's parity between team and integer data. 4 00:00:15,220 --> 00:00:16,360 Private Hashmat. 5 00:00:17,530 --> 00:00:22,180 The Hashmat is going to store team manager key value entries and it's going to be called scoreboard. 6 00:00:30,450 --> 00:00:34,830 The next step is to create a constructor, the constructor runs as soon as we create an object of the 7 00:00:34,830 --> 00:00:40,470 game class and when it runs, it will receive two parameters the home team and the away team. 8 00:00:41,800 --> 00:00:45,970 Now, inside, the constructor will set the scoreboard equal to a new object of the Hashmat class. 9 00:00:58,700 --> 00:01:01,280 And then I'm going to put two entries into the scoreboard. 10 00:01:05,000 --> 00:01:07,310 A home team that starts with a score of zero. 11 00:01:13,300 --> 00:01:19,270 And an away team that starts with a score of zero and now notice that I'm adding copies of each parameter 12 00:01:19,270 --> 00:01:20,050 to the Hashmat. 13 00:01:20,470 --> 00:01:25,720 That's because you don't want your keys to share the same reference as the outside variable that's being 14 00:01:25,720 --> 00:01:26,400 passed in. 15 00:01:26,440 --> 00:01:32,170 Otherwise, the set of each key can be affected if you change the outside variable, which is a security 16 00:01:32,170 --> 00:01:32,570 leak. 17 00:01:33,070 --> 00:01:33,670 You know what? 18 00:01:33,700 --> 00:01:38,440 Why don't I just show you really quickly instead of passing in copies, I'll pass in each parameter 19 00:01:38,440 --> 00:01:42,370 directly and I'll create a new object of the game class using the format. 20 00:01:42,370 --> 00:01:43,720 I left you all and learn the parts. 21 00:01:55,920 --> 00:01:57,400 OK, they're both of type team. 22 00:02:06,420 --> 00:02:09,270 Now we're going to pass into a new object of the game class. 23 00:02:17,570 --> 00:02:18,770 A lot of breakpoint. 24 00:02:27,310 --> 00:02:28,270 Step inside. 25 00:02:39,950 --> 00:02:45,260 And check it out, each key has the same reference as the outside variable that was passed in as a parameter. 26 00:02:52,350 --> 00:02:55,680 If I update one of the objects, I'll change the house name for whom? 27 00:03:03,080 --> 00:03:04,190 Restart the debugger. 28 00:03:14,370 --> 00:03:16,340 The state of the key should get affected as well. 29 00:03:22,250 --> 00:03:22,990 That's not good. 30 00:03:28,270 --> 00:03:33,430 But if the constructor creates copies of each parameter, we can rest assured that each key store is 31 00:03:33,430 --> 00:03:36,010 a unique reference that points to a team copy. 32 00:03:37,790 --> 00:03:42,200 You can feel free to test that out yourself and monitor the references, but I'm going to move on enough 33 00:03:42,200 --> 00:03:42,680 about that. 34 00:03:51,250 --> 00:03:54,490 Now we want to create two getters, we'll start with the Geter get score. 35 00:04:00,840 --> 00:04:02,280 Which receives one parameter. 36 00:04:04,310 --> 00:04:05,930 The team who score you want to get. 37 00:04:10,660 --> 00:04:13,020 We'll get the score for this particular team. 38 00:04:18,209 --> 00:04:24,960 And it's going to get the score value for this particular team or will it we'll come back to this now. 39 00:04:24,970 --> 00:04:27,780 We are a center that updates the score for a particular team. 40 00:04:28,140 --> 00:04:32,850 It's going to be called set score and receive two parameters, the team for which you want to update 41 00:04:32,850 --> 00:04:33,390 the score. 42 00:04:34,950 --> 00:04:36,060 And the score itself. 43 00:04:40,460 --> 00:04:42,170 Then you can say scoreboard put. 44 00:04:45,400 --> 00:04:47,200 The following key value pair. 45 00:04:52,370 --> 00:04:57,140 Now, we're going to quality control this center later, because put either can add this as another 46 00:04:57,140 --> 00:05:01,870 entry in the hash map or it can update the entry that already contains this time object. 47 00:05:02,750 --> 00:05:06,860 Obviously, we want to update because the hash map should only have two entries. 48 00:05:07,100 --> 00:05:08,360 So for now, let's move on. 49 00:05:10,560 --> 00:05:14,220 Now we're going to to get her called get team that receives a parameter string name. 50 00:05:16,940 --> 00:05:19,850 We'll come back to this in the next video for now, just return null. 51 00:05:26,480 --> 00:05:30,230 And now you might be asking, should there be a set team setter, no. 52 00:05:31,550 --> 00:05:37,520 It's impossible to update a key after you add it, you can remove a key and then add another one, but 53 00:05:37,520 --> 00:05:39,210 you cannot change a key. 54 00:05:39,260 --> 00:05:40,370 It's not possible. 55 00:05:42,260 --> 00:05:45,920 All right, we're going to wrap up this video by testing the getters and setters, I'll get the score 56 00:05:45,920 --> 00:05:46,670 for Gryffindor. 57 00:05:53,840 --> 00:05:55,790 I'll set the score for Gryffindor to 10. 58 00:05:59,530 --> 00:06:03,800 Spoiler alert, none of these should work, so here's why I'm going out to break points. 59 00:06:09,810 --> 00:06:11,220 I'll step in to get score. 60 00:06:12,820 --> 00:06:17,860 The parameter we passed in has this reference which doesn't match any of the references in the hash 61 00:06:17,860 --> 00:06:18,160 map. 62 00:06:20,310 --> 00:06:26,160 And unless you define an equals method, Java uses the default equals method to compare to objects, 63 00:06:26,520 --> 00:06:30,660 which is why I can't find anything in the Hashmat that matches the parameter and returns no. 64 00:06:31,630 --> 00:06:32,800 Is that really the issue? 65 00:06:33,580 --> 00:06:34,750 We'll find out soon enough. 66 00:06:39,100 --> 00:06:43,690 Now, what would happen here, once again, the reference being passed and doesn't match any of the 67 00:06:43,690 --> 00:06:44,950 references in the Hashmat. 68 00:06:48,330 --> 00:06:53,460 So instead of updating the entry that already contains this theme object, it's going to think it's 69 00:06:53,460 --> 00:06:57,960 a new key and add another entry to the hash map and that's also not good. 70 00:06:58,590 --> 00:07:02,010 Java's using the default equals method to compare team objects. 71 00:07:02,190 --> 00:07:08,130 So we need to provide our own equals method that allows Java to compare to objects based on their fields, 72 00:07:08,310 --> 00:07:09,540 not the reference. 73 00:07:11,000 --> 00:07:13,100 The equals method needs to return a boolean. 74 00:07:14,240 --> 00:07:15,500 And receives an object. 75 00:07:17,570 --> 00:07:18,870 What's the type of that object? 76 00:07:18,890 --> 00:07:20,850 We don't know, it can be any object. 77 00:07:21,450 --> 00:07:26,060 First, we're going to check if the object that we're comparing against is no, because if it happens 78 00:07:26,060 --> 00:07:29,840 to be null, then there's no way it equals the object that's calling this method. 79 00:07:30,790 --> 00:07:32,060 Let's assume the object, is it? 80 00:07:32,060 --> 00:07:32,320 No. 81 00:07:32,330 --> 00:07:37,880 Then we need to check if it isn't of type team if the object isn't an instance of the team class. 82 00:07:48,790 --> 00:07:53,980 OK, so at this point, the object, is it no, it is an instance of team, so we can typecast it to 83 00:07:53,980 --> 00:07:54,730 type team. 84 00:08:00,140 --> 00:08:04,940 And finally, we need to check if the objects fields are equal to the current object that's calling 85 00:08:04,940 --> 00:08:08,780 this method, we need to compare the house return. 86 00:08:08,780 --> 00:08:10,960 This thought house equals timecode house. 87 00:08:11,270 --> 00:08:12,830 We need to compare the keeper. 88 00:08:17,200 --> 00:08:19,180 This storekeeper equals team goalkeeper. 89 00:08:37,409 --> 00:08:41,909 And how do we compare the array, remember, we can use arrays not to string. 90 00:08:45,500 --> 00:08:50,870 The new string is going to convert the contents of the array into one long string, and so if the two 91 00:08:50,870 --> 00:08:54,590 happened to share the same string, then they must have the same elements. 92 00:09:01,940 --> 00:09:02,590 And that's a. 93 00:09:05,720 --> 00:09:07,130 And so now I guess it should work. 94 00:09:07,280 --> 00:09:08,120 Let's run the code. 95 00:09:17,330 --> 00:09:18,690 And it still doesn't work. 96 00:09:19,020 --> 00:09:20,960 Hmm, well, test out the setar. 97 00:09:32,750 --> 00:09:33,550 Same thing. 98 00:09:36,320 --> 00:09:39,020 I'm pretty sure we defined our equals method perfectly. 99 00:09:39,200 --> 00:09:41,690 It compares to objects based on their fields. 100 00:09:43,010 --> 00:09:46,490 Those two objects, one hundred percent have the same fields. 101 00:09:48,510 --> 00:09:51,030 So why isn't Hashmat able to retrieve the key? 102 00:09:52,950 --> 00:09:57,850 For Hashmat to retrieve a key, it's not enough for an object to be equal to it. 103 00:09:58,050 --> 00:10:00,560 It must also share the same hash code. 104 00:10:01,680 --> 00:10:04,350 You're going to learn more about hash codes in the next video. 9879

Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.