
Explore five progressively complex Java projects applying object oriented programming to real scenarios, including email accounts, a student database, bank accounts, mortgage loan decisions, and a contract payroll system.
Set up your development environment by installing Java, the JDK, and Eclipse. Create a new Java project in Eclipse and verify Java with java -version, then begin building projects.
Define an email class with private properties for first name, last name, password, department, mailbox capacity, and alternate email; apply encapsulation with a constructor, password generation, and setters.
Implement a private method to prompt for department using a scanner, integrate it into the email constructor, and map input codes to sales, development, or accounting.
Generate a random password by selecting characters from an alphabet, numbers, and special characters according to a length parameter, then assemble and return the password.
Implement class set methods for a Java mailbox, including set mailbox capacity, set alternate email, and change password, with a default capacity of 500 and encapsulation through public APIs.
Implement class get methods to retrieve properties via public getters, reinforcing encapsulation. Access mailbox capacity, alternate email, and password through getters, illustrating data binding and data hiding in Java.
Implement a show info method in Java that concatenates first and last name, includes the email and mailbox capacity, and returns a string for printing user details.
Develop a Java student database app that manages enrollments and balances. Prompt for multiple new students, collect name and year, generate a five-digit id, and bill each course at $600.
Practice java by building projects outlines a student class with a constructor that prompts name and year, generates an id, enrolls in courses, and manages tuition balance with private fields.
Implement a static id counter to generate a five-digit student id by prefixing the grade level to a growing class-wide number, using a private setStudentId method and string concatenation.
Implement a course enrollment method in Java by prompting for courses, looping until quit, updating the enrolled courses list and tuition balance, and using string comparisons for quit commands.
Implement a pay tuition feature in the Java project, adding a view balance method and a pay tuition method that updates the balance and prompts for payment input via scanner.
Refine a Java student info display by implementing a show info method, formatting output with name, slash, and balance, and preparing for object-oriented improvements like toString and array-based instances.
Learn to create and populate an array of objects by prompting for the number of new students to enroll, instantiate each student, pay tuition, and print results.
New Bank Account Data
Arielle Duncan,444102638,Savings,1000
Marybeth Sanders,431551383,Checking,2500
Hattie Storey,476687875,Checking,3500
Hilary Ward,005965723,Checking,6000
Luella Bradbury,217512645,Savings,1500
Frankie Davidson,002607927,Checking,10000
Darnell Goodman,469426397,Savings,15000
Shila Obrien,233479044,Savings,2200
Agnes Leonard,003827896,Savings,6500
Florinda Goulding,233025468,Checking,25000
Eliseo Waller,395157182,Savings,12500
Fredia Hastings,208728517,Checking,6500
Melody Potts,687057316,Savings,1500
Deadra Power,009545701,Checking,4500
Clyde Higgs,164445329,Checking,1000
Explore constructors in an inheritance hierarchy by using the super keyword to invoke the parent constructor and pass a name, while building checking and savings accounts.
List the common properties shared by all accounts—name, social security number, balance, account number, and rate—and then describe checking-specific debit card and pin and savings-specific safety deposit box details.
Define constructors for checking and savings that pass name, SSN, and initial deposit to the account's super constructor, centralizing common initialization and reducing duplication.
Generate and set 11-digit account number in the account class by joining the last two SSN digits, a static index for a unique five-digit ID, and a random three-digit number.
Implement account number generation by account type using inheritance. Extend the base account to prefix the number with 1 for savings or 2 for checking via concatenation.
Learn to implement the show info method in the account superclass, override show info in checking and savings accounts, and print shared details along with account type and balance.
Implement a savings account safety deposit box with a three-digit ID and a four-digit key by generating random numbers, and display these features under savings account.
Implement a checking account debit card by generating a 12-digit card number and a 4-digit pin, encapsulated in a private setDebitCard method, and display them in the account’s showInfo output.
Define and implement a rate interface to fetch the base rate, adjust it for checking and savings with abstract methods and overrides, then print the results.
Build a Java csv reader utility that reads data from a csv into a list of string arrays, using a buffered reader and split by commas, with error handling.
Read account data, parse the initial deposit, and determine whether to open a savings or checking account, printing details and handling invalid types.
Learn to build and manage a list of accounts in Java by implementing a linked list of savings and checking objects, populating them from a CSV, and printing their details.
If your goal is to GET HIRED, then you need to PASS THE INTERVIEW!
As a trainer for over 6 years, one of the most common questions I get asked is "I'm new to programming, how can I get better and prepare for a job interview?" My answer is "Practice, practice, practice!" I created this course to help people see the core Java concepts in action. This will help you understand the ideas and know how to apply them in an application.
The BEST way to prepare for a technical interview is to get practice building applications and applying core principles of object-oriented design. I've designed this course to accomplish that objective.
Many people fail interviews because:
This course is designed for someone who simply wants to get better at understanding and applying Java design and object-oriented programming. It is perhaps the most effective thing you can do to prepare for your job interview. Forget about flashcards, forget about quizzes. Start practicing!
In my Practical Java course, you will build realistic projects from scratch. We will approach each program analytically and outline our approach to implement the solution. Then, piece by piece we will write the code to create a fully functioning application.
Everyone hoping to start out in Java needs to practice! It's not enough to learn and watch, but you must try yourself! So enroll in this course and get typing!
Note: this course was build for someone who has some working knowledge and familiarity of Java or application design. If you are new to Java, I recommend enrolling in my "Become a Junior Java Software Developer" course first.