Tema 9 - Paginas Prodigy

Anuncio
PROGRAMACIÓN ORIENTADA A OBJETOS
(L40629)
Sabino Miranda-Jiménez
Variables y Métodos de Clase
2
Miembros de Clase
Para declarar un atributo (variables) o método de clase se
usa el keyword
static
Una variable de clase  variable compartida por todos
los objetos de la clase
Se inicializan las variables estáticas al cargar la clase, sólo
una vez
public static int CONTADOR=0;
3
Ejemplo de variable compartida (2)
public class Cat{
private int peso;
private String nombre;
public static int CONTADOR=0;
public Cat() {
CONTADOR++;
}
public Cat(String nombre, int peso)
{
this.nombre = nombre;
this.peso = peso;
CONTADOR++;
}
4
Ejemplo de variable compartida (2)
public void printDatos( ) {
System.out.println("Me llamo:"+ nombre );
System.out.println("Peso:"+ peso );
}
public void info( ) {
System.out.println("Total de objetos creados:"+
CONTADOR);
}
} // fin clase Cat
5
Ejemplo de variable compartida (3)
public class TestCat{
public static void main (String[] args){
Cat c = new Cat("Felix", 10);
c.info();
Cat c2 = new Cat("Garfield", 30);
c2.info();
Cat c3 = new Cat();
c.info();
}
}
6
Método de clase
Los métodos se definen como estáticos
No se requiere de ninguna instancia para invocarlo
Se usa el nombre de la clase para su invocación
Ejemplo:
public static void info()
Los métodos de clase no pueden referenciar a las
variables de instancias
public static void info( ) {
System.out.println("Total de objetos creados:"+
CONTADOR);
}
7
Invocación método de clase
public class TestCat{
public static void main (String[] args){
Cat c = new Cat("Felix", 10);
Cat.info();
Cat c2 = new Cat("Garfield", 30);
Cat.info();
Cat c3 = new Cat();
Cat.info();
}
}
Nota. Usar el nombre de la clase para acceder a atributos o métodos estáticos
8
Lectura de parámetros
9
Lectura de parámetros
public class Test{
public static void main (String[] args){
for(int i=0; i< args.length; i++)
{
System.out.println("Argumento "+ i +" ==> "
+ args[i]);
}
}
}
Ejecución:
C::> java Test Juan 1950
Masculino
10
Clases Wrapper
Proporcionan la forma de envolver valores primitivos en
un objeto
Proporcionar funciones utilitarias para trabajar con datos
primitivos
conversiones de valores a representación de cadenas,
entre tipos de datos, etc.
Existe una clase wrapper para cada tipo de dato primitivo
int  Integer
float  Float
11
Clases Wrapper
Constructores
Integer i1 = new Integer(42);
Integer i2 = new Integer("42");
Float f1 = new Float(3.14f);
Float f2 = new Float("3.14f");
12
Clases Wrapper
13
Métodos de clases Wrapper
Para convertir el valor de un objeto numérico al valor
primitivo se usa el método xxxValue()
Integer i2 = new Integer(42);
byte b = i2.byteValue(); // convierte el valor de i2 a
un valor primitivo byte
double d = i2.doubleValue();
14
Métodos de clases Wrapper
Para convertir valores representados po un String al valor
primitivo se usa el método parseXxx()
int x = Integer.parseInt("16");
Para convertir a la representación en Binario del número
System.out.println("X= " + x + " en binario =" +
Integer.toBinaryString(x));
Lanza una excepción si el formato del número no es
adecuado
15
Métodos de clases Wrapper
Los métodos esenciales para la conversión entre objetos
son
• primitive xxxValue( )
• primitive parseXxx(String)
• Objeto de clase Wrapper valueOf(String)
double d4 = Double.parseDouble("3.14");
System.out.println("d4 = " + d4); // resultado: "d4 = 3.14"
http://java.sun.com/javase/6/docs/api/
16
Ejemplo
public class TestWrapper{
public static void main (String[] args){
int x = Integer.parseInt("16");
System.out.println("X= " + x + " en binario =" +
Integer.toBinaryString(x));
}
}
17
Manejo de Excepciones
18
Manejo de Excepciones
Excepcion significa “condición excepcional” el flujo
normal del programa se alteró
Una excepción, en Java, se dice que se lanza
El código que debe administrar la excepción se llama
manejador de excepción
atrapa la excepción lanzada
Se transfiere la ejecución del programa al manejador de
excepciones apropiado
abrir archivo (no existe)
conversión (formato erróneo)
19
Manejo de Excepciones
Se usa try, catch van unidos
try
Bloque de código que se intentará pero que puede
causar una excepción
catch
Declara un bloque de código para administrar una
excepción
finally
Bloque de código, generalmente seguido de trycatch que se ejecuta siempre sin importar que flujo
siguió
20
Manejo de Excepciones
try {
// región para garantizar la ejecución.
}
catch(Excepcion1) {
// código que maneja esta excepción.
}
catch(Excepcion2) {
// código que maneja esta excepción2.
}
finally {
// código para liberar recursos usados en la sección try
}
21
Jerarquía de Excepciones
22
Ejemplo
public class TestException{
public static void main (String[] args){
String val = "16as";
int x=0;
try {
System.out.println("Valor por convertir =>" + val);
x = Integer.parseInt(val);
System.out.println("Valor convertido => " + x);
}
catch (NumberFormatException e)
{
System.out.println("!!!Error al convertir:" + val);
}
23
Ejemplo
catch (Exception e)
{
System.out.println(“Error!!! :" + e.getMessage());
}
System.out.println(“más código... ");
} // Fin main
} // Fin Clase
24
Ejercicio I
Diseñar una clase TestParametros que acepte dos números
como parámetros, los sume y muestre el resultado en pantalla.
Si algún número no es válido indicarlo al usuario
adecuadamente, es decir, que se muestre un mensaje
controlado por el programa.
Salida:
c:> java TestParametros 3 4
El resultado es: 7
c:> java TestParametros 14 50
El resultado es: 64
25
Ejercicio II
Diseñar una clase TestParametrosN que acepte como
argumentos un conjunto de números, los sume y muestre el
resultado en pantalla. Si algún número no es válido indicarlo al
usuario adecuadamente, y sumar los que sí sean válidos.
Salida:
c:> java TestParametrosN 3 4
El resultado es: 7
c:> java TestParametrosN 2 4 6 8
El resultado es: 20
26
Descargar