Documentos de Académico
Documentos de Profesional
Documentos de Cultura
PDF Curso PDF
PDF Curso PDF
Sentencia while
Ejecuta una secuencia de instrucciones, cero o más veces, dependiendo
de la condición de evaluación.
While (condicion){
secuencia de instrucciones
}
Ejemplo:
do{
secuencia de instrucciones
} While (condicion);
Ejemplo:
for( [v1=e1[,v2=e2]…];[condición];incremento){
secuencia de instrucciones;
}
Ejemplo:
package semana6;
import java.util.Scanner;
public class SeleccionSwitch {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
System.out.println("Dame una cadena");
String valor = entrada.nextLine();
switch (valor) {
case “Hola”:
case “hola”:
case “HOLA”:
System.out.println(“La cadena es Hola");
break;
case “Java”:
case “JAVA”:
case “java”:
System.out.println("La cadena es Java");
break;
default:
System.out.println(“cadena no valida");
break;
}
}
}
Ejemplo:
public class Control {
public static void main(String[] args) {
int a=20,b=10;
if(a>b){
System.out.println("a mayor que b");
}else{
System.out.println("b mayor que a");
}
}
}
Ing. Miguel Angel Sánchez Hernández
Sentencia else if
Permite que un programa tomar una decisión para ejecutar una acción u
otra, pero con una secuencia de if anidado.
if (condicion){
secuencia de instrucciones;
}else if (condicion){
secuencia de instrucciones;
}else if (condicion){
secuencia de instrucciones;
}
.
.
else{
secuencia de instrucciones;
}
Nombre del
Arr[0]=23
arreglo
Arr[1]=45
Arr[2]=34
Arr[3]=56
Arreglos bidimensionales
(0,0) (0,1)
(1,0) (1,1)
Objetos
Métodos
Clases
Es una plantilla para crear objetos, en ella vamos a incluir los atributos (datos) y
los métodos (comportamiento). Cuando se crea un objeto a partir de una clase
se dice que el objeto es un ejemplar de la clase.
Dentro de una clase los nombres de los atributos deben ser únicos
(aunque puede aparecer el mismo nombre de atributos en diferentes
clases).
Las métodos deben ser únicas dentro de una misma clase, aunque no
necesariamente en la misma clase.
Ejemplo: el método invertir para una clase de Figura y una clase que
maneja matrices. (invertirFigura,invertirMatrix).
<clase_declaración>::=
<modificador> class <nombre>{
<atributo_declaración>
<constructores_declaracion>
<métodos_declaracion>
}
public Estudiante(){
numeroCuenta=00;
nombre="sin nombre";
apellidoPaterno="Sin apellido paterno";
apellidoMaterno="Sin apellido materno";
telefono=00;
direccion="Sin direccion";
}
public long getNumeroCuenta() {
return numeroCuenta;
}
Entonces podemos decir, que la abstracción nos localiza los detalles de sus
características y acciones para poder generar y manipular los objetos.
<atributo_declaración>::=
<modificador> <tipo> <nombre> [=<valor_por_defecto]
<tipos>::= byte|short|int|long|char|float|double|boolean|<nombre_de_clase>
<método_declaración>::=
<modificador> <tipo_de_retorno> <nombre>(<parametros>){
<sentencias>
}
<parametros>::=<tipo_de_parametro> <nombre_del_parametro> ,
<tipo_de_parametro>::=
byte|short|int|long|char|float|double|boolean|<nombre_de_clase>
Decimales
Tipo Rango Bits
float 1.4E-45 3.4028235E38 4 bytes
double 4.9E-324 1.7976931348623157E308 8 bytes
Ensamblado(Composición) Componente
Automovil
1
4
1
Carrocería Motor
Ruedas
Estudiante
for (char c = 'a'; c <= 'z'; c++) { caracter=‘M’+(‘a’-’A’); int[] tabla=new int[‘z’-’a’+1]
System.out.print(c + " "); tabla[‘f’-’a’]++;
}
1.- Escribir un programa que escriba una tabla del código ASCII
2.- Escribir un programa que dé como resultado la frecuencia con la que
aparecen las letras, partiendo de una cadena que proporcione el usuario, no
hay diferencia si hay mayúsculas o minúsculas.
3.-Realizar un programa que lea una cadena de n caracteres e imprima el
resultado que se obtiene cada vez que se realice una rotación de un carácter a
la derecha sobre dicha cadena. El proceso finaliza cuado se haya obtenido
nuevamente la cadena de caracteres original. Por ejemplo,
FES SFE ESF FES
1.-Unión, se debe crear un tercer conjunto que sea la unión entre dos conjuntos.
2.-Intersección, se debe crear un tercer conjunto que sea la intersección entre dos
conjuntos.
3.-insertarElemento.
4.-eliminarElemento.
5.-esIgualA.
6.-imprimirElementos, debe devolver los elementos separados por especio.
Figura
FiguraBidimensional FiguraTridimensional
Los campos public de una clase son accesibles en cualquier parte en donde el
programa tenga referencia al objeto de esa clase, o de sus subclases.
Los campos private de una clase son accesibles sólo en los métodos de la clase.
“Estos nos se heredan”.
Los campos protected de una superclase pueden ser utilizados por los métodos de
esa superclase, y por los métodos de cualquier clase que se derive de esa
superclase y por los métodos de otras clases en el mismo paquete.
1.- Un objeto de la subclase no tiene que llamar a un método para establecer valores
al campo protected, por lo que podemos caer en el error de asignarle un valor
invalido al campo (si se hereda de Circulo, y radio es protected, la sublcase le puede
dar un valor negativo a radio, rompiendo así con la lógica de estructura de la
superclase).
2.- Los métodos de la subclase pueden llegar a escribirse con una alta dependencia a
la subclase, en la practica las subclases deben valerse por si solas con solo los
servicios de las superclases. Por que si no pasa esto se dice que el software es frágil
ya que un pequeño cambio en la superclase afectaría a la subclase.
}
}
Las clases abstractas son genéricas como para crear objetos ya que estas, no están
completas y las encargadas de declarar las partes faltantes son las subclases, y
estas son las encargadas de instanciar los objetos y se llaman clases concretas.
Los métodos abstractos actúan como reservas de espacio para los métodos que
se implementaran en las subclases, cuando se hereda de una clase abstracta, se
tienen dos opciones, se deja sin definir algunos o todos los métodos abstractos,
entonces la subclase hay que marcarla como abstracta también, o se definen
todos los métodos y ya no se declara abstracta.
Punto
Circulo
Cilindro
Circulo Centro=x,y
Pi*r^2 0.0 “Circulo”
Radio=r
Centro=x,y
Cilindro
2pir^2+2pirh Pir^2h “Cilindro” Radio=r
Altura=h
Todos los métodos de la interfaz son automáticamente public, por esta razón no
se escribe necesariamente public a los métodos de una interfaz.
Las interfaces no son clases, por lo que no se puede utilizar el operador new para
crear un ejemplar de una interfaz
X=new Base(); ///error
Cuando se utiliza una clase abstracta que expresa un propiedad genérica, solo se
puede extender una clase, de esa clase abstracta, es decir solo se puede heredar
de una clase (superclase directa).
La ventana de nivel superior (lo que esta dentro de otra ventana), recibe el
nombre de marco en Java, la biblioteca AWT posee una clase llamada Frame,
en donde se pueden sacar este tipo de ventanas, JFrame que se extiende de
Frame sirve para hacer lo mismo y es parte de Swing. Este es uno de los
pocos componentes que no se pintan, si no que sus adorno (botones, barra
de titulo, iconos y demás) van a ser dibujados por el sistema de ventanas del
usuario y no por Swing.
Component
Container
JComponent Windows
JPanel Frame
JFrame
import java.awt.Dimension;
import java.awt.Image;
import java.awt.Toolkit;
import java.util.Properties;
import javax.swing.JFrame;
Las laminas sirven para dibujar componentes sobre ellas, para luego incorporarlo a
un marco.
Nota: para dibujar los puntos ocupa draw.Rect(x,y,1,1), en donde los 1 indican el
ancho y alto del rectángulo.
Los programas que manejan un GUI deben manejar eventos, en Java se hace de
la siguiente manera:
•Un objeto oyente es un ejemplar de una clase que implementa una interfaz
especial denominada interfaz oyente.
•La fuente de eventos envía objetos de evento a todos los oyentes registrados
en ella cuando se produce un evento.
//sigue abajo
@Override
protected void paintComponent(Graphics arg0) {
// TODO Auto-generated method stub
super.paintComponent(arg0);
arg0.drawOval(100, 100, reducir, reducir);
}
}
Algunos programadores no les gusta trabajar con clases internas por lo que
optan buscar a los componentes que se modifican como resultado de un
evento, e implementan la interfaz ActionListener que compartirán dichos
componentes.
Por ejemplo, se crean tres botones y se crea un único oyente de eventos para
los tres botones, por lo que el método actionPerformed tiene que determinar
en que botón se hizo clic.
String origen=evento.getActionCommand;
if(orden.equals(“Amarillo”))…..;
else if(orden.equals(“Azul”))….;
else if(orden.equals(“Rojo”))….;
}
Cuando el usuario hace clic en un botón del ratón, se invocan tres métodos oyentes,
Podemos ignorar los otros si solo nos interesa el clic, podemos obtener las coordenadas
a travez de getX() o getY() del argumento que se pasa del tipo MouseEvent, o podemos
obtener un objeto Point que nos regresa dichas coordenadas.
public Lamina4() {
EventoRaton eventoRaton = new EventoRaton();
this.addMouseListener(eventoRaton);
}
private class EventoRaton extends MouseAdapter {
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
super.mouseClicked(e);
punto = e.getPoint();
repaint();
}
}
@Override
protected void paintComponent(Graphics arg0) {
// TODO Auto-generated method stub
super.paintComponent(arg0);
arg0.drawString(punto.x + " " + punto.y, punto.x, punto.y);
}
}
Java distingue entre los caracteres y los códigos de teclas virtuales, por ejemplo una
cosa es el carácter a y la tecla pulsada a, ya que esta la consideramos como virtual,
para saber los códigos correspondientes de las teclas virtuales les indicamos a travez
del prefijo VK, así si queremos hacer con la tecla a seria VK_A, aquí cabe notar que no
importa si pulsan a o A ya que no existe código para distinguir de mayúsculas y
minúsculas en teclas virtuales ya que el teclado no tiene tecla especial para la a
minúscula.
@Override
public void keyPressed(KeyEvent arg0) {
// TODO Auto-generated method stub
int codigoTeclaVirtual=arg0.getKeyCode();
if(codigoTeclaVirtual==KeyEvent.VK_UP){
tipoMensaje="Tecla arriba: ";
tipoTecla=arg0.getKeyChar();
}
if(codigoTeclaVirtual==KeyEvent.VK_F1){
tipoMensaje="Tecla f1: ";
tipoTecla=arg0.getKeyChar();
}
repaint();
}
(paquete java.io)
FileReader(String ruta);
FileReader(File archivo);
BufferedReader(FileReader entrada);
Nota: Debe crear una carpeta que se llame “datos”, en el directorio donde se
encuentre su proyecto, e incluir un archivo de texto que se llame archivo1.txt. Para
agregar texto al archivo en la consola introduzca lo que desee y presione enter, si
desea terminar con la ejecución del programa en la consola agregue el carácter @ y
presione enter.
} catch (IOException e) {
e.printStackTrace();
}
return null;
} Ing. Miguel Angel Sánchez Hernández
public void escribirArchivo(String datos) {
try {
File archivo = new File(System.getProperty("user.dir") + "/datos/archivo2.txt");
FileWriter fr = new FileWriter(archivo, true);
PrintWriter salida = new PrintWriter(fr);
salida.println(datos);
salida.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
} Ing. Miguel Angel Sánchez Hernández
Escritura de Datos primitivos en Java
DataOutputStream(FileOutputStream fr);
Esta ultima clase proporciona métodos para escribir datos en un archivo con
el siguiente formato.
void writexx(xxdatos)
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
Ing. Miguel Angel Sánchez Hernández
Escritura y Lectura de objetos en un Archivo
Java nos proporciona una clase que representa los 8 tipos de datos primitivos
que ocupa, ofreciéndonos lo siguiente:
int p=5;
Integer n=new Integer(p);
Utilizando autoboxing
int p=5;
Integer n=p;
int a=n
“J2[SEM]E”
“J2SE” “J2ME” “J2EE”
claves
Hashtable Objetos
Colección
Objeto
Enumeration
Object nextElement()
boolean hasMoreElements()
public static void main(String[] args) {
Hashtable col=new Hashtable();
Integer clave;
String valor;
col.put(1,"Uno");
col.put(2,"Dos");
col.put(3,"tres");
Enumeration e=col.keys();
while(e.hasMoreElements()){
clave=(Integer)e.nextElement();
valor=(String)col.get(clave);
System.out.println(valor);
}
}
Ing. Miguel Angel Sánchez Hernández
Como las colecciones gestionan los objetos a través del Object, cada vez que
recuperamos un objeto de la colección, es necesario realizar un refundición
explícita al tipo especifico del objeto que se espera.