Clases en Java · byte entero de 8 bits 100, -5 [-128, 127] short entero corto 16 bits 20000,...
Transcript of Clases en Java · byte entero de 8 bits 100, -5 [-128, 127] short entero corto 16 bits 20000,...
06/06/19
Ing. Roberto Martínez Román [email protected] 1
E S C R I B I E N D O C L A S E S
Clases en Java
Ing. Roberto Martínez Román [email protected]
Declaración de clases en Java
public class Alumno{private int matricula;
public void mostrarDatos(){System.out.println("Matrícula: " + matricula);
}
}
Ing. Roberto Martínez Román - [email protected]
Firma del método
06/06/19
Ing. Roberto Martínez Román [email protected] 2
Ejemplo
Ing. Roberto Martínez Román - [email protected]
public class MundoExamen extends World{
private Matamoscas matamoscas;private Mosca uno;private Mosca dos;private Mosca tres;public MundoExamen(){
super(600, 400, 1);uno = new Mosca();uno.turn(-45);dos = new Mosca();dos.turn(90);tres = new Mosca();tres.turn(270);matamoscas = new Matamoscas();addObject(uno,300,200);addObject(dos,450,150);addObject(tres,150,250);addObject(matamoscas,0,0);
}public void act() {
}}
Tipos de dato primitivos
Tipo Descripción Ejemplo de literales Rango de valores
Enteros
byte entero de 8 bits 100, -5 [-128, 127]
short entero corto 16 bits 20000, -31000, 5 [-32768, 32767]
int entero de 32 bits 5, -20000000, 2_000 [-231, 231-1]
long entero largo de 64 bits 5L, 51231231231L [-263, 263-1]
Reales (punto flotante)
float real de precisión simple 3.14F, 5F, 0.00123F ±1.4e-45, ±3.4028235e38
double real de precisión doble 3.14, 5D, 0.00123 ±4.9e-324, ±1.7976931348623157e308
Otros tipos
char caracter unicode 16 bits 'a', '&', '5', ' ' unicode
boolean un valor lógico true, false
Ing. Roberto Martínez Román - [email protected]
06/06/19
Ing. Roberto Martínez Román [email protected] 3
Cadenas
Ing. Roberto Martínez Román - [email protected]
� No hay un tipo primitivo para almacenar cadenas, pero el SDK proporciona la clase String para manejar este tipo de dato.
Valores por default
� Las variables de instancia inician automáticamente con el valor cero del tipo correspondiente.
� Las variables locales (definidas dentro de un método) DEBEN ser inicializadas antes de utilizarlas.
public class A{
private int suma;public void m() {
int total=0;}
}
Ing. Roberto Martínez Román - [email protected]
06/06/19
Ing. Roberto Martínez Román [email protected] 4
Operadores aritméticos
Operador Significado Ejemplo+ Suma 5 + 4- Resta 123 - 87* Multiplicación 23 * 2/ División 10 / 2, 5 / 2% Módulo (residuo) 10%6, 27%4, 2%5++ Incremento a++, ++b-- Decremento a--, --b
• La prioridad de operadores es igual que en Python, primero /, *, % y después +, -.
• Las expresiones se evalúan de izquierda a derecha.• Si operas con enteros, el resultado es entero.
Ing. Roberto Martínez Román - [email protected]
Pregunta
� ¿Cuál es el resultado de las siguientes operaciones?
¡10 / 4
¡35 % 6 – 5 % 15
¡20 / 6.0
Ing. Roberto Martínez Román - [email protected]
06/06/19
Ing. Roberto Martínez Román [email protected] 5
Modificadores de acceso
Modificador Descripciónpublic El elemento puede ser accedido desde cualquier lugarprivate El elemento puede ser accedido sólo dentro de la claseprotected Equivalente a private. Puede ser accedido por la subclase.default El elemento puede ser accedido sólo por las clases que
están en el mismo paquete.
Ing. Roberto Martínez Román - [email protected]
Ejercicio
Ing. Roberto Martínez Román - [email protected]
� Escribe una clase que represente productos.
Producto
- nombre : String- precio : double- existencia : int+ mostrarDatos()+ cambiarPrecio(porcentaje:double)+ vender(cantidad:int)+ asignarPrecio(nuevoPrecio:double)+ leerPrecio() : double
06/06/19
Ing. Roberto Martínez Román [email protected] 6
Ejercicio
Ing. Roberto Martínez Román - [email protected]
� Escribe una clase para crear objetos que ayuden a llevar el conteo de ciertos eventos.
Contador
- cuenta : int
+ contar() : void+ getCuenta() : int
Métodos get/set
� Estos métodos permiten accesar a las variables de instancia (privadas) de una clase.
Ing. Roberto Martínez Román - [email protected]
Objeto
métodos
modificadoresmétodosaccesores
setVariable(nuevoValor);getVariable();
variable de instancia(privada)
06/06/19
Ing. Roberto Martínez Román [email protected] 7
Sintaxis de los métodos get/set
� Métodos get
public tipoVariable getNombreVariable( ) {return nombreVariable;
}
� Métodos set
public void setNombreVariable(tipoVariable nuevoValor) {nombreVariable = nuevoValor;
}
Ing. Roberto Martínez Román - [email protected]
La clase Contador (Tarea)
Ing. Roberto Martínez Román - [email protected]
� Agrega el método modificador a la clase Contador.
Contador
- cuenta : int
+ contar() : void+ getCuenta() : int+ setCuenta(nueva:int):void
06/06/19
Ing. Roberto Martínez Román [email protected] 8
Ejemplo
public class CuentaDeBanco{
private double saldo;
public double getSaldo() {return saldo;
}
public void setSaldo(double nuevoSaldo) {saldo = nuevoSaldo;
}}
Ing. Roberto Martínez Román - [email protected]
Métodos constructores
Ing. Roberto Martínez Román - [email protected]
Estos son métodos especiales que tienen las siguientes características:
¡ En general, son públicos.¡ Tienen el mismo nombre que la clase.¡ Pueden estar sobrecargados.¡ No tienen tipo de regreso.
La función principal de estos métodos es inicializar las variables de instancia, ya sea con valores por default o con los valores que llegan como parámetros.
06/06/19
Ing. Roberto Martínez Román [email protected] 9
Ejemplo
Ing. Roberto Martínez Román - [email protected]
Constructores
public class Teclado{
private int teclas;
public Teclado() {teclas = 72;
}public Teclado(int numero) {
teclas = numero;}
}
Usando el constructor
Ing. Roberto Martínez Román - [email protected]
� Ahora el usuario de la clase puede crear objetos de dos formas distintas:
¡ Teclado hp = new Teclado();
¡ Teclado dell = new Teclado(63);
hp
teclas 72
dell
teclas 63
06/06/19
Ing. Roberto Martínez Román [email protected] 10
Ejemplo
Ing. Roberto Martínez Román - [email protected]
public class MundoExamen extends World{
private Matamoscas matamoscas;private Mosca uno;private Mosca dos;private Mosca tres;
public MundoExamen(){
super(600, 400, 1);uno = new Mosca();uno.turn(-45);dos = new Mosca();dos.turn(90);tres = new Mosca();tres.turn(270);matamoscas = new Matamoscas();addObject(uno,300,200);addObject(dos,450,150);addObject(tres,150,250);addObject(matamoscas,0,0);
}public void act() {
}}
La clase Contador
Ing. Roberto Martínez Román - [email protected]
� Agrega el método constructor a la clase Contador.
Contador
- cuenta : int
+ Contador()+ Contador(inicio:int) + contar() : void+ getCuenta() : int+ setCuenta(nueva:int):void
06/06/19
Ing. Roberto Martínez Román [email protected] 11
Ejercicios
Ing. Roberto Martínez Román - [email protected]
� Fecha� CuentaBanco� Factura
¡ número¡ clave¡ descripción¡ precio unitario¡ cantidad¡ + getTotal
-
Ing. Roberto Martínez Román - [email protected]
Convertidor
- temperaturaF : double- temperaturaC : double
+ Convertidor()+ setTemperaturaF(gradosF:double) : void+ setTemperaturaC(gradosC:double) : void+ getTemperaturaF() : double+ getTemperaturaC() : double+ convertirCaF() : void+ convertirFaC() : void
06/06/19
Ing. Roberto Martínez Román [email protected] 12
CuentaBanco
Ing. Roberto Martínez Román - [email protected]
CuentaAhorro
- saldo : double- interes : double+ CuentaAhorro()+ CuentaAhorro(saldoInicial:double, interes:double)+ depositar(cantidad:double)+ retirar(cantidad:double)+ getSaldo() : double+ pagarInteres()