Sobrecarga en Java.
Sobrecarga en Java.
Sobrecarga en Java.
Sobrecarga (Overloading)
Ejemplos
abstract class Auto
{
public abstract void frenar();
public abstract void frenar(int velocidadFinal);
}
En el ejemplo de arriba el mismo mtodo frenar se
comporta de manera diferente de acuerdo al contexto
(argumentos). El primero puede frenar del todo y el
segundo hasta una velocidad determinada
Ejemplo Bicicleta
public class Bicicleta {
private int velocidad;
public void acelerar(){
velocidad++;
}
Mtodos que se podran sobrecargar
public void frenarGolpe(){
velocidad=0;
}
public void frenar(int vel){
if(vel>=velocidad){
velocidad=0;
}
else{
velocidad=velocidad-vel;
}
}
public int getVelocidad(){
return velocidad;
}
}
Ejemplo Bicicleta
public class Bicicleta {
private int velocidad;
public void acelerar(){
velocidad++;
}
public void frenar(){
velocidad=0;
}
public void frenar(int vel){
if(vel>=velocidad){
velocidad=0;
}
else{
velocidad=velocidad-vel;
}
}
public int getVelocidad(){
return velocidad;
}
}
Mtodos sobrecargados
Constructor
Es un mtodo especial que es llamado
cuando el objeto es creado.
Java automticamente llama a este
mtodo y con esto se garantiza la
inicializacin, ya que el cdigo del
constructor se ejecuta antes de poder
mandarle algn mensaje al objeto
algn mtodo
Con esto Java sabe como llamar al mtodo
Ejemplo
class Moto{
Moto() {
// El Costructor
System.out.println(Construyendo la Moto");
}
}
Tipo de Retorno
Los constructores no tienen valores de
retorno.
No se especifica con void
Argumentos
class Moto{
public Moto(String s) {
// El Costructor
System.out.println("Creando una moto con chapa: "+s);
}
}
Ejemplo Bicicleta
public class Bicicleta {
private int velocidad;
private int cantCambios;
public Bicicleta(int vel,int cambios){
velocidad=vel;
cantCambios=cambios;
}
public void acelerar(){
velocidad++;
}
public void frenar(){
velocidad=0;
}
public int getVelocidad(){
return velocidad;
}
public int getCantCambios() {
return cantCambios;
}
}
Ejemplo Bicicleta
public static void main(String[] args) {
Bicicleta bici=new Bicicleta(100,18);
int cambios=bici.getCantCambios();
int vel=bici.getVelocidad();
System.out.println("Cambios: "+cambios);
System.out.println("Velocidad: "+vel);
}
Constructores sobrecargados
Permiten construir un objeto de diferentes formas
class Moto
{
int velocidad;
Moto()
{
velocidad=10;
}
Moto(int vel)
{
velocidad=vel;
Podra construir:
}
new Moto();
new Moto(60);
class Moto
{
int velocidad;
Moto(int vel)
{
velocidad=vel;
}
}
No es valido construir un objeto con
new Moto();
Si es valido hacerlo con
new Moto(100);
Mensajes a objetos
Dada la siguiente clase
class Moto
{
String chapa;
Moto(String ch)
{
chapa=ch;
}
public void multar()
{
System.out.println(Se le multa a: +chapa);
}
}
Mensajes a objetos
Podemos construir 2 objetos Moto.
Moto m0=new Moto(500AAB);
Moto m1=new Moto(189ACX);
m0.multar();
m1.multar();
Esto producira el sgte. output:
Se le multa a: 500AAB
Se le multa a: 189ACX
Composicin
Es la utilizacin de una clase como
atributo de otra.
Ejemplo.
Ejemplo Composicin
El humano tiene un Ojo izquierdo
El humando tiene un Ojo derecho
Ejercicio
Modelar la estructura de una sala de
estudios genrica e instanciar una sala
con la informacin de esta.
Se deben introducir los conceptos de
encapsulamiento, sobrecarga,
constructores y paquetes