Inheritance and Data Structures in Java
Ends soon! Keep adding new skills with 10,000+ programs for $239 (usually $399). Save now.
Inheritance and Data Structures in Java
This course is part of Introduction to Programming with Python and Java Specialization
Instructor: Brandon Krakowsky
13,450 already enrolled
Included with
What you'll learn
Examine the concept of inheritance in object-oriented programming and learn how to extend classes and override methods in a subclass.
Analyze and fix different parts of a Java program using Eclipse's interactive debugger.
Explore different methods for opening, reading, and writing to external files, and deal with errors and exceptions.
Examine advanced techniques for storing and manipulating data in collections, and parse text using regular expressions (or regex).
Skills you'll gain
Tools you'll learn
Details to know
9 assignments
See how employees at top companies are mastering in-demand skills
Build your subject-matter expertise
- Learn new concepts from industry experts
- Gain a foundational understanding of a subject or tool
- Develop job-relevant skills with hands-on projects
- Earn a shareable career certificate
There are 4 modules in this course
This course provides a comprehensive look at Java inheritance, including access modifiers and overriding methods. Students are introduced to abstract classes, and will learn how to read and write to files, use regular expressions for parsing text, and how to leverage complex data structures like collections and maps.
Additionally, this course offers strategies for catching errors and debugging code, including an overview of Eclipse’s debugging tool.
We’ll start this module by talking about inheritance, a core concept in object-oriented programming. It’s the mechanism by which one class inherits the fields and methods of another class. Then we’ll learn about another aspect of polymorphism, overriding, which is creating a method in a subclass having the same signature as a method in a superclass. In particular, we’ll look at overriding the toString method for printing your objects and the equals method for comparing your objects, especially as it relates to unit testing. Finally, how you can restrict scope in a program by using modifiers to control access to variables, methods, and classes.
What's included
19 videos7 readings3 assignments1 app item
19 videos•Total 76 minutes
- What to expect from this Course•2 minutes
- About the Instructor : Brandon Krakowsky •1 minute
- How to submit assignments in Codio•6 minutes
- Module Introduction•1 minute
- Superclasses and subclasses•1 minute
- A review of method signatures•1 minute
- How to override a method•2 minutes
- Why override a method?•1 minute
- Overriding toString•2 minutes
- A review of overriding equals•2 minutes
- Overriding equals for JUnit tests•8 minutes
- Overriding constructors•1 minute
- Calling an overridden method•5 minutes
- Why call an overridden method?•0 minutes
- Restricting scope•2 minutes
- Public vs. protected vs. default vs. private•0 minutes
- Which access modifier should I use?•1 minute
- Getters & setters and encapsulation•1 minute
- Coding Demonstration : Animals management project•39 minutes
7 readings•Total 46 minutes
- Course Layout & Syllabus•10 minutes
- Tips to succeed in this course•10 minutes
- Navigating Assignments using Codio•10 minutes
- Module 1 Resources (DOWNLOAD RELEVANT CODE AND/OR DATA FILES FOR THIS MODULE HERE)•10 minutes
- How to require @Override in Eclipse•3 minutes
- Summary : Overloading vs. Overriding•2 minutes
- Opt-in to Penn Engineering Online Communications•1 minute
3 assignments•Total 62 minutes
- Learning Style Preference Survey•30 minutes
- Quiz 1: Inheritance & Polymorphism - Overriding•16 minutes
- Quiz 2 : Access Modifiers•16 minutes
1 app item•Total 120 minutes
- Homework 1 : Vehicles•120 minutes
Did you know you can declare a method without defining it? It’s like giving a method a name, and even parameters and a return type, with no code in the body. These are called abstract methods. To define abstract methods, we’ll learn how to create abstract classes. With these new concepts and structures, we’ll continue to expand our Java knowledge and develop our programming skills. We’ll also learn how to better debug our programs by running them interactively using Eclipse’s Debugger. This will allow us to watch the source code and the variables, during execution.
What's included
14 videos6 readings2 assignments1 app item
14 videos•Total 97 minutes
- Module Introduction•1 minute
- Abstract methods•0 minutes
- Declaring abstract classes•0 minutes
- Extending abstract classes•1 minute
- Combining abstract & non-abstract methods•1 minute
- Why have abstract classes?•1 minute
- Common syntax errors with subclasses•2 minutes
- Possible solutions to the syntax problem•1 minute
- Solution to syntax problem using abstract class•1 minute
- Code Along : Pet project•32 minutes
- What is debugging?•0 minutes
- Debugging support in Eclipse•0 minutes
- Coding Demonstration : Debugging Person class - IndexOutOfBoundsException, & NullPointerException•12 minutes
- Coding Demonstration : Debugging syllable counter - Using Step Into, Step Over, & Step Return•46 minutes
6 readings•Total 27 minutes
- Module 2 Resources (DOWNLOAD RELEVANT CODE AND/OR DATA FILES FOR THIS MODULE HERE)•10 minutes
- Setting breakpoints•3 minutes
- Starting the debugger•3 minutes
- Controlling program execution•5 minutes
- Evaluating variables in the debugger•5 minutes
- Returning to the Java perspective•1 minute
2 assignments•Total 30 minutes
- Quiz 3 : Abstract Classes •14 minutes
- Quiz 4 : More with Abstract Classes & Debugging•16 minutes
1 app item•Total 120 minutes
- Homework 2 : Shapes•120 minutes
There are multiple ways of loading and storing data in Java. Information can be stored and manipulated in different kinds of data structures. But data can also be stored in external files and then loaded into Java. In this module, we'll see how Java can communicate with the outside world by opening, reading from, and writing to, external files. This means of communication known as I/O or input/output, is extremely powerful with an overwhelming number of options. Any given I/O is not particularly difficult, but the difficulty lies in finding your way through the maze of possibilities. This module will help guide you through some of the different ways you can interact with external files. In addition, it will demonstrate methods you can use to handle errors and exceptions that may arise in your Java programs. In particular, when you're dealing with files.
What's included
18 videos3 readings2 assignments1 app item
18 videos•Total 51 minutes
- Module Introduction•1 minute
- Why Java I/O is difficult•0 minutes
- Streams•1 minute
- How to do I/O•0 minutes
- Opening & reading a file, using FileReader & BufferedReader•1 minute
- Opening & reading a file, using Scanner•1 minute
- File writing, using FileWriter & PrintWriter•1 minute
- File writing, using FileWriter & BufferedWriter •1 minute
- File types•1 minute
- Errors vs. exceptions•0 minutes
- What to do about errors & exceptions•0 minutes
- Dealing with exceptions•0 minutes
- The try-catch statement•1 minute
- 'finally'•1 minute
- Two ways to deal with exceptions•1 minute
- Using Scanner, & FileNotFoundException•13 minutes
- Using FileReader & BufferedReader, & FileNotFoundException, IOException•19 minutes
- Using FileWriter & PrintWriter, & IOException•8 minutes
3 readings•Total 12 minutes
- Module 3 Resources (DOWNLOAD RELEVANT CODE AND/OR DATA FILES FOR THIS MODULE HERE)•10 minutes
- Different kinds of built-in exceptions•1 minute
- Different kinds of built-in errors•1 minute
2 assignments•Total 30 minutes
- Quiz 5 : File I/O•16 minutes
- Quiz 6 : More with File I/O & Exceptions•14 minutes
1 app item•Total 240 minutes
- Homework 3 : Information Parser•240 minutes
In this module, we're going to look at some advanced techniques for storing and manipulating data in collections, which are structured groups of objects. Specifically, we'll learn how to leverage Java's collections framework, which is a unified architecture for representing and manipulating different kinds of collections. We already have experience working with one type of collection in particular, and that's the ArrayList. We'll also learn how to leverage maps, which are dictionaries that associate keys with values. This module will also provide an overview of some advanced techniques for parsing text. In particular, we'll learn how to use regular expressions or regex, which are special sequences of characters that describe patterns used for searching, editing, and manipulating text and data.
What's included
21 videos4 readings2 assignments1 app item
21 videos•Total 81 minutes
- Module Introduction•1 minute
- About the Collections Framework•1 minute
- Types of collections & “collection-like” things (maps)•1 minute
- Methods in the collection interface•1 minute
- Implementations•1 minute
- List interface•1 minute
- Deque interface•1 minute
- Set interface•0 minutes
- Map interface•1 minute
- General rules for selecting an implementation•1 minute
- Iterator•1 minute
- Coding Demonstration : Remove range from a list using an Iterator•8 minutes
- Coding Demonstration : Add stars to a list using ArrayList•7 minutes
- Coding Demonstration : Count words using a HashMap•6 minutes
- Coding Demonstration : Count unique words using a HashSet•6 minutes
- Coding Demonstration : Set food toppings using a HashMap•6 minutes
- What is a regular expression?•0 minutes
- Coding Demonstration : Split a String using str.split()•16 minutes
- Coding Demonstration : Replace all with a pattern using str.replaceAll()•4 minutes
- Coding Demonstration : Get parts of a phone number using groups and character classes•15 minutes
- Coding Demonstration : Replace an area code using str.replaceFirst()•4 minutes
4 readings•Total 14 minutes
- Module 4 Resources (DOWNLOAD RELEVANT CODE AND/OR DATA FILES FOR THIS MODULE HERE)•10 minutes
- Opt-in to Penn Engineering Online Communications•1 minute
- Sorting & searching collections•2 minutes
- Arrays class•1 minute
2 assignments•Total 22 minutes
- Quiz 7 : Collections/Maps•14 minutes
- Quiz 8 : More with Collections/Maps & Regular Expressions•8 minutes
1 app item•Total 240 minutes
- Homework 4 : Word Counter•240 minutes
Earn a career certificate
Add this credential to your LinkedIn profile, resume, or CV. Share it on social media and in your performance review.
Instructor
Offered by
Explore more from Software Development
- Status: Free Trial
Course
- Status: Free Trial
- Status: Free TrialU
University of California San Diego
Course
- Status: Free Trial
Course
Why people choose Coursera for their career
Learner reviews
- 5 stars
78.30%
- 4 stars
14.15%
- 3 stars
1.88%
- 2 stars
0.94%
- 1 star
4.71%
Showing 3 of 106
Reviewed on Apr 28, 2021
The lectures are good! However, some descriptions in assignments are not clear.
Reviewed on Jul 6, 2025
This course is good for understanding some basic concepts of Java
Reviewed on Feb 19, 2021
excellent instructor, wonderful introduction to object oriented programming and Java
Frequently asked questions
The only math that learners will need for this Specialization is arithmetic and basic concepts in logic.
If you enjoyed this course, we recommend Courses 1, 2 and 3 in the series!
If you would like to learn the fundamentals of computer science beyond the basics of programming, consider applying to the Master of Computer and Information and Technology (MCIT) at the University of Pennsylvania, an Ivy League computer science master’s program for people without a computer science background. For an on-campus experience, . If you prefer an online setting, apply to . In fact, the lectures in this series are also used in the online degree program! The Specialization certificate will be viewed favorably by the admissions committee, so be sure to mention it when you apply.
To access the course materials, assignments and to earn a Certificate, you will need to purchase the Certificate experience when you enroll in a course. You can try a Free Trial instead, or apply for Financial Aid. The course may offer 'Full Course, No Certificate' instead. This option lets you see all course materials, submit required assessments, and get a final grade. This also means that you will not be able to purchase a Certificate experience.
More questions
Financial aid available,
