Java ENTRADA ESTÁNDAR Tipos de método • public (+, ): Indica que el método será visible tanto dentro como fuera de la clase, es decir, es accesible desde todos lados. • private (-, ): Indica que el método sólo será accesible desde dentro de la clase (sólo otros métodos de la clase lo pueden accesar). • protected (#, ): Indica que el método no será accesible desde fuera de la clase, pero si podrá ser accesible por métodos de la clase además de métodos de las subclases que se deriven (ver herencia). Lectura de datos Se importan todas las clases del paquete 1. Agregar al inicio del programa la línea import java.util.*; 2. Construir un objeto Scanner asociado con el “flujo de entrada estándar” System.in Scanner entrada = new Scanner(System.in); // al presionar una tecla se convierte en bytes y se almacena en el objeto System.in 3. Utilizar los métodos del objeto Scanner Por ejemplo, String nombre=entrada.nextLine(); // lee una cadena con espacios int edad = entrada.nextInt(); // lee un entero Otros métodos: String next() //lee una cadena sin espacios Double nextDouble() // lee un double Ejemplo import java.útil.*; class claselee{ public static void main(String args[]){ String nombre; int edad; Scanner entrada = new Scanner(System.in); System.out.println(“Ingresa nombre y apellido”); nombre=entrada.nextLine(); edad=entrada.nextInt(); //lee nombre y apellido // lee un entero System.out.println(“"tu nombre es "+nombre+" y tienes "+edad); }// fin del main } // fin de clase claselee Estructura if-else Solo la clase Scanner import java.util.Scanner; public class ElMayorEs { public static void main(String args[]) { Scanner teclado=new Scanner(System.in); String nombre1,nombre2; int edad1,edad2; System.out.print("Ingrese el nombre:"); nombre1=teclado.next(); System.out.print("Ingrese edad:"); edad1=teclado.nextInt(); System.out.print("Ingrese el nombre:"); nombre2=teclado.next(); System.out.print("Ingrese edad:"); edad2=teclado.nextInt(); System.out.print("La persona de mayor edad es:"); if (edad1>edad2) System.out.print(nombre1); else System.out.print(nombre2); }//fin del método main } // fin de la clase ElMayorEs entrada Atributos de clase static No es específico de cada objeto. Solo hay una copia del mismo y su valor es compartido por todos los objetos de la clase. Podemos considerarlo como una variable global a la que tienen acceso todos los objetos de la clase. Existe y puede utilizarse aunque no existan objetos de la clase. Para acceder a un atributo de clase se escribe: NombreClase.atributo final – variable constante Permite definer variables como constantes Ejemplo public static final x=20; Métodos de clase static Tiene acceso solo a los atributos estáticos de la clase. No es necesario instanciar un objeto para poder utilizarlo. Para acceder a un método de clase se escribe: NombreClase.método() Versión 1 Ejemplo Versión 2 public class m1{ public class m{ static int k=0; int p; static int k=0; int p; public static void main(String args[ ]){ } public static void main(String args[ ]){ } cuenta(); //omite la clase z.cuenta(); //no omite clase } public static int cuenta(){k++; } class z{ } public static cuenta(){m.k++; } } m1 m Métodos invocados en el main import java.util.*; public class ParImpar { public static boolean par(int num) { if (num%2==0) return true; return false; } Método no relacionado con algún objeto public static void main(String args[] ) { int num; Scanner teclado=new Scanner(System.in); System.out.println("Ingrese un valor:"); num=teclado.nextInt(); if (par(num)) System.out.println(num + “es par”); else System.out.print(num + “es par”); }//fin del método main } // fin de la clase ParImpar ParImpar Clase Math Métodos estáticos de la clase abs(int x) cos(double angulo) sin(double angulo) pow(double x, double y) sqrt(double x) Ejemplo usando pow import java.util.*; public class Potencia { public static void main(String args[] ) { double b,e; Scanner teclado=new Scanner(System.in); System.out.println("Ingrese la base y el exponente:"); b=teclado.nextDouble(); e=teclado.nextDouble(); double res=Math.pow(b,e); System.out.println(b+ “elevado a la”+e+”es”+res); }//fin del método main } // fin de la clase ParImpar Potencia Método equals de la clase String import java.util.Scanner; public class ComparaCadenas { public static void main(String args[] ) { Scanner teclado=new Scanner(System.in); String apellido1,apellido2; System.out.print("Ingrese primer apellido:"); apellido1=teclado.next(); System.out.print("Ingrese segundo apellido:"); apellido2=teclado.next(); if (apellido1.equals(apellido2)) System.out.print("Los apellidos son iguales"); else System.out.print("Los apellidos son distintos“); } } ComparaCadenas Switch import java.util.*; switch (oper) { public class Calculadora { case 1:System.out.println( num1 + num2 ); break; public static void main(String args[]){ case 2: System.out.println( num1 - num2 ); break; int oper,num1,num2; case 3: System.out.println( num1 * num2 ); break; Scanner teclado=new Scanner(System.in); case 4: System.out.println( num1 / num2 ); break; System.out.println("1. Suma \n2.Resta\n3.Producto\n4.Divide"); System.out.println("Ingrese 2 valores:"); default: System.out.println("error" ); break; } num1=teclado.nextInt(); num2=teclado.nextInt(); System.out.println("Elige la operación:"); oper=teclado.nextInt(); } } Nota: oper puede ser de tipo char, byte, short o int Calculadora For import java.util.Scanner; import java.text.DecimalFormat; public class CicloFor { public static void main(String args[]) { System.out.print("La suma es:"); Scanner teclado=new Scanner(System.in); System.out.println(suma); float suma,valor,promedio; int f; promedio=suma/10; suma=0; System.out.print("El promedio es:"); for(f=1;f<=10;f++) { System.out.print(“Ingrese valor”); DecimalFormat df = new DecimalFormat(“0.00”); valor=teclado.nextFloat(); suma=suma+valor; System.out.print(df.format(promedio)); }} } CicloFor While import java.util.Scanner; public class CicloWhile { while (x<=n) { System.out.print("Ingrese la medida de la pieza:"); public static void main(String[] ar) { largo=teclado.nextFloat(); Scanner teclado=new Scanner(System.in); if (largo>=1.20 && largo<=1.30) { int x,cantidad,n; cantidad = cantidad +1; float largo; } x=1; x=x + 1; cantidad=0; } System.out.print("Cuantas piezas procesará:"); System.out.print("piezas aptas son:"); n=teclado.nextInt(); System.out.print(cantidad);} } CicloWhile Do-While import java.util.Scanner; public class CicloDo { public static void main(String[] ar) { Scanner teclado=new Scanner(System.in); int cant1,cant2,cant3,suma; float peso; cant1=0; cant2=0; cant3=0; do { System.out.print("Ingrese el peso de la pieza (0 para finalizar):"); peso=teclado.nextFloat(); if (peso>10.2) { System.out.print("Piezas aptas:"); cant1++; System.out.println(cant2); } else { System.out.print("Piezas con un peso superior a 10.2:"); if (peso>=9.8) { System.out.println(cant1); cant2++; System.out.print("Piezas con un peso inferior a 9.8:"); } else { System.out.println(cant3); if (peso>0) { cant3++; } } } } } } while(peso!=0); suma=cant1+cant2+cant3; CicloDo Práctica 6 1. Escribir un programa que lea 10 números enteros y luego muestre cuántos valores ingresados fueron múltiplos de 3 y cuántos de 5. Debemos tener en cuenta que hay números que son múltiplos de 3 y de 5 a la vez. 2. Se cuenta con la siguiente información: Las edades de 50 estudiantes del turno mañana. Las edades de 60 estudiantes del turno tarde. Las edades de 110 estudiantes del turno noche. Las edades de cada estudiante deben ingresarse por teclado. a) Obtener el promedio de las edades de cada turno (tres promedios) b) Imprimir dichos promedios (promedio de cada turno) c) Mostrar por pantalla un mensaje que indique cual de los tres turnos tiene un promedio de edades mayor. 3. Desarrollar un programa que permita la carga de 10 valores por teclado y muestre posteriormente la suma de los valores ingresados y su promedio. 4. Escribir un programa que solicite la carga de números reales por teclado, obtener su promedio. Finalizar la carga de valores cuando se cargue el valor 0. 5. Hacer un programa que ingrese n alturas de personas por teclado. Mostrar la altura promedio de las personas. Tarea 6 1. Investigar las sintaxis para 5 métodos de la clase math.h y hacer 2 programas que utilicen estos métodos. 2. Investigar las sintaxis para 5 métodos de la clase String.h y hacer 2 programas que utilicen estos métodos. 3. Investigar 3 de los paquetes que se pueden utilizar en java 4. Una lista de 3 clases para cada uno de los paquetes del punto 3