clases en java · byte entero de 8 bits 100, -5 [-128, 127] short entero corto 16 bits 20000,...

12
06/06/19 Ing. Roberto Martínez Román - [email protected] 1 ESCRIBIENDO CLASES 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

Upload: others

Post on 29-Sep-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Clases en Java · 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

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

Page 2: Clases en Java · 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

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]

Page 3: Clases en Java · 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

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]

Page 4: Clases en Java · 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

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]

Page 5: Clases en Java · 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

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

Page 6: Clases en Java · 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

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)

Page 7: Clases en Java · 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

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

Page 8: Clases en Java · 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

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.

Page 9: Clases en Java · 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

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

Page 10: Clases en Java · 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

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

Page 11: Clases en Java · 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

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

Page 12: Clases en Java · 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

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()