Professional Documents
Culture Documents
Clase 10
PROGRAMACIN 1 1
Objetivos del tema
Programacin 1 - TUDAI
aparecen implementados los conceptos anteriores
2
Programacin Orientada a Objetos
En la vida real todos los objetos tienen una serie de caractersticas y
un comportamiento.
Programacin 1 - TUDAI
y de las rutinas que pueden operar con esos datos.
3
Objetos
Campos o atributos: almacenan datos. Estos datos pueden ser de
tipo primitivo y/o otro tipo de objeto (composicin de objetos).
Programacin 1 - TUDAI
4
Qu es una clase?
Una clase representa al conjunto de objetos que comparten una
estructura y un comportamiento.
Una clase es una combinacin especfica de atributos y mtodos y
puede considerarse un tipo de dato de cualquier tipo no primitivo.
Ejemplo: Representacin mediante objetos de 3 personas.
Programacin 1 - TUDAI
5
Observaciones
En una aplicacin se crean una serie de instancias (objetos)
que interactan entre s mandndose mensajes (es decir,
llamando a los mtodos de los objetos).
Clase principal{
Definir constantes;
Dentro de main()
Programacin 1 - TUDAI
Crear objetos
Procesar;
}
//Definir todas las clases involucradas, cada una en un archivo diferente
Clase nombre{
Definir constantes;
Definir atributos; 6
Definir mtodos;
}
Modificadores de acceso
Para modificar atributos o consultar su valor vamos a utilizar mtodos.
Programacin 1 - TUDAI
Para controlar esto se utilizan los modificadores de acceso:
private (Acceso solo dentro de la clase)
protected (Acceso desde la clase y sus hijos "herencia")
public (Acceso pblico desde cualquier lugar)
Programacin 1 - TUDAI
En el caso de una constante no tiene sentido sin static.
final
Una variable es de tipo constante y no admitir cambios despus de su
declaracin y asignacin de valor.
Programacin 1 - TUDAI
// que devuelve el valor de euros
Precio q = new Precio(); // Crea una referencia y el objeto
q.euros=75.6; // Asigna 75.6 al atributo euros
System.out.println("Valor = " + q.euros);
}
}
//CREAR UN ARCHIVO PARA LA CLASE PRECIO
public class Precio {
// Atributo o variable miembro
public double euros;
// Metodos 9
Programacin 1 - TUDAI
Precio q = new Precio(); q.euros=75.6;
10
Constructor
Los constructores son mtodos pertenecientes a la clase. Se
utilizan para construir o instanciar una clase. Puede haber
varios constructores, de acuerdo a las necesidades del
usuario.
Programacin 1 - TUDAI
Estructura de una clase
Clase nombre{
Definir constantes;
Definir atributos;
Definir constructores;
Definir mtodos;
} 11
Ejemplo
public class Programa1 {
public static void main (String [] args ) {
Precio p; // Crea una referencia de la clase Precio
p = new Precio(56.8); // Crea el objeto de la clase Precio
// y le asigna 56.8 al atributo euros
System.out.println("Valor = " + p.da()); // Llamada al metodo da
// que devuelve el valor de euros
Precio q = new Precio(75.6); // Crea el objeto de la clase Precio
Programacin 1 - TUDAI
// y le asigna 75.6 al atributo euros
System.out.println("Valor = " + q.euros);
}
}
Programacin 1 - TUDAI
accediendo directamente al atributo correspondiente y volver
a mostrarlo por pantalla.
Agregar a la clase punto un mtodo que calcule su distancia al
origen de coordenadas.
Agregar un mtodo a la clase punto que modifique el estado
del punto, trasladndolo al primer cuadrante sin que su
distancia al origen de coordenadas (0,0) (si el punto ya est en
el primer cuadrante su estado no cambia). 13
Composicin
Mecanismo para crear clases complejas agregando objetos de clases
ya existentes
Programacin 1 - TUDAI
14
Ejemplo
public class Punto { Se tiene un polgono formado por puntos
private float x, y;
bidimensionales, hasta un mximo de 10
Punto(float _x,float _y){
puntos. Modelar las clases del problema con
x = _x; y = _y;
}
todos los mtodos necesarios para la carga y
public void setXY(float _x,float _y){ acceso de los datos.
x = _x; y = _y;
}
public float getX(){ return x;}
Programacin 1 - TUDAI
public float getY(){ return y;}
}
public class Poligono {
final static int MAXPUNTOS = 10;
private Punto[] puntos = new Punto[MAXPUNTOS];
private int cantPuntos = 0;
public void agregarPunto(Punto xy){
puntos[cantPuntos] = xy;
cantPuntos++;
}
public Punto getPunto(int pos){ return puntos[pos];}
public void imprimirPuntos(){
for (int i = 0;i<cantPuntos;i++) 15
System.out.println("Punto "+i+" =
("+getPunto(i).getX()+","+getPunto(i).getY()+")");
}
}
Ejemplo
public class Programa { Para probar el sistema desarrollado se
public static void main(String[] args) { realiza un programa donde se simula la
Punto p1 = new Punto(1.0f, 1.0f); creacin de 3 puntos, que luego se
Punto p2 = new Punto(2.0f, 1.0f); agregan al polgono. Finalmente se
Punto p3 = new Punto(1.0f, 3.0f); imprime el contenido del polgono.
Poligono Pol = new Poligono();
Pol.agregarPunto(p1);
Pol.agregarPunto(p2);
Pol.agregarPunto(p3);
Programacin 1 - TUDAI
Pol.imprimirPuntos();
}
}
SALIDA
Punto 0 = (1.0,1.0)
Punto 1 = (2.0,1.0)
Punto 2 = (1.0,3.0)
16
Ejercicios
Se quiere crear una clase Cuenta la cual se caracteriza por tener
asociado un nmero de cuenta y un saldo disponible. Adems, se
puede consultar el saldo disponible en cualquier momento, recibir
abonos y pagar recibos.
Crear una clase Persona, que se caracteriza por un DNI y una cuenta
bancaria. Agregar un mtodo donde crea conveniente que devuelva
si la persona es morosa o tiene saldo negativo.
Programacin 1 - TUDAI
Crear la clase Libro, cuyos atributos son el titulo, el autor, el nmero
de pginas y la calificacin que le damos entre 0 y 10. Crear los
mtodos tpicos para poder modificar y obtener los atributos si
tienen sentido.
Crear una clase ConjuntoLibros, que almacena un conjunto de libros
(con un array de un tamao fijo). Se pueden aadir libros que no
existan (siempre que haya espacio), eliminar libros por ttulo o autor,
y mostrar por pantalla los libros con la mayor y menor calificacin 17
dada.
Ejercicios
Se tiene una matriz de m filas n columnas, donde en cada fila se
tiene secuencias separadas por uno o ms 0. Reemplazar con 0 en
cada fila la secuencia de mayor tamao, si cumple que la misma
tiene un tamao mayor a un valor TAM ingresado por el usuario.
Se tiene una matriz de m filas n columnas, donde en cada fila se
tiene secuencias separadas por uno o ms 0. Realizar las
operaciones necesarias para dejar solamente un 0 de separacin
Programacin 1 - TUDAI
entre secuencia. En caso de ser necesario completar con vacio al
final de la fila.
Un pas tiene provincias y una ciudad capital. Las provincias tambin
tienen ciudades y una ciudad capital. Cada provincia tiene una
cantidad de habitantes igual a la suma de los habitantes de sus
ciudades. El pas tiene un cierto presupuesto, y puede darle dinero a
cualquiera de sus provincias. A su vez, la provincia tambin tiene su
propio presupuesto, que aumenta cuando le llega dinero del pas, y 18
tambin puede destinar sumas de dinero a cualquiera de sus
ciudades.