TERCER TALLER DE OBJETOS PROGRAMACIÓN ORIENTADA A

Anuncio
TERCER TALLER
DE OBJETOS
PROGRAMACIÓN
ORIENTADA A
OBJETOS
Elaborado por: Esmeide Leal
Revisado por : Jaime Guzman,
El siguiente taller tiene como objetivo, poner en práctica la teoría vista en clase con el fin de practicar, la
creación de una Clase , instanciar un objeto, referencia a objetos, sobre carga de métodos (construtores), y
por último el concepto de apuntador this.
1. Practicando la creación de clases y el concepto de referencia de objetos.
class Fruta{
float precio;
String variedad;
Empresa empresa;
void desplegar()
{
System.out.println ("Empresario: " + empresa.nombre + ", Variedad: " + variedad);
}
}
class Empresa{
int codigo;
String nombre;
void desplegar()
{
System.out.println ("Codigo Empresa: " + codigo + ", Nombre Empresa: " + nombre);
}
}
class MainClase {
public static void main (String args[]) {
Fruta platano = new Fruta ();
Empresa empresa1 = new Empresa ();
Empresa empresa2 = empresa1;
empresa1.codigo = 1;
empresa1.nombre= "Caribu";
empresa1.desplegar();
platano.precio= 100;
platano.variedad= "dominico";
platano.empresa= empresa1;
platano.desplegar();
platano.empresa.nombre = "Coltejer";
empresa2.desplegar();
}
}
z Universidad Nacional de Colombia - Medellín
2. Sobrecarga de funciones y constructores
a. Sobrecargar constructores
class Fruta{
float precio;
String variedad;
Fruta (float p, String v)
{
precio=p;
variedad = v;
}
Fruta (String v)
{
precio=1000;
variedad = v;
}
void desplegar()
{
System.out.println ("Variedad: " + variedad + ", Precio: " + precio);
}
}
class MainClase {
public static void main (String args[]) {
Fruta platano = new Fruta ("Dominico");
Fruta manzana = new Fruta (500, "golden");
platano.desplegar();
manzana.desplegar();
}
}
b. Ambigüedad en la sobrecarga de métodos
class A {
void f(int n){
System.out.println("Tipo entero");
}
void f(float n){
System.out.println("Tipo flotante");
}
}
public class B {
public static void main(String args[]){
A a = new A();
z Universidad Nacional de Colombia - Medellín
byte b = 3;
long l = 3;
double d = 3;
a.f(l);
a.f(b);
a.f(d); //observe como esta línea falla al compilar.
}
}
3. Utilización de la variable this.
•
•
•
Definida implícitamente en el cuerpo de los métodos
Referencia al objeto sobre el que se invoca el método
This es útil cuando una variable de instancia y una variable de un método tienen el mismo nombre:
class Clase {
int dato = 0;
void dato(int dato) {
this.dato = dato;
}
int dato() {
return dato;
}
}
public class Receptor {
// Programa principal
public static void main(String[] args)
{
Clase c = new Clase();
c.dato(5);
System.out.println(c.dato());
}
}
•
Otro uso de this es llamar un constructor desde otro constructor desde la misma clase. Para hacerlo
se debe seguir ciertas reglas:
1. this debe utilizarse en la primera línea del constructor
2. Debe utilizar la forma this (parámetros del constructor)
class Telefono{
public Telefono()
{
this(5);
}
public Telefono(int valor)
{System.out.println("LLamada al Segundo Constructor");
}
}
class MainClase {
public static void main (String args[]) {
Telefono ejemplo1=new Telefono();
}
}
z Universidad Nacional de Colombia - Medellín
Descargar