Professional Documents
Culture Documents
Clases y Objetos
Qu es una Clase?
Una clase es una entidad autocontenida que tiene las
definiciones de los atributos y el comportamiento que
son comunes a todos los objetos de software de un tipo
en particular
Los atributos se convierten en las variables y el
comportamiento se refleja con los mtodos en una
clase Java
A partir de una clase se pueden
llamadas objetos.
crear instancias
Qu es una Clase? 1
Caractersticas (variables)
N# de Ruedas
Tipo de Ruedas
Color
Velocidad
Bicicleta
acelerar
desacelerar
frenar
Cambiar Velocidad
Responsabilidades (mtodos)
Definicin
de la Clase
package transporte;//Opcional
import java.lang.String;//Opcional
class Bicicleta{
Conjunto de
int nRuedas;
Caractersticas
int tipoRuedas;
(variables miembro)
String color;
float velocidad;
public
public
public
public
void
void
void
void
acelerar(float a){}
desacelerar(float a){}
frenar(){}
cambiarVelocidad(int v){}
}
Responsabilidades
(mtodos)
Componentes
Propsito
public
abstract
final
class nombreClase
extends superClase
implements interface
{
}
Implementacin de la clase
Qu es un Objeto?
Creacin
de Objetos
Uso
de Objetos
Destruccin
de Objetos
Creacin de Objetos
La creacin de un objeto es bsicamente la creacin de
una instancia de una clase, tambin conocido como
instanciacin de una clase
La declaracin
puede estar
separada de la
creacin
Miembros de un Objeto
Generalmente, para referirse a los miembros de un objeto, se puede
agregar el nombre de la variable o referencia del objeto con un punto
(.) entre ellos.
class A{
public int m1;
private int m2;
public void setM2(int val){
m2 = val;
}
public static void main(String args[]){
A obj = new A();
obj.m1 = 32; // acceso a una variable m.
obj.setM2(42);// acceso a una funcin m.
}
}
10
Modificadores de Acceso
En Java, existen diferentes formas de controlar el
acceso a los miembros de una clase. Para ello se
utilizan los Modificadores de Acceso, que son:
private
proctected
public
Sin modificador (se asume package)
11
Private
Un miembro especificado como private es accesible
slo dentro de la clase donde es definido
Se utiliza para mantener el estado del objeto
consistente
class Cuenta{
private float saldo; // Miembro privado
public Cuenta() { saldo = 0; }
}
class Principal {
public static void main(String args[]){
Cuenta c = new Cuenta();
c.saldo = 125; //Error, miembro privado
}
12
Protected
Permite que un miembro sea accedido por la clase en el
que est definido, sus subclases y las clases en el mismo
paquete
class Padre{//Definida en el paquete p
protected int m1; // Miembro protegido
}
class Hijo extends Padre{//Definida en el paquete p
public void setM1(int val){
m1 = val; // Correcto, es protegida
}
}
class Otra{ //Definida en otro paquete
public static void main(String args[]){
new Hijo().m1 = 20; //Error m1 no es accesible
}
}
13
Public
14
Package
Permite que un miembro sea accedido dentro de la
clase en la que est definido, y las clases en el mismo
paquete
class Padre{//Definida en el paquete p
int m1; // Miembro con acceso package
}
class Hijo extends Padre{//Definida en p
public void setM1(int val){
m1 = val; // Correcto
}
}
class Otra{//Definida en otro paquete
public static void main(String args[]){
new Hijo().m1 = 20; //Error m1 no es
accesible
}
}
15
Debe tener el
mismo nombre
de la clase
class Persona{
int ci;
static int numPersonas = 0;
public Persona(){ci=0;}
public Persona(int numCi){
ci = numCi;
Si no
numPersonas++;
proporcionamos
}
algn constructor,
public getCi(){return ci;}
Java lo hace
public static int getNumPersonas(){
return numPersonas;
}
}
16
Podemos
tener tantos
constructore
s como
queramos
Sobrecarga de Mtodos
Java permite tener dos o ms mtodos con el mismo
nombre dentro de la misma clase, siempre que cumplan
con alguna de las siguientes premisas:
Distinto numero de argumentos
Diferencia en los tipos de datos de los argumentos
Orden distinto en el que aparecen los argumentos
No basta con que el tipo de retorno sea distinto para
diferenciar a dos mtodos sobrecargados
17
Sobrecarga de Mtodos 1
1. public class A{
Mtodo suma
2.
public int suma(int n1, int n2){
original
3.
return ( n1 + n2 );
4.
}
5.
public int suma(int n1, int n2, int n3){
6.
return ( n1 + n2 + n3 );
7.
}
Mtodo suma
8.
public void suma(int n1, int n2){
sobrecargado
9.
System.out.println( n1 + n2 );
perfectamente
10.
}
11.}
Nota: en la lnea 8 se genera un error
ya que el mtodo suma solo se diferencia en el
tipo de retorno
18
Este Mtodo
suma genera
un error