You are on page 1of 18

Programacin 1 - TUDAI

Clase 10

PROGRAMACIN 1 1
Objetivos del tema

Presentar el concepto de objeto, clase, atributo, mtodo e


instancia

Interpretar el cdigo fuente de una aplicacin Java donde

Programacin 1 - TUDAI
aparecen implementados los conceptos anteriores

Construir una aplicacin Java sencilla, convenientemente


especificada, que emplee los conceptos anteriores.

2
Programacin Orientada a Objetos
En la vida real todos los objetos tienen una serie de caractersticas y
un comportamiento.

Por ejemplo, una puerta tiene color, forma, dimensiones, material...


(caractersticas) y puede abrirse, cerrarse... (comportamiento)

En POO, un objeto es una combinacin de unos datos especficos

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

Rutinas o mtodos: lleva a cabo una determinada accin o tarea con


los atributos.

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.

La base de la encapsulacin consiste en hacer visible los atributos o


mtodos que sean realmente necesarios.

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)

Estos modificadores de acceso se colocan justo delante del valor de


retorno de un mtodo, o del tipo de un atributo.
7

Para esta materia solo utilizaremos private y public.


Palabras clave static y final
static
Los atributos de una clase pueden ser de clase o de instancia. Son de
clase si usa la palabra clave static, y ser nica para todas las
instancias (objetos) de la clase (ocupa un nico lugar en memoria).
Si no usa static, el sistema crea un lugar nuevo para esa variable con
cada instancia (la variable es diferente para cada objeto).

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.

El mtodo main como se viene usando es un mtodo de clase, y va ser 8

el nico con esa caracterstica.


Ejemplo
//CREAR UN ARCHIVO PARA EL PROGRAMA
public class Programa {
public static void main (String [] args ) {
Precio p; // Crea una referencia de la clase Precio
p = new Precio(); // Crea el objeto de la clase Precio
p.pone(56.8); // Llamada al metodo pone
// que asigna 56.8 al atributo euros
System.out.println("Valor = " + p.da()); // Llamada al metodo da

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

public double da() { return euros; }


public void pone(double x) { euros=x; }
}
Explicacin del ejemplo

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);
}
}

public class Precio {


public double euros;
Precio(double x) { euros=x; }//CONSTRUCTOR
public double da() { return euros; }
public void pone(double x) { euros=x; }
} 12
Ejercicios
Definir una clase Punto representada por sus coordenadas x e
y. Agregar un mtodo que devuelva el cuadrante en el que se
encuentra el punto.
Crear un objeto nuevo punto en una clase Principal (que
contiene el mtodo main) y mostrando por pantalla sus
coordenadas. Modificar alguna de sus coordenadas

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

Ejemplo: la nueva clase (Coche) tiene un objeto miembro (un


atributo) de la clase Motor

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.

You might also like