Programación orientada a objetos en java: fundamentos, modelado y aplicaciones prácticas