Tive o mesmo problema que você especificamente nessa linguagem ( aprendi em 2008 ), muita das vezes eu acho que o Java bem no começo dava muita enfâse ao Orientação a Objetos ( o que pra um iniciante não faz diferença, pelo menos minha opinião ). Hoje as coisas são muito mais dinâmicas que ficar se prendendo ao termos. Encapsulamento, Composição, herança, delegação, via esses termos como iniciante e dizia: "Não tô entendendo nada".
Vou tentar dar uma breve explicação de como meu cerebro entendeu esses termos, eu fiz um KISS ( Keep it simple, stupid! ) no meu cerebro, tudo é Função, e visualizei todos esses termos como "funções que retornam algo", "funções que fazem algo", "funções de template", "funções que passam dados". Provavelmente vai vir alguém e comentar: "Ah mas isso são classes e não funções...". Se você está aprendendo Java eu suponho que tenha aprendido o básico de algoritmo, e em algoritmo geralmente se aprende funções. Na verdade ficou mais fácil de associar na minha mente, "função" do que "classe", por que na verdade tudo que um iniciante quer é codar e ver o resultado e aprender a modificar aquele código. Esses termos que são apresentados em POO confundem mais do que ajudam um iniciante.
Resumo:
-
- Classe: Uma função gigante com monte de função dentro.
-
- Objetos: Qualquer bosta dentro do Java
-
- Encapsulamento, Composição, herança, delegação: Termos designados para dizer que uma função passa algo pra outra, se esconde da outra e assim vai.
Sei que parece demente o que eu disse mas espero que tenha ajudado, nem que for um pouco.