Java can be intimidating to learn, but this course makes it easy by stepping you through all of the important Java concepts and getting you started quickly. Whether you are already an experienced programmer or new to programming in general, this course it designed to teach you to program in Java. In part 1 of this course we will learn about the basics of the Java programming language with more advanced topics being covered in the second course in this series.
Classes So let's go over what we're going to cover in this module. Well the first thing that we're going to do is we're going to answer the question of what is a class. We're going to define from a very high level, what a class is and try to really understand what a class is in object oriented programming and specifically in Java. Then we're going to take our understanding of the class and we're going to use that to define an object. We're going to see what the difference between an object and a class is because this is a really important distinction that you need to be able to make in Java. A lot of people get confused between a class and an object. And I really want to clear this up so that we have a good solid understanding to build from. Then we'll talk about how to make up a class, which is to use members. We'll talk about how members are the data and the methods that operate on a class. The data and then the way to manipulate that data and how that is tightly bound together in a class. Then I'll show you some examples of how to use a class. We'll create a class and we'll create some members for that class and then we'll see how we can create an object from that class. Then we'll talk about how to create methods and what a method is. I'll show you how to create a method on your class and the different kinds of methods that you can use in a class in order to manipulate the data in the class or to access that data. Then we'll get into some constructors. As we create our class in Java, we'll find that we need some way to initialize that class or just set its default values or to set some values on that class so that the object that gets created from that class can be used. And I'll show you how to do that by using constructors. And then finally we'll get into access modifiers which will allow us the capability to hide data in our class or to make it visible.
Inheritance and Composition Hi, this is John Sonmez from Pluralsight, and in this module we're going to be talking about Inheritance and Composition in Java. So let's go over what we're going to cover in this module. We're going to cover a lot of gourd here and this is a fairly complex topic, but we're going to try and make this as simple as possible and really try to get the most benefit that we can out of this so that we can design our programs in Java and our classes to be very easy to use and easy to reuse. So the first thing that we're going to talk about is an important distinction between inheritance and composition, which is the Is-A and Has-A relationship. And we're going to talk about how these two types of relationships between classes really define whether or not something is going to use inheritance or composition. Then we're going to go through some demos. I'm going to show you what basic inheritance looks like. We're just going to take a look at how we can create inheritance in Java, and then we're going to do the same thing for composition. I'm going to show you how to use composition inside Java. Then we're going to look at an interesting topic that confuses a lot of people, which is polymorphism. We're going to ask the question of what really is polymorphism? Do a lot of people that we talk to even understand what it means. Even though everyone kind of has an idea of what polymorphism is, a lot of people can give examples of polymorphism, but what is it really? What is the core of polymorphism? We're going to answer that question. Then we're going to get into a discussion about why we actually favor composition, and this is somewhat of a debated topic, but I'm going to give you my advice on this topic and tell you why in Java you should really be trying to use composition instead of inheritance wherever possible. And then finally we're going to cover the topic of interfaces. One of the things that we're going to need to be able to do in order to use composition instead of inheritance is to make use of interfaces, and I'm going to show you why and how to do that.
Generics Hi! This is John Sonmez from Pluralsight and in this module we're going to be talking about Generics in Java. So let's go over what we're going to cover in this module. The first thing that we're going to do is we're going to talk about what is a generic. We're going to answer the most basic question about generics and we're going to see why you might use a generic and what purpose it serves in the Java language. And I'm going to show you how to create a generic class. That is a generic type that can be used to basically reuse a class's code for different types, then I'll show you how to do the same thing except at the method level, we can create generics that operate at the method level. And then I'll show you how to do that in code as well. Then we'll go ahead and we'll see some examples of bounded generics which are a special way of declaring a generic that makes it so that it's restricted to a specific type or set of types. And then we'll look at another concept that has to do with generics which is using wildcards in generic which is the kind of generic that is a subtype or can represent multiple different types and you'll see why this might come in handy when using generics in Java. Finally, we'll talk about how generics are actually implemented in Java, and this is a really important concept to understand because in Java, generics are implemented using erasure. And we'll talk about what exactly erasure means and why that is important to you as a Java developer.