Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Byte Size Chunks: Java Object-Oriented Programming & Design
Rating: 4.3 out of 5(26 ratings)
2,623 students

Byte Size Chunks: Java Object-Oriented Programming & Design

A little treat with all you need to know about Object-Oriented Programming in Java
Created byLoony Corn
Last updated 1/2016
English

What you'll learn

  • Understand Object-Oriented programming concepts at the level where you can have intelligent design conversations with an experienced software engineer
  • Understand the nuances of Java specific constructs in serialisation, exception-handling, cloning, the immutability of strings, primitive and object reference types
  • Understand class and interface design
  • Define, implement and instantiate objects
  • Create class hierarchies using inheritance
  • Apply and benefit from encapsulation, runtime polymorphism and interface-driven programming

Course content

5 sections37 lectures6h 50m total length
  • Objects are puppies3:45
    Before we start with the serious stuff, remember this - Objects, like puppies, are your best friends.
  • Classes and Objects: An Object-Oriented State of Mind18:59

    Object-oriented programming languages require you to think in terms of objects and classes. We formally introduce these concepts, as well as encapsulation, abstraction, inheritance and other basic tenets of OO programming. Next come instantiation, member variables and member functions (static and non-static), start with access modifiers (public, private, protected) and finish with constructors and finalizers.

  • Static Variables and Methods6:47

    Static member variables and static member functions are class-specific, not object-specific.

  • Access Modifiers14:52

    Member variables and functions can be marked public, private or protected - these keywords are called access modifiers, and they govern the access that derived class objects have to their corresponding base class objects.

  • Java Keyboards
  • Classes and Objects: A Simple Example I11:57

    A simple coding drill that demonstrates all that we've covered so far: defining classes,instantiation(creating objects), different member variables and different member functions, getters, setters, constructors and finalizers.

  • Classes and Objects: A Simple Example II9:17

    We continue our simple coding drill that demonstrates all that we've covered so far: defining classes,instantiation(creating objects), different member variables and different member functions, getters, setters, constructors and finalizers. In this bit, we focus on instantiating objects, and on static member data.

  • Is-A Inheritance - setting up a class hierarchy8:57

    What does it really mean for a class to derive from another class? We examine the idea of inheritance using Shapes.

  • Is-A Inheritance - parent class, child class relationship7:09

    We continue with our exploration of inheritance and explore how derived class objects have a full version of the base class object within them. This is illustrated using a class hierarchy involving planes and fighter planes.

  • Runtime polymorphism14:21

    Runtime polymorphism is an important OO concept. If an object of type Rectangle holds a reference to derived class Square, will our shape behave like a Rectangle or a Square?

  • The Object Base Class6:08

    We explore the Object base class, which all Java reference types derive from.

  • Interface: Introduction14:19

    We introduce Interfaces: a special type of classes that have only function signatures but no function implementations.

  • Interfaces vs Abstract Base Class6:43

    Abstract base classes and abstract functions are covered in this class. We also compare when it makes sense to use interfaces, and when abstract base classes are a better choice.

  • Interfaces
  • Interfaces and Abstract Base Class
  • Inheritance
  • Interfaces in Detail15:36

    Upcasting, downcasting and the instanceof operator. Upcasting is OK but be careful with downcasting!

  • Interface Default Methods: Avoid Backward Compatibility Nightmares11:15

    Interface default methods are a new feature in Java, that allow us to go back and retro-fit new methods into old interfaces. Interface default methods involve adding implementations to interfaces, which might seem like cheating, but its all in a great cause: this prevents an explosion of the class hierarchy and maintains backward compatibility in code.

  • Interfaces and Inheritance in Action18:58

    We've talked a lot about interfaces, now let's walk the talk with a nice little drill.

  • Classes and Objects

Requirements

  • No pre-requisites, this class starts from basics :-)

Description

  • Prerequisites: Basic understanding of Java
  • Taught by a Stanford-educated, ex-Googler, husband-wife team
  • Please don't take this class if you have already signed up for our From 0 to 1: Learn Java Programming course (that includes a far longer and more in-depth version of this material)

This is a quick and handy course with exactly what you need to know (nothing more, nothing less!) about Object-Oriented programming in Java

Let’s parse that.

  • The course is quick and handy: It explains object-oriented programming in Java in just the right level of detail for you to put these to work today.
  • The course has exactly what you need - nothing more, nothing less. It starts from zero, builds up the design, then gives plenty of real-world examples, but crisply and quickly.
  • The course is also quirky. The examples are irreverent. Lots of little touches: repetition, zooming out so we remember the big picture, active learning with plenty of quizzes. There’s also a peppy soundtrack, and art - all shown by studies to improve cognition and recall.

What's covered:

  • The Object-Oriented Paradigm: Classes, Objects, Interfaces, Inheritance; how an OO mindset differs from a functional or imperative programming mindset;
  • Mechanics: the mechanics of OO - access modifiers, dynamic dispatch, abstract base classes v interfaces.
  • Principles: The underlying principles of OO: encapsulation, abstraction, polymorphism
  • Interfaces, abstract base classes and interface default methods
  • Packages and Jars: The plumbing is important to understand too.
  • Language Features: Serialisation; why the Cloneable interface sucks; exception handling; the immutability of Strings;
  • Types: the Object base class; the instanceof operator, primitive and object reference types; pass-by-value and pass-by-object-reference.

Who this course is for:

  • Yep! Folks that are new to (or somewhat intimidated by) Object Oriented Programming
  • Yep! Experienced C programmers looking to make the leap from procedural/imperative to object-oriented programming