All language subtitles for 005 Bank Management – Part 3 (Tasks 1 – 6)_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,450 --> 00:00:03,990 All right, we've set up our classes now we need to inject some logic into them. 2 00:00:05,250 --> 00:00:10,890 Going back to requirements, talked text, and from first glance, it seems that we need to force every 3 00:00:10,890 --> 00:00:13,590 child the class to override two common methods. 4 00:00:13,890 --> 00:00:15,510 Deposit and withdraw. 5 00:00:16,020 --> 00:00:20,670 And to do that, we need to define two abstract methods inside the parent class. 6 00:00:21,090 --> 00:00:22,740 So we'll go to account Java. 7 00:00:23,680 --> 00:00:24,880 And here we'll see. 8 00:00:26,080 --> 00:00:26,620 Public. 9 00:00:27,750 --> 00:00:35,340 Abstract void, and it will deposit some amount of money, double amounts. 10 00:00:36,570 --> 00:00:38,860 Now, a withdrawal can be successful or it can fail. 11 00:00:38,880 --> 00:00:40,050 So here we'll say public. 12 00:00:42,280 --> 00:00:44,410 Abstract bullying. 13 00:00:46,340 --> 00:00:48,440 That can withdraw some amount of money. 14 00:00:55,340 --> 00:01:01,370 All right, and as we override, deposit and withdraw, we need to define this protected method inside 15 00:01:01,370 --> 00:01:02,450 of account Java. 16 00:01:08,700 --> 00:01:12,810 Remember, that protected means this method is only accessible from within its children. 17 00:01:13,200 --> 00:01:16,200 It's not public, which means you can't access it from anywhere. 18 00:01:16,440 --> 00:01:18,650 It's protected only child. 19 00:01:18,650 --> 00:01:23,120 The classes, checking savings and loan can access the ruined method. 20 00:01:23,770 --> 00:01:26,070 Anyways, we seem to be getting an error. 21 00:01:26,550 --> 00:01:30,840 OK, got an important decimal format before we can use it, and we're good. 22 00:01:31,650 --> 00:01:37,350 And now remember that if a parent defines an abstract method, the child class is forced to override 23 00:01:37,350 --> 00:01:37,470 it. 24 00:01:37,950 --> 00:01:39,060 So we'll go to checking. 25 00:01:39,480 --> 00:01:41,100 That's why we're seeing these errors. 26 00:01:41,430 --> 00:01:45,390 Checking needs to provide its own logic for deposit and withdraw. 27 00:01:46,440 --> 00:01:49,130 OK, so I'll just override them for now. 28 00:01:50,550 --> 00:01:52,470 We won't provide any logic just yet. 29 00:01:53,160 --> 00:01:54,930 Not until we write unit tests. 30 00:01:56,450 --> 00:01:59,320 Checking we'll do the same thing for savings. 31 00:02:01,720 --> 00:02:02,470 And. 32 00:02:03,680 --> 00:02:06,140 Merge doing that to get rid of the areas for now. 33 00:02:12,540 --> 00:02:17,910 Now, the reason I'm not writing the logic just yet is because we need to unit test all of the behavior 34 00:02:17,910 --> 00:02:21,510 inside of the requirements that text filed before we write the code for it. 35 00:02:21,870 --> 00:02:26,700 That way, we make sure that any code we write, any logic we provide doesn't have any bugs. 36 00:02:27,030 --> 00:02:29,460 So long as every test passes, we know that we're good. 37 00:02:30,180 --> 00:02:35,730 So I'll go to a count tests that Java and I'll start by on commenting the accounts array. 38 00:02:36,570 --> 00:02:43,680 And that doesn't seem to be like a good amount of indentation, so I'll fix that and import the accounts 39 00:02:43,680 --> 00:02:44,280 class. 40 00:02:46,470 --> 00:02:51,060 And now, before running each test, we got to make sure the array is being populated first, so we'll 41 00:02:51,060 --> 00:02:57,300 start by annotating a method with before this before method is going to run before each test. 42 00:02:57,840 --> 00:02:59,040 Public void setup. 43 00:03:00,330 --> 00:03:05,640 Where we set up our accounts are by going back over to learn the parts and populating it with three 44 00:03:05,640 --> 00:03:06,390 objects. 45 00:03:07,680 --> 00:03:08,340 Checking. 46 00:03:09,960 --> 00:03:10,980 Savings. 47 00:03:13,280 --> 00:03:14,360 That did not work. 48 00:03:19,400 --> 00:03:19,970 And loan. 49 00:03:22,380 --> 00:03:23,160 OK, perfect. 50 00:03:23,190 --> 00:03:26,220 We're going to start by unit testing the behavior for withdrawing. 51 00:03:26,670 --> 00:03:31,860 We want to make sure the correct amount gets withdrawn from the checking account under normal circumstances. 52 00:03:32,520 --> 00:03:35,340 So what we'll do is create a unit test. 53 00:03:36,770 --> 00:03:39,620 Public void would draw. 54 00:03:42,300 --> 00:03:46,410 And what we need to do is withdraw from the checking account that's at index zero. 55 00:03:47,020 --> 00:03:48,390 So accounts. 56 00:03:50,060 --> 00:03:52,640 At Index zero, that would draw. 57 00:03:53,910 --> 00:03:56,610 And we're going to withdraw 14 40. 58 00:03:59,290 --> 00:04:01,780 Then we'll make an assertion assert equals. 59 00:04:03,550 --> 00:04:09,930 The assertion expects eighty four point five one after we get the account balance accounts out of like 60 00:04:09,970 --> 00:04:11,680 zero dark get balance. 61 00:04:17,720 --> 00:04:19,370 So instead of checking, not Java. 62 00:04:20,350 --> 00:04:23,500 We'll update the current balance, SuperDart set balance. 63 00:04:24,740 --> 00:04:28,220 By minus thing, the amount from the current balance. 64 00:04:30,340 --> 00:04:34,210 All right, and before we run our tests, let's just return true by default. 65 00:04:34,630 --> 00:04:36,040 We'll address that later on. 66 00:04:37,410 --> 00:04:39,780 Now we can run our test and see if it works. 67 00:04:43,140 --> 00:04:48,540 And it still fails, and it seems like the value is off by decimal points, because this is money, 68 00:04:48,540 --> 00:04:50,790 we're going to round to two decimal points. 69 00:04:51,180 --> 00:04:54,750 So what we can do is call the protected method super dot around. 70 00:04:57,040 --> 00:04:57,850 Right over here. 71 00:05:06,740 --> 00:05:07,670 Rerun your test. 72 00:05:11,100 --> 00:05:11,790 And perfect. 73 00:05:12,600 --> 00:05:16,860 OK, now looking back at the requirements, now we're going to unit test this behavior. 74 00:05:17,370 --> 00:05:23,610 The checking account charges an overdraft fee of five dollars and fifty cents if the amount being withdrawn 75 00:05:23,610 --> 00:05:25,260 exceeds the account balance. 76 00:05:25,500 --> 00:05:30,210 So we want to make sure this overdraft fee gets deducted if they try to withdraw more than what's in 77 00:05:30,210 --> 00:05:30,930 their balance. 78 00:05:31,260 --> 00:05:32,490 So back here? 79 00:05:33,520 --> 00:05:35,050 We'll create another unit tests. 80 00:05:36,340 --> 00:05:36,760 Test. 81 00:05:38,700 --> 00:05:43,140 And the unit test will be called overdraft public void overdraft. 82 00:05:44,660 --> 00:05:48,440 And we need to withdraw from the checking account and index zero. 83 00:05:48,890 --> 00:05:53,110 So we'll say accounts and index zero, that would draw. 84 00:05:54,250 --> 00:05:58,900 And we'll be withdrawing fifteen thirty four point forty three. 85 00:06:01,680 --> 00:06:05,100 And then here we'll make an assertion will assert equals. 86 00:06:07,110 --> 00:06:15,750 The expected value is negative $15 and 42 cents after we get the account's balance accounts at index 87 00:06:15,750 --> 00:06:18,240 zero, don't get balance. 88 00:06:21,530 --> 00:06:24,380 Run the test, and it obviously should fail. 89 00:06:25,850 --> 00:06:27,950 Now we can write code to make it pass. 90 00:06:28,980 --> 00:06:30,840 So back in checking. 91 00:06:31,880 --> 00:06:32,660 We'll see if. 92 00:06:33,740 --> 00:06:40,100 The current balance to get balance minus the amount being withdrawn. 93 00:06:41,940 --> 00:06:43,010 Smaller than zero. 94 00:06:46,410 --> 00:06:52,020 Then we'll update the current balance, super accept balance, super tight get balance. 95 00:06:54,380 --> 00:06:55,970 Minus amounts. 96 00:06:57,050 --> 00:06:59,630 Minus five dollars and fifty cents. 97 00:07:00,970 --> 00:07:01,870 But hold on a second. 98 00:07:01,900 --> 00:07:03,640 This seems like a pretty important value. 99 00:07:03,670 --> 00:07:06,220 So it'd be safer to use a constant tear instead. 100 00:07:06,670 --> 00:07:10,120 So what I'll do is I'll declare a private. 101 00:07:11,440 --> 00:07:16,390 Static final double overdraft fee. 102 00:07:18,500 --> 00:07:20,480 Is equal to five dollars and fifty cents. 103 00:07:21,630 --> 00:07:24,090 And will use that constant instead. 104 00:07:26,300 --> 00:07:29,330 Because there's no risk of accidentally changing a constant. 105 00:07:30,110 --> 00:07:35,360 All right, and in the event that this if statement gets executed, we want to break the entire function 106 00:07:35,360 --> 00:07:39,710 by returning crew here because obviously you don't want this to run. 107 00:07:40,040 --> 00:07:42,260 And then that's true and that will just mess everything up. 108 00:07:42,830 --> 00:07:46,430 So we'll go back to account tests, run the test. 109 00:07:49,950 --> 00:07:55,620 And once again, with doubles, we got the issue of having way too many decimal points, we're dealing 110 00:07:55,620 --> 00:07:58,440 with money, so we went around to two decimal places. 111 00:07:58,950 --> 00:08:00,690 So over here. 112 00:08:01,670 --> 00:08:04,610 And checking, we'll have to call SuperDart around. 113 00:08:10,580 --> 00:08:11,570 We were on the test. 114 00:08:17,540 --> 00:08:17,870 OK. 115 00:08:18,440 --> 00:08:22,220 Back door requirements, that text will a unit test this behavior? 116 00:08:22,490 --> 00:08:26,960 We want to make sure that withdrawal doesn't happen if the amount surpasses the overdraft limit. 117 00:08:27,500 --> 00:08:29,810 So we'll create a unit test. 118 00:08:33,429 --> 00:08:33,970 Public. 119 00:08:35,710 --> 00:08:36,280 Void. 120 00:08:38,000 --> 00:08:39,409 Overdraft limit. 121 00:08:42,679 --> 00:08:44,810 Inside, I'm going to withdraw. 122 00:08:50,080 --> 00:08:54,640 Seventeen twenty six from the checking accounts. 123 00:08:56,260 --> 00:09:00,730 And then we're going to assert that the resulting balance shouldn't change, it should remain. 124 00:09:01,330 --> 00:09:04,090 Uh, fifteen twenty four point five one. 125 00:09:06,510 --> 00:09:11,130 When we get the account balance accounts, zero, don't get balance. 126 00:09:12,080 --> 00:09:12,470 OK. 127 00:09:12,860 --> 00:09:13,790 Run the test. 128 00:09:16,320 --> 00:09:17,250 And it fails. 129 00:09:17,430 --> 00:09:19,770 Now we just got to write code to make it pass. 130 00:09:20,840 --> 00:09:23,090 Back here, we'll check if the current balance. 131 00:09:25,160 --> 00:09:30,320 If super don't get balance minus amounts. 132 00:09:32,310 --> 00:09:37,590 Is smaller than negative 200, then well, wait a second. 133 00:09:37,680 --> 00:09:42,750 This seems like an important value, and it would be safer once again to use a constant here instead. 134 00:09:43,260 --> 00:09:47,010 So we'll declare a private static. 135 00:09:48,040 --> 00:09:49,930 Final double. 136 00:09:51,350 --> 00:09:55,820 Constant named overdraft limit equal to $200. 137 00:09:59,620 --> 00:10:04,450 And we'll say if superdog, that balance minus amount is smaller than the overdraft limit. 138 00:10:06,990 --> 00:10:08,310 Then we'll just return false. 139 00:10:09,490 --> 00:10:11,260 That will break the entire function. 140 00:10:11,310 --> 00:10:12,720 Let's make this an if. 141 00:10:15,040 --> 00:10:15,670 And you know what? 142 00:10:15,760 --> 00:10:18,550 Let's just create a chain of if else. 143 00:10:20,110 --> 00:10:21,910 That looks a lot better to me. 144 00:10:24,060 --> 00:10:24,870 All right. 145 00:10:25,530 --> 00:10:26,880 We can rerun our test. 146 00:10:29,980 --> 00:10:31,570 And that works perfect. 147 00:10:32,820 --> 00:10:37,230 All right, back here, the next piece of behavior we're going to unit test is the withdrawal fee. 148 00:10:37,590 --> 00:10:42,810 We want to make sure that it's charged a $5 fee if they attempt to withdraw from a savings account. 149 00:10:43,350 --> 00:10:45,930 So we'll create a unit test. 150 00:10:47,670 --> 00:10:48,180 Test. 151 00:10:48,750 --> 00:10:51,990 Public void, withdrawal fee. 152 00:10:57,790 --> 00:11:03,700 And we're going to withdraw $100 from the savings accounts, accounts and index one. 153 00:11:04,300 --> 00:11:06,190 Well, withdraw $100. 154 00:11:07,710 --> 00:11:14,190 And then we're going to make an assertion that the resulting balance is twenty one hundred thirty six 155 00:11:14,190 --> 00:11:19,350 dollars point sixty cents as we get the current balance for the savings account. 156 00:11:20,130 --> 00:11:22,290 Count that index one, don't get balance. 157 00:11:23,580 --> 00:11:24,090 All right. 158 00:11:24,120 --> 00:11:25,050 Run the test. 159 00:11:28,070 --> 00:11:29,510 And it fails. 160 00:11:30,200 --> 00:11:36,380 Now we just got to write code to make it past so inside the redraw method for savings. 161 00:11:37,160 --> 00:11:41,210 We'll update the balance super set balance. 162 00:11:41,870 --> 00:11:45,290 We'll get the current balance, super Typekit balance. 163 00:11:46,420 --> 00:11:47,650 Minus the amount. 164 00:11:48,660 --> 00:11:50,310 Minus $5. 165 00:11:52,080 --> 00:11:57,360 Once again, $5, it seems like an important value, so we're going to declare it as a constant here, 166 00:11:57,360 --> 00:11:59,940 we'll say private static. 167 00:12:01,000 --> 00:12:02,260 Final double. 168 00:12:04,480 --> 00:12:05,350 What drove the. 169 00:12:08,900 --> 00:12:10,370 Is equal to $5. 170 00:12:13,720 --> 00:12:15,490 And here we'll use a constant instead. 171 00:12:18,980 --> 00:12:21,830 And, as always, will around to two decimal places. 172 00:12:26,890 --> 00:12:29,890 And return true to indicate that the withdrawal was successful. 173 00:12:30,550 --> 00:12:35,260 Now, usually in a savings account, you shouldn't be able to make a withdrawal that exceeds your balance. 174 00:12:35,680 --> 00:12:38,300 But it didn't say anything in the requirements tax. 175 00:12:38,320 --> 00:12:40,750 So whatever in the Java world, we're going to permit it. 176 00:12:42,400 --> 00:12:43,270 Run the test. 177 00:12:46,650 --> 00:12:47,520 And it passes. 178 00:12:49,000 --> 00:12:51,820 All right, we're going to continue with the remaining tasks in the next video. 15145

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