This course will introduce you to some of the most powerful programming concepts in Java, including: objects, inheritance and collections. You will learn how to use these object-oriented programming concepts in code examples, discover how these concepts are used in applications that require user input, and understand the benefits of mastering these concepts in Java.By the end of the course, you will create your own game, understand how and when to apply foundational Java concepts, and will gain a deeper understanding of the tools and logic that professional Java developers use everyday. You will also have the Java programming foundations you need to take our Android Developer Nanodegree program.