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

Post on 29-Sep-2020

4 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

06/06/19

Ing. Roberto Martínez Román -rmroman@itesm.mx 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 -rmroman@itesm.mx

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 - rmroman@itesm.mx

Firma del método

06/06/19

Ing. Roberto Martínez Román -rmroman@itesm.mx 2

Ejemplo

Ing. Roberto Martínez Román - rmroman@itesm.mx

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 - rmroman@itesm.mx

06/06/19

Ing. Roberto Martínez Román -rmroman@itesm.mx 3

Cadenas

Ing. Roberto Martínez Román - rmroman@itesm.mx

� 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 - rmroman@itesm.mx

06/06/19

Ing. Roberto Martínez Román -rmroman@itesm.mx 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 - rmroman@itesm.mx

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 - rmroman@itesm.mx

06/06/19

Ing. Roberto Martínez Román -rmroman@itesm.mx 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 - rmroman@itesm.mx

Ejercicio

Ing. Roberto Martínez Román - rmroman@itesm.mx

� 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 -rmroman@itesm.mx 6

Ejercicio

Ing. Roberto Martínez Román - rmroman@itesm.mx

� 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 - rmroman@itesm.mx

Objeto

métodos

modificadoresmétodosaccesores

setVariable(nuevoValor);getVariable();

variable de instancia(privada)

06/06/19

Ing. Roberto Martínez Román -rmroman@itesm.mx 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 - rmroman@itesm.mx

La clase Contador (Tarea)

Ing. Roberto Martínez Román - rmroman@itesm.mx

� 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 -rmroman@itesm.mx 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 - rmroman@itesm.mx

Métodos constructores

Ing. Roberto Martínez Román - rmroman@itesm.mx

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 -rmroman@itesm.mx 9

Ejemplo

Ing. Roberto Martínez Román - rmroman@itesm.mx

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 - rmroman@itesm.mx

� 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 -rmroman@itesm.mx 10

Ejemplo

Ing. Roberto Martínez Román - rmroman@itesm.mx

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 - rmroman@itesm.mx

� 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 -rmroman@itesm.mx 11

Ejercicios

Ing. Roberto Martínez Román - rmroman@itesm.mx

� Fecha� CuentaBanco� Factura

¡ número¡ clave¡ descripción¡ precio unitario¡ cantidad¡ + getTotal

-

Ing. Roberto Martínez Román - rmroman@itesm.mx

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 -rmroman@itesm.mx 12

CuentaBanco

Ing. Roberto Martínez Román - rmroman@itesm.mx

CuentaAhorro

- saldo : double- interes : double+ CuentaAhorro()+ CuentaAhorro(saldoInicial:double, interes:double)+ depositar(cantidad:double)+ retirar(cantidad:double)+ getSaldo() : double+ pagarInteres()

top related