4 clases y metodos - copia - copia.pdf
-
Upload
lucian-de-la-rosa -
Category
Documents
-
view
252 -
download
3
Transcript of 4 clases y metodos - copia - copia.pdf
-
Programacin Orientada a Objetos
utilizando JAVA
-
Clase
Figura
x
despliega()
y
mueve()
Una Clase es un conjunto de propiedades (datos) y mtodos (procesos)relacionados entre si.
Grficamente se representa con un cuadro con puntas redondeadas, su nombre
generalmente se escribe con una letra inicial mayscula y las restantes
minsculas, si aparece ms de una palabra, el inicio de cada una se escribe con
una mayscula, por ejemplo: Persona, Figura, AnimalAcuatico
-
Propiedad
nombre
Una Propiedad o Variable es un dato de Tipo Primitivo (TDP) o un objeto.
Por ejemplo, una variable x, nombrePersona, imagen, archivo.
Grficamente representamos a una propiedad como un rectngulo su nombre
generalmente se escribe con minsculas,si aparece ms de una palabra,
al inicio de cada una se escribe letra mayscula
-
Objeto
circulo
x
despliega()
y
mueve()
Un Objeto es una instancia (caso particular) de una clase.
El nombre de un objeto es una referencia hacia las propiedades y mtodos.
Un objeto apunta hacia propiedades y mtodos y es relocalizable,
esto significa que No apunta hacia una direccin de memoria especfica.
Grficamente se representa de forma similar que una clase la diferencia es quegeneralmente el nombre de un objeto se inicia con minsculas.
-
Objetos de la Clase Automovil
class Agencia
{
public static void main(String args[])
{
// OBJETOS
Automovil autoDeportivo = new Automovil();
Automovil camioneta = new Automovil();
// INVOCACIN DE MTODOS
autoDeportivo.asignaColor("azul");
camioneta.asignaColor("rojo");
System.out.println("autoDeportivo color " +
autoDeportivo.indicaColor());
System.out.println("camioneta color " +
camioneta.indicaColor());
}
}
-
Mtodo
despliega()
Un Mtodo es un proceso abstracto y contiene un conjunto finito de instrucciones.Es decir, un fragmento de cdigo al que se llama, acompaado de unos datos de entrada,
y produce una determinada salida. Para esto tenemos que indicar el tipo de los primitivos
de entrada, el tipo de los de salida, el nombre del mtodo y el trabajo que realizara.
[tipodatoSalida] [nombreMtodo] ([tipodatoEntrada] [nombredatoEntrada]) {//Codigo del mtodoreturn datoSalida;
}
int sumaCinco(int entrada) {return entrada + 5;
}
Grficamente representamos a un mtodo con un crculo, su nombre es similar al de las
propiedades y termina con parntesis donde van los parmetros.
Al conjunto de mtodos de una clase se le llama la Interfase de la Clase. Las clases y mtodos
de Java se encuentran descritos en la API (Application Program Interface) java.sun.com/api
-
Clase Automovil
class Automovil
{
// PROPIEDADES
String color ;
int velocidadMaxima ;
// MTODOS
void asignaColor(String _color)
{
color = _color;
}
String indicaColor()
{
return color;
}
}
-
Constructor
Figura
Figura()
Un Constructor es un mtodo pblico que lleva el mismo nombre de la clasea la que pertenece.
Se ejecuta automticamente cuando se crea una instancia de la clase (objeto),
generalmente el desarrollador lo utiliza para asignar valores iniciales a las
propiedades del objeto.
En Java automticamente cada clase tiene un constructor con el mismo nombre
de la clase sin argumentos de entrada.
Si el usuario escribe su propio constructor entonces debe utilizarlo.
-
Clase Automovil con un Constructor
class Automovil
{
String color ;
Automovil(String _color)
{
color = _color;
}
void asignaColor(String _color)
{
color = _color;
}
String indicaColor()
{
return color;
}
}
class Autos
{
public static void main(String args[])
{
// OBJETOS DE LA CLASE Automovil USANDO EL CONSTRUCTOR
Automovil autoDeportivo = new Automovil("azul");
Automovil camioneta = new Automovil("rojo");
System.out.println("autoDeportivo color " + AutoDeportivo.indicaColor());
System.out.println("camioneta color " + Camioneta.indicaColor());
}
}
-
Sobrecarga de mtodos
La Sobrecarga se da cuando se usa en una misma clase,
el mismo nombre de un mtodo pero con diferentes argumentos.
Las operaciones de los mtodos, generalmente, son diferentes.
Cualquier mtodo en una clase es posible sobrecargarlo, tanto los
constructores como los mtodos de clase o de instancia
Figura
Figura() Figura(String)
-
Sobrecarga de mtodosclass Automovil
{
String color ;
Automovil()
{
color = "blanco";
}
Automovil(String _color)
{
color = _color;
}
void asignaColor(String _color)
{
color = _color;
}
String indicaColor()
{
return color;
}
}
class Autos
{
public static void main(String args[])
{
Automovil autoDeportivo = new Automovil("azul");
Automovil camioneta = new Automovil();
System.out.println("autoDeportivo color " + AutoDeportivo.indicaColor());
System.out.println("camioneta color " + Camioneta.indicaColor());
}
}
-
Propiedades y Mtodos de Clase
Las Propiedades y Mtodos de Clase se crean una sola vez en cada clase y
los comparten los objetos (instancias) de esa clase.
Se identifican porque los precede la palabra reservada static.
Automovil
static cuenta
static Contador()
color
Automovil()
asignaColor()
indicaColor()
-
Propiedades y Mtodos de Clase en Ejecucin
Automovil
static cuenta
static Contador()
camioneta
color
Automovil()
asignaColor()
indicaColor()
autoDeportivo
color
Automovil()
asignaColor()
indicaColor()
-
Mtodos y Propiedades de Claseclass Automovil
{
String color ; // PROPIEDAD DE INSTANCIA
static int cuenta; // PROPIEDAD DE CLASE
// CONSTRUCTORES
Automovil()
{
color = "blanco";
cuenta++;
}
Automovil(String _color)
{
color = _color;
cuenta++;
}
// METODOS DE INSTANCIA
void asignaColor(String _color)
{
color = _color;
}
String indicaColor()
{
return color;
}
// METODO DE CLASE
static void contador()
{
System.out.println("Creadas "
+ cuenta + " instancias");
}
}
class Autos
{
public static void main(String args[])
{
// SE INVOCA AL METODO DE CLASE SIN CREAR OBJETO
Automovil.contador();
Automovil autoDeportivo = new Automovil();
// EL METODO DE CLASE INVOCADO DESDE UN OBJETO
autoDeportivo.contador();
Automovil camioneta = new Automovil("rojo");
camioneta.contador();
System.out.println("autoDeportivo color "
+ autoDeportivo.indicaColor());
System.out.println("camioneta color "
+ camioneta.indicaColor());
Automovil.contador();
}
}
-
Accesibilidad
La Accesibilidad se indica con el calificador public, private, protected o abstracten las propiedades y mtodos de una clase.
Accesibilidad Clases Subclases Paquete Todas
public si si si si
protected si si si
package si si
private protected si si
private si
La misma clase llama al mtodo
La subclase llama al mtodo
Las clases del mismo paquete
llaman al mtodo
Cualquier clase llama al mtodo
-
Relaciones entre Clases:
Herencia
Composicin
Agregacin
Las relaciones entre clases permiten la reutilizacin de cdigo
-
Herencia
La Herencia es una relacin entre clases en donde la subclase clase hereda laspropiedades y mtodos de la superclase.
Se representa mediante relaciones es_un con una flecha con punta huecadirigida de la clase derivada a la superclase.
Persona
ProfesorAlumno
-
Obtencin de las relaciones de herencia
Las Relaciones de Herencia se obtienen mediante la generalizacin yla especializacin.
La Generalizacin se hace a partir de un conjunto de clases y se busca
una clase que las generaliza (agrupa).
La Especializacin se genera cuando a partir de una clase genrica se
obtienen clases que son casos particulares de la misma.
-
Herencia de Persona a Alumno class Persona
{
String nombre ;
Persona(String _nombre)
{
nombre = _nombre;
}
String indicaNombre()
{
return nombre;
}
}
class Alumno extends Persona
{
int calificacion ;
Alumno(String _nombre)
{
super(_nombre);
}
void asignaCalificacion(int _calificacion)
{
calificacion = _calificacion;
}
String indicaDatos()
{
return "Alumno: " + super.indicaNombre() + " calificacion: "
+ calificacion;
}
}
-
Sobreescritura
Se le llama Sobreescritura cuando un mtodo existente en una superclase se
declara en una subclase y ambos tienen el mismo nombre, en este caso el mtodo de
la clase derivada sobreescribe a la superclase.
En este ejemplo el mtodo pinta() de Circulo sobrescribe al de Figura mientras queTriangulo utiliza el mtodo pinta() que hereda de Figura
TrianguloCirculo
Figura
pinta()
pinta()
-
Sobreescritura del mtodo indicaNombre() class Persona
{
String nombre ;
Persona(String _nombre)
{
nombre = _nombre;
}
String indicaNombre()
{
return nombre;
}
}
class Alumno extends Persona
{
int calificacion ;
Alumno(String _nombre)
{
super(_nombre);
}
String indicaNombre()
{
return Alumno + nombre;
}
void asignaCalificacion(int _calificacion)
{
calificacion = _calificacion;
}
String indicaDatos()
{
return "Alumno: " + super.indicaNombre() + " calificacion: "
+ calificacion;
}
}
-
Polimorfismo
El Polimorfismo se da cuando un mtodo aparece en dos clases diferentescon el mismo nombre y argumentos.
El comportamiento generalmente es diferente
Triangulo
Figura
pinta()
Circulo
x
Isoceles
base
altura
pinta()
Cuadrado
y
color
radio
pinta()pinta()
lado
-
Polimorfismo
// DECLARA EL ARREGLO DE OBJETOS
Figura arreglo[] = new Figura[6];
// DETERMINA QUE OBJETO SE ALMACENA EN CADA ELEMENTO
arreglo[0] = new Circulo(20,30,10 ,Color.blue);
arreglo[1] = new Triangulo(50,220,Color.red);
arreglo[2] = new Circulo(200,100,40 ,Color.cyan);
arreglo[3] = new Cuadrado(120,40,30,Color.green);
arreglo[4] = new Triangulo(250,70,Color.gray);
arreglo[5] = new Isoceles(173 ,204 ,50 ,66
,new Color(0100 ,150 ,0xFF));
// LLAMA AL METODO pinta PARA CADA ELEMENTO APLICANDO POLIMORFISMO
for(int i=0; i < arreglo.length; i++)
arreglo[i].pinta();
-
Composicin
Chasis
Llanta
Motor
Automovil
-
Composicin
La Composicin consiste en incluir (o formar) una clase a otra(s) como unapropiedad para crear clases complejas. En este caso se reutiliza la interfase
de las clases componente. Las clases estn unidas mediante la relacin parte_decon una flecha con punta de rombo. Los objetos que lo componen son privados
Llanta
Automovil
Motor
Chasis
-
Composicin class Automovil
{
String marca ;
Motor motor ;
Chasis chasis ;
Llanta llanta[] = new Llanta[4];
Automovil(String _marca)
{
marca = _marca;
motor = new Motor(4);
chasis = new Chasis(azul);
for( int i = 0; i < llanta.length; i++ )
llanta[i] = new Llanta(deportiva);
}
void asignaMotor(Motor _motor)
{
motor = _motor;
}
}
-
Agregacin
La Agregacin es una relacin que permite crear clases complejasmediante la agrupacin de una coleccin de una clase existente
(es una forma ms dbil que la composicin).
Las clases estn unidas mediante la relacin parte_de con una flecha con
punta de rombo hueca. En Java las implementaciones de Collectionson ejemplos de esta relacin
BosqueArbol
-
Paquetes
Un Paquete agrupa a un conjunto de clases se indica en un programa con
la palabra reservada import subdirectorio1.subdirectorio2.claseEn la variable de ambiente CLASSPATH debe estar la ruta de la ubicacin de las
clases que forman al paquete subdirectorio1\subdirectorio2
Escuela
Materia
Profesor Salon
Alumno