We may earn an affiliate commission when you visit our partners.
Zoran Horvat

This course will help leverage your conceptual understanding to produce proper object-oriented code. You will learn how to replace procedural code with objects for the sake of correctness, flexibility, and maintainability.

Read more

This course will help leverage your conceptual understanding to produce proper object-oriented code. You will learn how to replace procedural code with objects for the sake of correctness, flexibility, and maintainability.

Procedural code can be replaced with objects to increase correctness, flexibility, and maintainability. In this course, Making Your Java 8 Code More Object-oriented, you’ll learn how to design truly object-oriented classes in the Java programming language. First, you’ll learn how to represent a discrete object state and behavior to avoid imperative branching constructs. Next, you’ll discover that null references are a needless pain. Finally, you'll explore alternatives to null - substitute objects and optional objects. When you're finished with this course, you’ll have the skills and knowledge of designing classes that avoid traditional imperative constructs, with features resulting from orchestrating well-encapsulated objects rich in behavior.

Enroll now

What's inside

Syllabus

Course Overview
Attaining Extensibility with Object-oriented Code
Rendering Branching over Boolean Flags Obsolete
Using Immutable Objects and Value Objects
Read more
Leveraging Special Case Objects to Remove Null Checks
Turning Optional Calls into Calls on Optional Objects

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Examines object-oriented programming, which is standard in virtually every industry
Teaches learners how to avoid imperative branching constructs, which enhances code quality
Explores the concept of null references, which can cause unnecessary code issues
Taught by Zoran Horvat, who is recognized for their work in object-oriented programming
Utilizes special case objects to remove null checks, which improves code efficiency
Builds a strong foundation for intermediate learners in the principles of object-oriented programming

Save this course

Save Making Your Java 8 Code More Object-oriented to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Making Your Java 8 Code More Object-oriented with these activities:
Review the basics of Java syntax
Refresh your understanding of Java syntax before starting the course.
Browse courses on Java Programming
Show steps
  • Go through a Java syntax tutorial.
  • Complete some Java syntax exercises.
Read Head First Java by Kathy Sierra and Bert Bates
Gain a deeper understanding of Java programming concepts by reading a comprehensive book on the subject.
Show steps
  • Find a copy of Head First Java.
  • Read the book thoroughly.
  • Complete the exercises in the book.
Follow a tutorial on object-oriented design in Java
Learn about object-oriented design principles and best practices by following a guided tutorial.
Show steps
  • Find a tutorial on object-oriented design in Java.
  • Follow the steps in the tutorial to create an object-oriented design for a simple Java program.
Five other activities
Expand to see all activities and additional details
Show all eight activities
Write Java code that replaces procedural code with objects
Practice writing object-oriented code to improve your understanding of object-oriented concepts and principles.
Show steps
  • Identify a block of procedural code that can be replaced with an object.
  • Create an object that represents the data and behavior of the code.
  • Replace the procedural code with calls to the object's methods.
Participate in a study group to discuss object-oriented design patterns
Join a study group to discuss object-oriented design patterns with other students.
Show steps
  • Find a study group to join.
  • Prepare for the study group by reading about object-oriented design patterns.
  • Participate in the study group discussion.
Write a blog post about your experience applying object-oriented concepts in Java
Reflect on your learning and share your insights with others by writing a blog post about your experience applying object-oriented concepts in Java.
Show steps
  • Identify the key concepts and principles you learned.
  • Write a blog post that explains these concepts and principles in your own words.
  • Share your blog post with others.
Build a Java application that demonstrates object-oriented principles
Apply your knowledge of object-oriented programming by building a Java application that demonstrates object-oriented principles.
Show steps
  • Design the object model for your application.
  • Implement the object-oriented design in Java.
  • Test and debug your application.
Contribute to an open-source Java project
Gain practical experience with object-oriented programming by contributing to an open-source Java project.
Show steps
  • Find an open-source Java project to contribute to.
  • Familiarize yourself with the project's codebase.
  • Make a contribution to the project.

Career center

