









































































Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Los mejores documentos en venta realizados por estudiantes que han terminado sus estudios
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Descubre las mejores universidades de tu país según los usuarios de Docsity
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Curso completo de Java básico para principiantes.
Tipo: Esquemas y mapas conceptuales
1 / 81
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!
Ejercicios de autoevaluación 1 ...............................................................................................................
Soluciones 1 ..........................................................................................................................................
2.Entrada y Salida de Datos....................................................................................................................
Ejercicios de autoevaluación 2 ...............................................................................................................
Soluciones 2 ...........................................................................................................................................
3 Estructura del Lenguaje .......................................................................................................................
Ejercicios de autoevaluación 3 ...............................................................................................................
Soluciones 3 ...........................................................................................................................................
4 Programación Orientada a Objetos ......................................................................................................
Ejercicios de autoevaluación 4 y soluciones ..........................................................................................
5 Aplicaciones y Applets ........................................................................................................................
Ejercicios de autoevaluación 5 y soluciones ................................................................................. 149 a 204
Código fuente Compilador en “Java” Java
En definitiva:
Fichero binario (no es EXE, sino bytecode)
Intérprete Pentium
Intérprete Pentium
Intérprete Mac
No es directamente ejecutable, ya que necesita un intérprete que depende de la “máquina”
Un único código fuente en Java .java
Un único compilador Java (librerías y funciones comunes para todos los sistemas)
Fichero en formato bytecode .class
Intérprete Java propio del sistema
Ejecución del En Sistemas PC/Windows el programa irtérprete es un programa MS/DOS
En el caso particular de un Applet, es un navegador de Internet (el intérprete)
El responsable de ejecutar el programa applet es la llamada Máquina Virtual Java (MVJ) , programa intérprete que forma parte del navegador.
Hot Site
Applet = fichero bytecode
Navegador X
MVJ de X
Navegador Y
MVJ de Y
Veamos con un ejemplo la relación entre JavaScript y un Applet de Java:
**
//Applet j import java.awt.Graphics; import java.applet.Applet; public class j002 extends Applet{ public void paint(Graphics g){ g.drawString("Esto es Java",25,25); } }
**
**De esta forma compilaremos nuestro programa y se creará el fichero binario (bytecode) nombre1.class
class j004 { public static void main(String [] args) { System.out.println("Bienvenido a Java!"); } }
class j005 { public static void main(String [] args) { System.out.println("Hola\nQue tal"); System.out.println("Uno\nDos\nTres\nCuatro"); } }
class j006 { public static void main(String [] args) { System.out.println("Hola"); System.out.println("Adios"); System.out.println(""); System.out.print("Pues vale"); System.out.print("Eso"); System.out.print("Vale");
print(“mensaje”) después de escribir el “mensaje”, el cursor se sitúa al final del mensaje y en la misma línea.
Para recordarlo piensa en la siguiente “fórmula”: println = print + ln (línea nueva)
// j007.java = dibuja 2 circunferencias import java.awt.; import java.awt.event.; class j007 extends Frame { public j007() { setTitle("Dos circunferencias"); } public static void main(String [] args) { Frame f=new j007(); f.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); f.setSize(300,200); f.setVisible(true); } public void paint(Graphics g){ g.setColor(Color.red); g.drawOval(10,30,30,30); g.setColor(Color.blue); g.drawOval(35,30,30,30); g.drawString("Dos circunferencias",40,100); } }**
f.setSize(400,300); f.setVisible(true); } public void paint(Graphics g){ g.setColor(Color.red); g.drawString("Hola",50,50); g.setColor(Color.blue); g.drawString("Hola",100,100); g.setColor(Color.green); g.drawString("Hola",200,150); g.setColor(Color.yellow); g.drawString("Hola",300,200); } }
Una clase consta de miembros :
Ejemplo: Clase: Arboles Miembros de “Arboles”: propiedades (color, altura etc.) y funciones (crecimiento, etc) A partir de la clase “Arboles” podemos definir una serie de objetos (elementos o ejemplares): pino, palmera, acacia, roble, etc.
Analicemos el programa j004.java :
class j004 { public static void main(String [] args) { System.out.println("Bienvenido a Java!"); } }
// j010.java=Contador public class j010 { int x; public j010() { x=0; } public int incCuenta(){ x++; return x; } public int getCuenta() { return x; } }
Una propiedad: int x; No es mas que la declaración de una variable entera (int) de nombre x
Tres métodos o funciones: public j010() {x=0;} Es una función especial llamada constructor (observa que tiene el mismo nombre de la clase). Su principal utilidad está en inicializar variables, en nuestro caso x=0. public int incCuenta() { x++; return x; } Es una función que devuelve el valor de “x” incrementado en una unidad (x++ es equivalente a x=x+1 ). public int getCuenta() {return x;} Es una función que devuelve el valor actual de “x”.
Lo que acabamos de hacer en j010.java , que tenemos compilado en j010.class es construir una CLASE , que no es mas que un contador
La clase o programa j010 aislado no sirve para nada, vamos a hacer un nuevo programa que utilice la clase “j010.class” …
g.drawString(String.valueOf(n),20,50); laCuenta.incCuenta(); g.drawString(String.valueOf(laCuenta.getCuenta()),20,65); g.drawString(String.valueOf(laCuenta.incCuenta()),20,80); } }
**
El modificador “static” Cada vez que creamos un objeto, se hace una copia de todos los miembros de la clase.
Veamos: Sea Arboles una clase, y noDePreguntas un método de Arboles. Sea pino y sauce dos objetos de la clase Arboles. El método noDePreguntas del objeto pino es completamente distinto del método noDePreguntas del objeto sauce. Supongamos que por la razón que sea, un método (o propiedad) de una clase, nos interesa que sea el mismo para todos los objetos de la clase. En este caso necesitamos un método (o propiedad) de clase no un método (o propiedad) de objeto. El modificador static determina un método (o propiedad) de clase.
class HacerNada { public static void main(String[] args) { } }
Se trata de una clase de nombre “HacerNada”, que sólo tiene un método de nombre main , se trata de un método void (no devuelve nada) y tiene un modificador static , es decir es un método de clase, que será llamado de la siguiente forma: HacerNada.main
Cuando se ejecuta un programa, hemos de dar el nombre de una clase, “Java” busca en dicha clase un método llamado main y empieza ejecutando el programa desde allí, como “Java” debe acceder a dicho método, éste debe tener un modificador public.
// j014.java class j014 { / Programa que mostrará en pantalla un mensaje de error / public static void main(String [] args) { System.out.println("---------------------------"); System.out.println("| |"); System.out.println("| A V I S O |"); System.out.println("|Posible virus destructivo |"); System.out.println("| |"); System.out.println("---------------------------"); System.out.println(); System.out.println("\nEs broma"); } }
// de una línea /* podemos utilizarlo en varias líneas */
Java es un lenguaje con tipos y clases estrictos , esto es: en una expresión sólo podemos utilizar elementos del mismo tipo o clase, es decir no podemos mezclar cadenas y números, ni árboles ni pájaros.
Java tiene 8 tipos predefinidos conocidos como tipos primitivos , pero los tres más usados son:
int : números enteros hasta 2.000.000. long : enteros más grandes o para resultados de cualquier operación entera. double : números reales o para resultados de expresiones en las que interviene como mínimo un número real. Los otros tipos primitivos son: boolean, byte, char, float, short
// j015.java / Dadas dos tasas de interés, calcula la diferencia en el interés simple para el resto del año a partir de un mes dado / public class j015 { static final double c=1000; static final int m=4; // ABRIL static final double tasaAntigua=12.5; // tanto por ciento static final double tasaNueva=13.00; // tanto por ciento public static void main(String [] args) { System.out.println("Cálculo del interés"); System.out.println("==================="); // Cálculos preliminares double cPrelim=c(12-m)/12/100; // imprimir resultado System.out.println("Dado un cambio en la tasa de "+ "interés del "+tasaAntigua+"% al "+tasaNueva+ "% en el mes "+m+" ,"); System.out.println("sobre un capital de "+c+ ", el interés para el resto del año"); System.out.print("cambiará en: "); System.out.println(cPrelimtasaNueva-cPrelimtasaAntigua); } }*
Impresión de enteros y reales:
Número Se imprime como 10 10 650 650 14.75 14. 1.6213 1. 1/1.6213 0. 0.000000001 1.0E- 1.0/2 0. 1/2 0 Java, si divide dos enteros, automáticamente realiza la “división entera”
Cuando estudiemos el paquete “java.text” ya veremos formas de “controlar” la salida de números por pantalla.
Java es un lenguaje muy simple, pero suple su brevedad con muchos paquetes de clases ya escritas que podemos utilizar en nuestros programas.
Un paquete es una colección de clases que encajan lógicamente y que pueden interaccionar entre ellas.
Algunos de los paquetes “Java” más importantes:
Para conseguir acceso a cualquiera de los paquetes (excepto lang , que siempre está presente): import.java.nombreDelPaquete.;* El “asterisco” indica que todas las clases del paquete han de estar disponibles.
// j016.java / Programa para ver la diferencia entre una constante y una variable / public class j016 { static final double pi=3.141592; public static void main(String [] args) { double radio=5; System.out.println("radio= "+radio); radio=45.34; System.out.println("Ahora el radio mide= "+radio); System.out.println("Longitud circunferencia= "+ 2piradio); } }**
Crea un programa de nombre evalj1h , que calcule la hipotenusa del triángulo rectángulo de catetos 3.27 t 5.03 cm.
Crea un Applet de nombre evalj1i , que presente la palabra HOLA de color rojo y la palabra ADIOS de color verde. Crea una página web con el mismo nombre (evalj1i) para poder visualizar el applet.
Crea una nueva clase java de nombre evalj1j , que represente un contador, inicializado a 25 y que sirva para decrecer 3 unidades.
Crea un programa de nombre evalj1k , que utilice la clase evalj1j para mostrar el valor inicial y los dos siguientes valores del contador.
Crea un applet de nombre evalj1l , que haga lo mismo que el ejercicio anterior. Deberás crear una página web (con el mismo nombre), para comprobar el funcionamiento del applet.
¿Cuál era el nombre primitivo del Java y de qué lenguaje de programación deriva?
¿Qué diferencias hay entre un fichero binario en C++ o en Java?
¿Porqué un programa Java necesita un intérprete?
¿Quién es el “intérprete” en el caso particular de un applet de Java?
¿Qué es un applet?. Relación entre un applet y un programa Java completo.
¿Qué diferencia fundamental hay entre un applet de Java y un programa JavaScript?
¿En qué consiste la Máquina Virtual Java?
¿Qué relación hay entre un fichero con extensión class y un fichero con extensión java?
Si “pepe” es una clase Java, escribe las sentencias para crear tres objetos de “pepe” de nombres: pepito, pep y pepit.
Explica la diferencia entre print y println
Explica lo que sepas sobre un “constructor”
¿Qué es el appletviewer?
¿Qué diferencia hay en Java entre división entera y exacta?
// EVALJ1A.java import java.awt.; import java.awt.event.; class evalj1a extends Frame { public evalj1a() { setTitle("EvalJ1A"); } public static void main(String [] args) { Frame f=new evalj1a(); f.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); f.setSize(300,300); f.setVisible(true); } public void paint(Graphics g){ g.setColor(Color.blue); g.drawOval(0,0,300,300); g.drawOval(30,30,240,240); } }**
// EVALJ1B public class evalj1b { public static void main(String [] args) { System.out.println(52%100); System.out.println(9000009); System.out.println(Math.pow(4,3)); System.out.println(21/7); System.out.println(22/7); System.out.println(4-3/4-2); } }