Hola, el código está bien planteado. Sobre el nombre de la clase, lo ya comentado. Sería más adecuado CombinadorDeSubcadenas o algo así en vez de InicialesDePalabras.
Más cosas para que reflexiones sobre ellas:
- Una clase no siempre tiene que tener atributos. En particular si su misión es procesar información que le llega desde fuera es posible que no debamos declarar atributos en la clase. Una clase normalmente tiene atributos, pero puede no tenerlos. Esta clase posiblemente hubiera quedado mejor sin atributos (aunque dependería del diseño global dentro del programa más amplio donde estuviera).
- ¿Estás haciendo un buen diseño de nombres de variables? Por ejemplo escribes palabra1 = 2; ¿Crees que esto describe bien la variable? Una palabra es una cadena de texto, pero tú estás diciendo que es un número. ¿No hubiera sido mejor usar longitudMinimaPalabra1 = 2; ?
Trata siempre de crear un código entendible y eficiente, además de que funcione. Si lo vas practicando con pequeños programas lo irás aprendiendo para cuando tengas que enfrentarte a grandes programas. En estos casos no tiene demasiada importancia, pero para ir mejorando hay que intentarlo...
Saludos,