Learners who complete Making Your Java 8 Code More Object-oriented will develop knowledge and skills that may be useful to these careers:
Software Engineer
A Software Engineer designs, builds, and maintains computer programs. An object-oriented approach is popular in software engineering. This course teaches those principles, leading to success as a Software Engineer. In particular, this course's coverage of replacing imperative code with objects to increase correctness, flexibility, and maintainability is highly relevant to software engineering.
Systems Analyst
Systems Analysts determine the needs of business organizations, and solve problems through analysis, design, and implementation. The principles taught in this course are common in systems analysis. Completing this course will help you to succeed as a Systems Analyst. Specific to this role is the course's focus on avoiding imperative branching constructs, with features resulting from orchestrating well-encapsulated objects rich in behavior.
Computer Programmer
Computer Programmers write and modify computer programs. One task of a Computer Programmer is to replace procedural code with objects. This course teaches the principles of how and why to do this. In particular, this course's coverage of orchestrating well-encapsulated objects to avoid imperative branching constructs is directly relevant to the day-to-day duties of a Computer Programmer.
Software Developer
Software Developers design, develop, and test software applications. The principles taught in this course are common in software development. Completing this course will help you to succeed as a Software Developer. Specific to this role is the course's focus on using immutable objects and value objects.
Computer Scientist
Computer Scientists conduct research, develop solutions, and design systems within the realm of computer science. This course may be useful to you in this role, as it follows the principles of computer science to teach you how to represent a discrete object state and behavior to avoid imperative branching constructs.
Information Technology Manager
Information Technology Managers plan, organize, and manage computer systems, including hardware and software. This course may be useful to you in this role, as it teaches the principles of using immutable objects and value objects.
Web Developer
Web Developers design, build, and maintain websites. This course may be useful to you in this role, as it teaches the principles of using special case objects to remove null checks.
Database Administrator
Database Administrators manage and maintain databases. This course may be useful to you in this role, as it teaches the principles of using optional calls to turn into calls on optional objects.
Business Analyst
Business Analysts analyze problems, identify needs, and develop solutions. This course may be useful to you in this role, as it teaches the principles of designing classes that avoid traditional imperative constructs.
Technical Writer
Technical Writers create documentation, manuals, and training materials for technical products. This course may be useful to you in this role, as it teaches the principles of designing classes that avoid traditional imperative constructs.
Project Manager
Project Managers plan, organize, and manage projects. This course may be useful to you in this role, as it teaches the principles of using special case objects to remove null checks.
Systems Administrator
Systems Administrators manage, operate, and secure computer systems. This course may be useful to you in this role, as it teaches the principles of designing classes that avoid traditional imperative constructs.
Quality Assurance Analyst
Quality Assurance Analysts test and evaluate software, and identify defects. This course may be useful to you in this role, as it teaches the principles of using immutable objects and value objects.
Network Administrator
Network Administrators manage and maintain computer networks. This course may be useful to you in this role, as it teaches the principles of using optional calls to turn into calls on optional objects.
Data Analyst
Data Analysts collect, analyze, and interpret data. This course may be useful to you in this role, as it teaches the principles of designing classes that avoid traditional imperative constructs.

Reading list

We've selected 11 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Making Your Java 8 Code More Object-oriented.
Covers effective Java programming principles and provides a deep dive into specific constructs of the Java programming language.
Focuses on improving the design and readability of software code, emphasizing object-oriented design principles.
Covers concurrency concepts and best practices in Java, including object-oriented approaches to handling concurrency.
Introduces test-driven development (TDD) principles and provides hands-on examples in Java, which can help improve software quality and maintainability.
Explores domain-driven design (DDD), an approach that aligns software design with business domain concepts, promoting object-oriented code that is more responsive to changing requirements.
Provides a practical guide to object-oriented design principles and patterns in Java, with a focus on code examples and best practices.
Provides a catalog of reusable design patterns that can be applied in various object-oriented programming scenarios.
Serves as an introductory text to Java programming, providing a comprehensive overview of the language's fundamentals.
Offers a comprehensive reference for Java, covering various aspects of the language, including object orientation and design patterns.
Provides a comprehensive overview of Java programming concepts, covering various topics from object-oriented programming to advanced language features.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Making Your Java 8 Code More Object-oriented.
Scala 2 Classes and Objects
Most relevant
Introduction to Object-Oriented Programming with Java II:...
Most relevant
The Java Object-Oriented Approach (Java SE 11 Developer...
Most relevant
Object-oriented Programming in C#
Most relevant
Object-oriented Programming in Java
Most relevant
Object-oriented Concepts in JavaScript
Most relevant
Design Patterns in C++: Structural - Façade to Proxy
Most relevant
Teach teens computing: Object-oriented Programming in...
Most relevant
Object-Oriented Programming in Kotlin
Most relevant
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser