BlueJ es genial para empezar a aprender, por cosas como poder ejecutar clases sin necesidad de llamarlas desde un main y tal, o por como representa gráficamente las conexiones y jerarquías de las clases. Es una gozada.
Pero tarde o temprano querrás saltar a entornos más profesionales como Eclipse, NetBeans, IntelliJ... hay muchos.
Sobre crear ejecutables, seguro que alguien te lo podrá explicar mejor que yo (¡¡yo también estoy aprendiendo!!), pero en Java, por su filosfia de lenguaje "medio compilado, medio interpretado", no hay exactamente ejecutables como tal.
Se pueden crear archivos con extension .jar (que es poco más que un archivo comprimido con todas las clases que pueda necesitar nuestro programa).
Si el programa tiene interfaz gráfica se podría abrir haciendole doble click, similar a como si fuera un exe.
Si es un programa pensado para la consola de texto, como todos los que hacemos para aprender, habría que llamarlo desde la consola de comandos invocando el comando java.
Si buscar por Google poniendo "ejecutable Java" verás multitud de explicaciones sobre esto.
Tampoco le des muchas vueltas ahora a esto, entiendo que cuando empezamos a programar nos ilusiona poder hacer nuestros exe y compartirlos con otras personas. Y Java en este aspecto al principio desilusiona porque nos "tiene atados" al editor y parece que solo mediante este pueden ejecutarse, aunque obviamene no es asi.
Pero lo importante ahora es aprender a programar.
Cuando tengas más conocimientos, puedes atreverte a ir aprendiendo también C++ de manera simultánea (es muy similar a Java, casi calcado, de hecho, Java es un derivado de C++).
C++ si es un lenguaje compilado y te permitirá crear ejecutables para saciar la sed de crear archivos .exe, aunque sea de programitas tontunos de comparar palabras je je..
Por úlitmo, quizás me expresa mal con lo del objeto Scanner.
Scanner es una clase, y para poder utilizarla, tenemos que crear un objeto de esta clase.
En tu programa lo llamas
entradaEscanner, yo lo llamo
teclado, da igual como se llama,
todos son objetos de la clase Scanner.Es decir, las clases son como una definicion abstracta de como es una "cosa" (atributos) y qué comportamientos puede tener (Métodos). Pero la concreción de esa "cosa", la "materialización", es lo que llamaremos Objeto.
Podemos decir, que tu eres el objeto Dimiste, y yo soy el objeto Kabuto. Somos objetos diferentes, pero ambos pertenecemos a la clase Persona.
Esta clase dice que tenemos unos atributos: ojos, nariz, boca, extremidades, pelo, nº de DNI, etc.. pero la clase no especifica como han de ser, no tiene unos valores concretos.
Estos atributos se especifican, reciben unos valores concretos, cuando se crea un objeto.
Yo tengo ojos "verdes", tu quizás los tienes "marrones", yo tengo la nariz "larga", quizás la tuya sea "chata",
Mi color de pelo es "marrón", el tuyo puede ser "rubio", el de otra persona si es calva, pues será "null" je je...
Nuestra clase Persona además nos otorga unos "Métodos" unos procedimientos/funciones para realizar tareas.
Las personas respiramos, así que la clase Persona tendrá un método llamado respirar().
Así que si yo ejecuto mi metodo respirar y le paso un parametro aceptable para este metodo:
kabuto.respirar(aire);Pues dara un resultado, en este caso, me dará unos cuantos segundos más de vida.
Si el parametro es diferente:
kabuto.respirar(veneno);Pues el método .respirar() devolverá un resultado distinto, en este caso, mis segundos de vida se reducirán notablemente.
Esto es básicamente la programacion orientada a objetos. Definir unas clases otorgándoles unos atributos y unos métodos, y a partir de ellas crearemos objetos, cada uno con los mismos atributos, pero con distintos valores según cada objeto.