How I learned Java nested class
About me
I'm a software engineer, currently working with Java.
Why I wanted to learn Java nested class
I needed to learn this to get Java readability in my company. I haven't encountered Java nested class so far though.
I also wanted to share what I'm capable of with other people. I feel super good when helping people. Hopefully, you will find that helpful. These blog post are non-profitable.
How I approached learning Java nested class
Find a good source of truth.
I found that The Java Tutorials series provided by Oracle is super reliable.
I did a quick Google search and this is what I found:
https://docs.oracle.com/javase/tutorial/java/javaOO/nested.html
Download IntelliJ IDEA
We need an IDE (Integrated Development Environment). This is a program, where we can write code, and it helps us doing many non-coding tasks such as building a program, debuging a program, downloading libraries, etc.
You can download the IDE at https://www.jetbrains.com/idea/download
Read the tutorials
I know theory is often boring, but trust me, that's something you cannot ignore forever. Key takeaways from the reading:
- A nested class is simply a class within another class
- Why nested classes?
- Use case 1: implement a tree. For example, if MyTree is an outer class, then MyNode is an inner class. The key point is that MyNode doesn't have to be used by other classes rather than MyNode.
- Use case 2 (quite rare): A and B are 2 top-level classes, where B needs access to members of A. However, A wants its members to be private. B can then become a non-static nested class of A in order to access A's members.
Write code
I created a simply java file and play with nested classes. I'm implementing a tree.
Write a blog post about it
Then here comes the blog post I've found that sharing what you have learned is always a great way to learn it.
Challenges I faced
Laziness. I didn't have that much motivation to learn this part of Java since I haven't done anything related to Java nested class in the past 2 years at Google and I have never ever taken any Java course or learned Java in a proper manner.
Key takeaways
Sharing what you learn is a great way to learn it
Tips and advice
Write a blog post about what you learn.
Final thoughts and next steps
I'll try to write more about what I learn in the coming blog posts.