java-development-for-beginners-learnit / 13 - Object-oriented programming /002 Classes & Objects_en.srt
| 1 | |
| 00:00:05,000 --> 00:00:06,000 | |
| Hello, Jim. | |
| 2 | |
| 00:00:06,000 --> 00:00:08,000 | |
| So they were going to run with you with the glasses. | |
| 3 | |
| 00:00:09,000 --> 00:00:12,000 | |
| We'll talk about what glass can contain on good examples. | |
| 4 | |
| 00:00:12,000 --> 00:00:17,000 | |
| We learn what our fields and utilization logs, constructors methods and nested classes. | |
| 5 | |
| 00:00:17,000 --> 00:00:21,000 | |
| I'm going to explain to you what getters and setters are and how we can use them. | |
| 6 | |
| 00:00:21,000 --> 00:00:26,000 | |
| We are going to create our own class and we'll create object of our custom class together. | |
| 7 | |
| 00:00:26,000 --> 00:00:28,000 | |
| Let's start from the previous lesson. | |
| 8 | |
| 00:00:28,000 --> 00:00:33,000 | |
| You already know that class is our template for objects, but what does it consist of? | |
| 9 | |
| 00:00:33,000 --> 00:00:41,000 | |
| Glass can contain constructors, fields, methods and utilization blocks and nested classes to understand | |
| 10 | |
| 00:00:41,000 --> 00:00:41,000 | |
| and better. | |
| 11 | |
| 00:00:41,000 --> 00:00:43,000 | |
| Let's jump to example. | |
| 12 | |
| 00:00:43,000 --> 00:00:48,000 | |
| Let's imagine we are implementing online store and we need to implement our virtual card for shopping. | |
| 13 | |
| 00:00:49,000 --> 00:00:53,000 | |
| You already know OPIS and you know that everything is an object. | |
| 14 | |
| 00:00:53,000 --> 00:00:56,000 | |
| Take into account we expect multiple users on our website. | |
| 15 | |
| 00:00:56,000 --> 00:00:58,000 | |
| We are going to have a lot of cards. | |
| 16 | |
| 00:00:58,000 --> 00:01:01,000 | |
| We need to have a template for card object. | |
| 17 | |
| 00:01:01,000 --> 00:01:04,000 | |
| That's why we need to create card class. | |
| 18 | |
| 00:01:04,000 --> 00:01:05,000 | |
| Here's card class. | |
| 19 | |
| 00:01:05,000 --> 00:01:09,000 | |
| I created it beforehand to save time during this video lesson. | |
| 20 | |
| 00:01:09,000 --> 00:01:11,000 | |
| I will walk you through it line by line. | |
| 21 | |
| 00:01:12,000 --> 00:01:14,000 | |
| Our goal now to understand what class can contain. | |
| 22 | |
| 00:01:15,000 --> 00:01:17,000 | |
| First of all, class can contain fields. | |
| 23 | |
| 00:01:18,000 --> 00:01:19,000 | |
| Often fields are called properties. | |
| 24 | |
| 00:01:20,000 --> 00:01:25,000 | |
| With the help of the fields we can express state of specific object fields can have different modifiers. | |
| 25 | |
| 00:01:26,000 --> 00:01:30,000 | |
| For example, fields can be static and non static, final and non final. | |
| 26 | |
| 00:01:30,000 --> 00:01:35,000 | |
| We are going to have separate lesson about static keyword and static elements in Java and we'll discuss | |
| 27 | |
| 00:01:35,000 --> 00:01:36,000 | |
| final keywords. | |
| 28 | |
| 00:01:36,000 --> 00:01:40,000 | |
| Also in separate lesson, this lesson only about classes. | |
| 29 | |
| 00:01:40,000 --> 00:01:43,000 | |
| So this is all fields which we have in our class. | |
| 30 | |
| 00:01:43,000 --> 00:01:45,000 | |
| Class also can contain initialization blocks. | |
| 31 | |
| 00:01:46,000 --> 00:01:49,000 | |
| We may have static and on static initialization blocks. | |
| 32 | |
| 00:01:49,000 --> 00:01:50,000 | |
| Why do we need them? | |
| 33 | |
| 00:01:50,000 --> 00:01:55,000 | |
| For example, I have some fields which I want to be initialized with values by default. | |
| 34 | |
| 00:01:56,000 --> 00:01:59,000 | |
| In this case, every timecards object will be created. | |
| 35 | |
| 00:01:59,000 --> 00:02:05,000 | |
| Card counter will be incremented in case cards will be created without user i.e. I know that I need | |
| 36 | |
| 00:02:05,000 --> 00:02:07,000 | |
| to sign this card to some user. | |
| 37 | |
| 00:02:08,000 --> 00:02:13,000 | |
| Let it be special user with ID one and one of the properties has tax time. | |
| 38 | |
| 00:02:13,000 --> 00:02:16,000 | |
| This is also custom type described by us. | |
| 39 | |
| 00:02:16,000 --> 00:02:18,000 | |
| I will show it to you later in this lesson. | |
| 40 | |
| 00:02:19,000 --> 00:02:24,000 | |
| But now imagine that you have this field and you don't want to leave it, not initialized. | |
| 41 | |
| 00:02:24,000 --> 00:02:27,000 | |
| What default value has all reference types of data? | |
| 42 | |
| 00:02:27,000 --> 00:02:28,000 | |
| No. | |
| 43 | |
| 00:02:28,000 --> 00:02:34,000 | |
| And according to logic that I implemented, I know that tax should not be known to avoid no pointer | |
| 44 | |
| 00:02:34,000 --> 00:02:40,000 | |
| exception because I use this variable in court below and b what stands for null pointer exception, | |
| 45 | |
| 00:02:40,000 --> 00:02:44,000 | |
| one of the most widespread exception which happens when you call method or new value. | |
| 46 | |
| 00:02:45,000 --> 00:02:47,000 | |
| That's why it's called no pointer exception. | |
| 47 | |
| 00:02:48,000 --> 00:02:50,000 | |
| We'll learn more about exceptions in separate section. | |
| 48 | |
| 00:02:50,000 --> 00:02:54,000 | |
| For now, I want at least some default value should be assigned to this variable. | |
| 49 | |
| 00:02:55,000 --> 00:02:57,000 | |
| That is exactly what I'm doing here. | |
| 50 | |
| 00:02:57,000 --> 00:03:02,000 | |
| I using this civilization look to initialize this field, the similar situation with our discount object. | |
| 51 | |
| 00:03:02,000 --> 00:03:09,000 | |
| I initialize this field to make sure it won't be no talking about starting blocks, it is worth to mention | |
| 52 | |
| 00:03:09,000 --> 00:03:13,000 | |
| that they are very narrow application domain Whiskas class example. | |
| 53 | |
| 00:03:13,000 --> 00:03:16,000 | |
| It was hard for me to come up with the example of static initialization block. | |
| 54 | |
| 00:03:17,000 --> 00:03:22,000 | |
| This block will be executed only once one class will be uploaded into GBM. | |
| 55 | |
| 00:03:22,000 --> 00:03:25,000 | |
| In this case we just write text to console. | |
| 56 | |
| 00:03:25,000 --> 00:03:29,000 | |
| Good example of static Blokland civilization usage is driver classis. | |
| 57 | |
| 00:03:29,000 --> 00:03:35,000 | |
| You always need to register driver in the system so it would be comfortable to use static initialization | |
| 58 | |
| 00:03:35,000 --> 00:03:36,000 | |
| work for this. | |
| 59 | |
| 00:03:36,000 --> 00:03:41,000 | |
| For example, once driver class is uploaded into GBM, we can register it in some services. | |
| 60 | |
| 00:03:42,000 --> 00:03:45,000 | |
| This is a real life example which we will see later in this course. | |
| 61 | |
| 00:03:45,000 --> 00:03:50,000 | |
| But now you at least understand how potentially we can use static in civilization. | |
| 62 | |
| 00:03:50,000 --> 00:03:52,000 | |
| Bloks problems it again. | |
| 63 | |
| 00:03:52,000 --> 00:03:59,000 | |
| Universalization looks let's move on may contain constructor's constructor is a special method which | |
| 64 | |
| 00:03:59,000 --> 00:04:01,000 | |
| should be called to instantiate object. | |
| 65 | |
| 00:04:01,000 --> 00:04:06,000 | |
| Important things to mention about the constructor constructor name should always be the same as class | |
| 66 | |
| 00:04:06,000 --> 00:04:07,000 | |
| name. | |
| 67 | |
| 00:04:07,000 --> 00:04:12,000 | |
| If your class name is called, then constructor is also called rule about writing. | |
| 68 | |
| 00:04:12,000 --> 00:04:15,000 | |
| Method starting from lowercase is not applied to constructors. | |
| 69 | |
| 00:04:15,000 --> 00:04:17,000 | |
| It doesn't have return type. | |
| 70 | |
| 00:04:17,000 --> 00:04:21,000 | |
| You remember that all method should have return type in constructor. | |
| 71 | |
| 00:04:21,000 --> 00:04:27,000 | |
| You should not specify return time because constructors always by default return reference to the object | |
| 72 | |
| 00:04:27,000 --> 00:04:27,000 | |
| and keep memory. | |
| 73 | |
| 00:04:28,000 --> 00:04:30,000 | |
| You always have constructor by default. | |
| 74 | |
| 00:04:30,000 --> 00:04:31,000 | |
| Let me show you this. | |
| 75 | |
| 00:04:32,000 --> 00:04:36,000 | |
| Even if I wouldn't have this constructors, I would still have default one. | |
| 76 | |
| 00:04:36,000 --> 00:04:41,000 | |
| Let me comment on this court and now let's jump to the demo file and create card object. | |
| 77 | |
| 00:04:42,000 --> 00:04:45,000 | |
| Let me declare a variable of type card and assign cards. | |
| 78 | |
| 00:04:45,000 --> 00:04:46,000 | |
| Object to it. | |
| 79 | |
| 00:04:46,000 --> 00:04:48,000 | |
| The great object I write new keyword. | |
| 80 | |
| 00:04:49,000 --> 00:04:55,000 | |
| This is a common to Java to allocate memory for object in here and after that I call constructor and | |
| 81 | |
| 00:04:55,000 --> 00:04:56,000 | |
| print cards object to cancel. | |
| 82 | |
| 00:04:57,000 --> 00:04:58,000 | |
| Let's run this program. | |
| 83 | |
| 00:04:59,000 --> 00:05:05,000 | |
| And here we are, you see that quote from Start, a conservation blog executed first, and here's our | |
| 84 | |
| 00:05:05,000 --> 00:05:06,000 | |
| character object printed to console. | |
| 85 | |
| 00:05:07,000 --> 00:05:09,000 | |
| Now let me create custom constructor. | |
| 86 | |
| 00:05:09,000 --> 00:05:13,000 | |
| Let's pretend I want to create card with specified cartridges and user aguy. | |
| 87 | |
| 00:05:14,000 --> 00:05:18,000 | |
| And when I created custom constructor, there is no default constructor anymore. | |
| 88 | |
| 00:05:18,000 --> 00:05:20,000 | |
| And here is see compilation error. | |
| 89 | |
| 00:05:20,000 --> 00:05:22,000 | |
| The constructor card is undefined. | |
| 90 | |
| 00:05:23,000 --> 00:05:27,000 | |
| That's why if you want to declare a custom constructor and keep constructor by default, you should | |
| 91 | |
| 00:05:27,000 --> 00:05:32,000 | |
| specified explicitly when I am Corman's, this constructor compilation error is gone. | |
| 92 | |
| 00:05:33,000 --> 00:05:36,000 | |
| Let's take a look how we can use custom constructor. | |
| 93 | |
| 00:05:36,000 --> 00:05:42,000 | |
| We know that our constructor can take two integers as arguments and you see that the first parameter | |
| 94 | |
| 00:05:42,000 --> 00:05:48,000 | |
| will be assigned to a property of this object in the second parameter will be assigned to user the property | |
| 95 | |
| 00:05:48,000 --> 00:05:49,000 | |
| of the current object. | |
| 96 | |
| 00:05:50,000 --> 00:05:56,000 | |
| You can see that I use this keyword to reference current object because this idea, if this property | |
| 97 | |
| 00:05:56,000 --> 00:06:03,000 | |
| in card object and ID is just a local variable of the constructor, that that makes sense. | |
| 98 | |
| 00:06:03,000 --> 00:06:09,000 | |
| So inside the class you have keywords which always reference to the specific object. | |
| 99 | |
| 00:06:10,000 --> 00:06:16,000 | |
| Now you can call your custom constructor like this new card and parse constructor arguments when we | |
| 100 | |
| 00:06:16,000 --> 00:06:17,000 | |
| bring second car token. | |
| 101 | |
| 00:06:17,000 --> 00:06:22,000 | |
| So you can see that IJI and user idea of this class is different from the first class object. | |
| 102 | |
| 00:06:23,000 --> 00:06:28,000 | |
| Now, when you know what the constructor's, you might be wondering why do we need initialization blocks | |
| 103 | |
| 00:06:28,000 --> 00:06:33,000 | |
| if they have constructor's on this example, you can see that no matter which constructor will be called | |
| 104 | |
| 00:06:33,000 --> 00:06:35,000 | |
| utilisation, LOC will be executed. | |
| 105 | |
| 00:06:35,000 --> 00:06:36,000 | |
| In both cases. | |
| 106 | |
| 00:06:36,000 --> 00:06:42,000 | |
| Knowing this, you can use initialization blocks to put their code, which you want to execute no matter | |
| 107 | |
| 00:06:42,000 --> 00:06:43,000 | |
| what constructor will be called. | |
| 108 | |
| 00:06:43,000 --> 00:06:47,000 | |
| Is it clear now what else our class can have? | |
| 109 | |
| 00:06:47,000 --> 00:06:49,000 | |
| Our class can have methods. | |
| 110 | |
| 00:06:49,000 --> 00:06:51,000 | |
| That is behavior of our object. | |
| 111 | |
| 00:06:51,000 --> 00:06:54,000 | |
| For example, our cars can add new product to the cart. | |
| 112 | |
| 00:06:55,000 --> 00:06:57,000 | |
| Let's not get deep dive into the logic here. | |
| 113 | |
| 00:06:57,000 --> 00:07:03,000 | |
| I will share with you source code of this lesson and you will be able to take a look miserably at implementation. | |
| 114 | |
| 00:07:03,000 --> 00:07:09,000 | |
| But now let's understand that methods are behavior of our object and can change state of our object. | |
| 115 | |
| 00:07:10,000 --> 00:07:13,000 | |
| And now you can understand the difference between method and function. | |
| 116 | |
| 00:07:14,000 --> 00:07:17,000 | |
| Function can exist without object independently. | |
| 117 | |
| 00:07:17,000 --> 00:07:19,000 | |
| Method is the behavior of the object. | |
| 118 | |
| 00:07:20,000 --> 00:07:26,000 | |
| That's why in Olby we call specific box of code, which can be invoked by their names methods but not | |
| 119 | |
| 00:07:26,000 --> 00:07:28,000 | |
| functions methods. | |
| 120 | |
| 00:07:28,000 --> 00:07:31,000 | |
| This is something that is always associated with an object. | |
| 121 | |
| 00:07:31,000 --> 00:07:37,000 | |
| In this particular example, our card contains an array of products and we can add product to this card, | |
| 122 | |
| 00:07:37,000 --> 00:07:39,000 | |
| namely to this array of products. | |
| 123 | |
| 00:07:40,000 --> 00:07:42,000 | |
| That is exactly what this method does. | |
| 124 | |
| 00:07:42,000 --> 00:07:46,000 | |
| It adds new product and change the state of our cart. | |
| 125 | |
| 00:07:46,000 --> 00:07:51,000 | |
| Notice that each time new product is added to the cart, other methods are called to calculate total | |
| 126 | |
| 00:07:51,000 --> 00:07:53,000 | |
| net price and total gross price. | |
| 127 | |
| 00:07:54,000 --> 00:07:55,000 | |
| These are two private methods. | |
| 128 | |
| 00:07:56,000 --> 00:08:00,000 | |
| That means nobody outside this class can call these methods. | |
| 129 | |
| 00:08:00,000 --> 00:08:02,000 | |
| I can call these methods from this class. | |
| 130 | |
| 00:08:02,000 --> 00:08:07,000 | |
| Only X modifiers will be covered in detail in encapsulation. | |
| 131 | |
| 00:08:07,000 --> 00:08:10,000 | |
| Lesson in your code method and location might look like this. | |
| 132 | |
| 00:08:11,000 --> 00:08:16,000 | |
| You created car to object and after that use its behavior to add product to the cart products is also | |
| 133 | |
| 00:08:16,000 --> 00:08:17,000 | |
| our custom class. | |
| 134 | |
| 00:08:17,000 --> 00:08:22,000 | |
| By the way, here it is, just two properties for the sake of our example. | |
| 135 | |
| 00:08:23,000 --> 00:08:29,000 | |
| And he seemed concerned that after we added two products, total net price, total gross price and total | |
| 136 | |
| 00:08:29,000 --> 00:08:30,000 | |
| tax have been changed. | |
| 137 | |
| 00:08:31,000 --> 00:08:37,000 | |
| After these methods, I have other methods that are called getters and setters, why do we need them? | |
| 138 | |
| 00:08:38,000 --> 00:08:40,000 | |
| You see that all properties of cart objects are private. | |
| 139 | |
| 00:08:41,000 --> 00:08:46,000 | |
| That is because I want to have full control over how people can interact with my object and how they | |
| 140 | |
| 00:08:46,000 --> 00:08:47,000 | |
| can change. | |
| 141 | |
| 00:08:47,000 --> 00:08:51,000 | |
| State of object was usually used to rid properties of objects. | |
| 142 | |
| 00:08:51,000 --> 00:08:57,000 | |
| You can be 100 if we are making our properties private so nobody could access them and change them, | |
| 143 | |
| 00:08:57,000 --> 00:08:59,000 | |
| then why do we need to create better sensors? | |
| 144 | |
| 00:09:00,000 --> 00:09:02,000 | |
| Let me explain you on this example. | |
| 145 | |
| 00:09:02,000 --> 00:09:08,000 | |
| You can create together and return your products array, but this means that everybody who has links | |
| 146 | |
| 00:09:08,000 --> 00:09:10,000 | |
| to your products array can change state of disarray. | |
| 147 | |
| 00:09:10,000 --> 00:09:16,000 | |
| Just using this reference, for example, having reference to products, every object I can add to more | |
| 148 | |
| 00:09:16,000 --> 00:09:20,000 | |
| products in it and state of the card will be different. | |
| 149 | |
| 00:09:20,000 --> 00:09:26,000 | |
| In this case, there would be two more products in CART, but now when you can write code of your car, | |
| 150 | |
| 00:09:26,000 --> 00:09:29,000 | |
| you can say that you want to give reference to this array. | |
| 151 | |
| 00:09:30,000 --> 00:09:35,000 | |
| Everyone who wants to investigate state of products are we can do this and you can return a copy of | |
| 152 | |
| 00:09:35,000 --> 00:09:37,000 | |
| the script by doing this. | |
| 153 | |
| 00:09:37,000 --> 00:09:42,000 | |
| You can be sure that even if in some other places reference to products that will be obtained, they | |
| 154 | |
| 00:09:42,000 --> 00:09:48,000 | |
| will get reference to the copy of your and won't be able to change state of our regional products away | |
| 155 | |
| 00:09:48,000 --> 00:09:49,000 | |
| from your car. | |
| 156 | |
| 00:09:49,000 --> 00:09:54,000 | |
| This is critical for us because based on the products from this array, we calculate total net and total | |
| 157 | |
| 00:09:54,000 --> 00:09:55,000 | |
| gross price. | |
| 158 | |
| 00:09:56,000 --> 00:10:01,000 | |
| Imagine that somebody would take the reference to products are a few more products to it without recalculate | |
| 159 | |
| 00:10:01,000 --> 00:10:05,000 | |
| total net and gross price and would just proceed to checkout with this car. | |
| 160 | |
| 00:10:06,000 --> 00:10:12,000 | |
| Customers would be happy that they got more items for free, but our management definitely won't be | |
| 161 | |
| 00:10:12,000 --> 00:10:12,000 | |
| happy. | |
| 162 | |
| 00:10:13,000 --> 00:10:18,000 | |
| And if I don't want that somebody said a completely new array of products in my car, I just don't create | |
| 163 | |
| 00:10:18,000 --> 00:10:19,000 | |
| Setar. | |
| 164 | |
| 00:10:19,000 --> 00:10:19,000 | |
| That's it. | |
| 165 | |
| 00:10:20,000 --> 00:10:24,000 | |
| But if you have Setar, you can verify arguments to make sure that they are valid. | |
| 166 | |
| 00:10:24,000 --> 00:10:30,000 | |
| According to our business logic, for example, everyone can, said Cartledge here, but nobody can | |
| 167 | |
| 00:10:30,000 --> 00:10:37,000 | |
| set a value less than zero because I wrote the code to verify this in case I'd is less than zero. | |
| 168 | |
| 00:10:37,000 --> 00:10:43,000 | |
| Just exit from this method and you can see that Rejon keyword is also used to exit method in both methods. | |
| 169 | |
| 00:10:44,000 --> 00:10:50,000 | |
| Even when you don't have intention to return some value from method or like here, for example, anybody | |
| 170 | |
| 00:10:50,000 --> 00:10:51,000 | |
| can add product to the cart. | |
| 171 | |
| 00:10:51,000 --> 00:10:57,000 | |
| But in case somebody is trying to add no into my array, I don't allow to do this and exit from method. | |
| 172 | |
| 00:10:57,000 --> 00:11:03,000 | |
| Remember that validation of all arguments which were passed to the method if the rule which you always | |
| 173 | |
| 00:11:03,000 --> 00:11:04,000 | |
| must follow. | |
| 174 | |
| 00:11:04,000 --> 00:11:12,000 | |
| By the way, if you want easily generated getters and setters, use next hotkey old shift s and select | |
| 175 | |
| 00:11:12,000 --> 00:11:13,000 | |
| generate getters and setters. | |
| 176 | |
| 00:11:14,000 --> 00:11:17,000 | |
| You can select fields for which you need getters and setters or only getters. | |
| 177 | |
| 00:11:17,000 --> 00:11:23,000 | |
| For example, if you don't want the grade setters and vice versa, press generate to generate code. | |
| 178 | |
| 00:11:23,000 --> 00:11:25,000 | |
| I already have all necessary getters and setters. | |
| 179 | |
| 00:11:25,000 --> 00:11:27,000 | |
| That is why I wouldn't press this button. | |
| 180 | |
| 00:11:27,000 --> 00:11:30,000 | |
| Now, in case you forgot hotkeys press mouse right. | |
| 181 | |
| 00:11:30,000 --> 00:11:33,000 | |
| Click select source and then generate getters and setters. | |
| 182 | |
| 00:11:34,000 --> 00:11:40,000 | |
| We have to string method here, we are going to talk about this method in details in the lesson about | |
| 183 | |
| 00:11:40,000 --> 00:11:40,000 | |
| object class. | |
| 184 | |
| 00:11:41,000 --> 00:11:46,000 | |
| But in the meantime, let me explain you what this method is about in a few words in Arkansas here we | |
| 185 | |
| 00:11:46,000 --> 00:11:49,000 | |
| see text representation of our the object. | |
| 186 | |
| 00:11:49,000 --> 00:11:52,000 | |
| That is because to string method is overridden here. | |
| 187 | |
| 00:11:52,000 --> 00:11:59,000 | |
| And you can see how the string is created from combination of fields from our car object when we pass | |
| 188 | |
| 00:11:59,000 --> 00:12:04,000 | |
| reference type to Winterland, method to string method call is invisible for us and when to string method | |
| 189 | |
| 00:12:04,000 --> 00:12:08,000 | |
| is called this code is executed and this string is returned. | |
| 190 | |
| 00:12:09,000 --> 00:12:15,000 | |
| That's why we see rideable representation of our card object to generate to string method use the same | |
| 191 | |
| 00:12:15,000 --> 00:12:19,000 | |
| hotkey as we discussed earlier, all shifts and select generate to string. | |
| 192 | |
| 00:12:20,000 --> 00:12:26,000 | |
| It says that I already have two string but still I want to show you details you can select which fields | |
| 193 | |
| 00:12:26,000 --> 00:12:30,000 | |
| methods you would like to use to create string which will be returned after the string method call. | |
| 194 | |
| 00:12:32,000 --> 00:12:37,000 | |
| Besides what we have already discussed, glasses can also contain nested glasses, nested glasses can | |
| 195 | |
| 00:12:37,000 --> 00:12:44,000 | |
| be static and non static, static nested glasses, usually called just nested static glasses and nested, | |
| 196 | |
| 00:12:44,000 --> 00:12:47,000 | |
| not static glasses, usually called inner glasses. | |
| 197 | |
| 00:12:48,000 --> 00:12:53,000 | |
| And here you see discount untax glasses we use for both of these types in our cars glass. | |
| 198 | |
| 00:12:54,000 --> 00:12:59,000 | |
| And I believe you remember the beginning reinitialize variables of these types with default values in | |
| 199 | |
| 00:12:59,000 --> 00:13:03,000 | |
| our initialization lock to not overwhelm you with information. | |
| 200 | |
| 00:13:03,000 --> 00:13:07,000 | |
| In this lesson, let's agree to learn types of classes in the separate lesson. | |
| 201 | |
| 00:13:07,000 --> 00:13:09,000 | |
| For now, let's repeat one more time. | |
| 202 | |
| 00:13:09,000 --> 00:13:16,000 | |
| One glass can contain glass, can contain fildes, initialization blocks, constructors methods, nested | |
| 203 | |
| 00:13:16,000 --> 00:13:17,000 | |
| classes. | |
| 204 | |
| 00:13:17,000 --> 00:13:22,000 | |
| And we know that nested classes could be nested static classes and in their classes. | |
| 205 | |
| 00:13:22,000 --> 00:13:27,000 | |
| I will share with you links to the source code in attachments to this lesson so you can review it one | |
| 206 | |
| 00:13:27,000 --> 00:13:27,000 | |
| more time. | |
| 207 | |
| 00:13:28,000 --> 00:13:30,000 | |
| Method classes will be discussed in the separate lesson. | |
| 208 | |
| 00:13:31,000 --> 00:13:33,000 | |
| And now let's review what we have learned today. | |
| 209 | |
| 00:13:34,000 --> 00:13:38,000 | |
| Today we learned what class can contain and how to create our custom objects. | |
| 210 | |
| 00:13:38,000 --> 00:13:43,000 | |
| Now you know the difference between a method and a function, really, of the concept of getters and | |
| 211 | |
| 00:13:43,000 --> 00:13:46,000 | |
| setters and how to generate them easily in eclipse. | |
| 212 | |
| 00:13:47,000 --> 00:13:51,000 | |
| Take a look one more time in the source code of examples which we reviewed during the lesson and be | |
| 213 | |
| 00:13:51,000 --> 00:13:53,000 | |
| prepared for the next lesson. | |
| 214 | |
| 00:13:53,000 --> 00:13:56,000 | |
| Thank you for your attention and see you in the next lesson. | |