https://sir-rasel.github.io/blogs/32-java-part-3-oop/
Java Crash Course - Part 3 (Object Oriented Programming)