Hey everyone. Let's go ahead and get started with the supplemental material. So the first thing we have on our place is Java, which is a language we'll be using for Android development. >> And so the first key feature about Java that always sticks out, is it's object oriented. And Object Oriented is a very revolutionary idea that makes every programmer's life easier. And, basically object oriented is centered around object as the name implies. What is an object? >> An object is basically, it's as the word implies in real life also, it does something or it has a certain behavior. So, in programming you're gonna have many different behaviors. You're gonna wanna do many different things. So you can just make an object for each behavior you wanna do and encapsulate that. >> So, what's object oriented programming? All right, so with object-oriented programming we have certain advantages, disadvantages. We have code reuse and recycling, which means you can make one set of code and apply it to many different uses. We have encapsulation, which is basically privacy. So, if you have one set of code, and if you have another set of code later on, and if they're both interacting with each other, you can control what one program knows about the other program. Both programs are not completely vulnerable to the other. And lastly, we have design benefits. So, the first two points are basically things that combine to give Java lots of flexibility and design benefits. So, right there. So, right there we have an example. So, let's say we make an object called animal. It's an animal class. And then we're gonna have three other objects. We're gonna have a dog, a cat and a parrot. Now, both the dog and the cat, they're gonna have an age and they're gonna have a size. So instead of having separate implementations of age and size inside a dog and a cat. We can just have those implementations in animal. And then inherit it into a dog and a cat. >> This is because maybe you realize something, and you had to change something for the age. Age functions or whatever. You'd have to go in every single, you'd have to go through the cat, the dog to make all the changes. But now you can just change the animals and it's changed for everything. >> That's a very good point. So if you have something that goes up to 100 different objects and large scale programs. You will have to do many different objects. So by inheritance, you can just change one thing and it'll apply to all the others. And second thing, when I said encapsulation, so I talked about privacy there. And basically what privacy is that a dog and a cat that are raised similar in many ways but they are also different. A dog is a canine and a cat is a feline. So they're gonna have some functionalities that are different. So although they can inherit a lot of the same functionalities, a dog is gonna have certain functionalities that are different. And so a cat doesn't need to know about what a dog can do. And a dog doesn't need to know about what a cat can do. So encapsulation basically allows data hiding and you can keep everything very separate, very concise and that's what encapsulation does. However the disadvantages of all this is that >> We have large sizes because maybe you'll end up with kind of an inheritance. You'll have the cat having things from animal, and maybe things from other things >> Right >> And what not. >> So it can make your program slower at times and such. >> And Java's also an interpreted language, which means it needs to go through an interpreter to change your language into more of >> Compile code, machine code [CROSSTALK] >> For assembler and whatnot. Tends to lead to story programs as compared to say assembly. >> Right exactly. >> Oh yeah. This is also covered more in depth in the page documents as well as the previous course. Course 2, module 1. >> We go over these things more in detail in day two. >> Yeah, where we go over the concept of object oriented programming. Okay, so let's talk more about Java. >> And so, Java can be, like Randy said in the very opening, it can be applied for Android development >> So as we went over in the previous course, we're gonna be using SDK, you're gonna be using Android Studio a lot. Android Studio's completely run on Java. And all your Android phones actually run on Java, so that's one very good thing about Java. >> And there's tons of libraries available. You can look up anything. There's a ton of documentation too. So if you didn't know how say, a string worked in Java, you just type into Google, type in String, Java, and it'll come up with some documentation, tell you how you use it, what other functions or methods that are possible. >> And it's a very common language, so the more familiar you are with it, the better it's going to be. >> Yeah, there's tons of resources out there, so look around, check out documents, check out the previous course's >> [CROSSTALK]. Awesome. And then we'll see you guys next time.