2. Definicion
• Clases son modelos para objetos de la vida real
• Clases tienen propiedades y comportamiento, a las
propiedaddes se les llama atributos o campos.
• El comportamiento se refiere a las acciones del objeto
que se modela, estos son llamados métodos o
procedimientos.
• Los atributos son variables que le pertenecen a toda
la clase y pueden ser accedidas desde cualquier
parte de ella incluso fuera de ella dependiendo de su
modificador de acceso. Estos modificadores de
acceso se aplican a los atributos y los métodos
también.
3. Como declarar una clase
En java clases simples se declaran así:
[ModificadorDeAcceso] class nombreDeseado{
}
Ej.
public class Persona{
.
.
.
}
4. Declaracion de un metodo
[ModificadorAcceso] [OtrosModificadore] [TipoRetorno]
nombreMetodo(Tipo parámetro){
return algo;
}
Ej.
private boolean estaCerrado(){
......
return true o false;
}
public static long suma(long a, int b){
return a + b;
}
5. Declaracion de un
atributo
[ModificadorAcceso] [OtrosModificadores] [TipoVariable]
nombreAtributo; [ = ValorInicialOpcional];
Ej.
private int codigo;
public static final String codPais = "HN";
protected long numeroDePatas;
6. Modificadores de Acceso
Los modificadores de accesso indican el lugar de
donde pueden ser accedidos los elementos que los
presentan.
7. public
Si una clase, atributo, o método es declarado
publico, puede ser accedido desde cualquier lugar
en la aplicación.
8. private
Métodos y atributos privados solo pueden ser
accedidos desde la clase a la que pertenecen. Existe
las clases privadas también, son muy raras, estas se
declaran dentro de una clase, como si fuera otro
atributo.
9. protected
Los métodos y atributos protected pueden ser
accedidos por cualquier clase que esté en el mismo
paquete.
Un paquete es un folder ( mas o menos), se usa para
organizar archivos de código Fuente de acuerdo a su
relación.
Por ejemplo en un paquete "electrónicos" habría clases
como TV, Computadora, Smartphone. En un paquete
"dinero" que no tiene nada que ver con "electrónicos"
habría clases como Moneda, Billete, Cheque.
10. Tipos de Retorno
• Estos pueden ser cualquiera de los datos primitivos
que ya se estudiaron: int, double, long, boolean,
char; alguna clase de Java, String, Date, Integer, o
alguna que hayamos definido nosotros. Este
indica de que tipo será el objeto que devolverá el
método a quien lo llamó.
• Además se puede devolver arreglos de un
método. Existe el tipo "void" que indica que el
método NO retorna NADA. Algunos
programadores llaman a los métodos void
"métodos" o "procedimientos" o "rutinas", y a los
que no son void "funciones".
11. Tipos de Variable
• Además de los primitivos se puede tener variables
de Clases. Recuerda que cuando creas una
nueva clase estas creando un nuevo tipo de dato,
así que puedes crear objetos de ese tipo. A estas
variables se les llama objetos.
• Cuando creas una variable de un tipo
referenciado, se dice que se esta instanciando la
clase, este objeto tendrá una copia de los
atributos y métodos que tiene el tipo.
12. • Para acceder a estos atributos escribimos el
nombre del objeto, un punto "." y el método o
atributo que se desea.
Ej.
ClaseMia cm = new ClaseMia(); //aquí se están
instanciando ClaseMia
cm.unMetodo();
int algo = 3 + cm.otroMetodo() + cm.algunAtributo;
13. Otros modificadores
• Existen otros modificadores que pueden asignarse
a los atributos, clases y métodos, que no se como
explicar bien para que exactamente sirven pero
voy a intentar de todos modos.
14. static
Este modificador indica que el atributo o método,
pertenecen a LA CLASE no a los objetos, todo objeto
que se instancie de LA CLASE compartirá la misma
copia del atributo o método. Puede ser accedido,
suponiendo que es publico, sin necesidad de crear
un objeto.
15. Ej.
Math.sqrt(5); //sqrt() es un método estático en la clase Math.
MiClase.miMetodo(algo);
/* podríamos escribir también el nombre de algún objeto de esta
clase, pero no faltaran programadores que se burlen de vos en tu
cara. */
int bla = miObjeto.algunAtributoEstatico + 4;
16. A los atributos que son estáticos se les suele llamar
Variables de clase, a los que no lo son, se les dice
variables de objeto. Pues como decía los atributos y
métodos estáticos son compartidos por todas las
instancias. Este hecho implica también que si
modificamos (suponiendo que el acceso nos permite
hacerlo) un atributo estático, todos los objetos
tendrán ese valor en su atributo ya que lo comparten.
18. final
Este modificador se usa para declarar constantes,
cuando se usa en una Clase la consecuencia es que
esa clase no podrá ser extendida, o sea crear clases
a partir de ella (herencia, algo así como que le hacen
una vasectomía).
Cuando se usa en un método, este no puede ser
modificado en la hija de alguna clase que no sea
final, cuando se usa en un atributo o en alguna
variable dentro de un método, esta no podrá
cambiar su valor una vez inicializada.
19. Ej.
final int num = 5;
num = 8; //esto no puede hacerse porque el
compilador se enoja.
20. Mas modificadores
Otros que existe de los que no vamos a hablar
porque no es necesario por ahora porque no sé y
otros que no me acuerdo: abstract, transient, volatile,
interface, strict, native, synchronized. De los cuales
solo conozco dos :(
22. Explicacion funciones
void y no-void
• Imaginemos la función matemática f(x) = x + 1 esto
equivaldría en un método de java a:
int f(int x){
return x + 1;
}
23. Cuando se llama a f(x) y se le manda el valor de "x",
este lo remplaza donde quiera que se use esa
variable y devuelve el resultado de las operaciones.
Dado que devuelve algo se puede usar en algún otro
calculo
int var = 4 + f(2); //este le daria 7 a la variable "var"
24. …pero si definimos el método como:
void f(int x){
x + 1;
return;
}
este método no puede ser usado en ningún calculo
porque no devuelve nada. Nótese que se escribió
"return" puede hacerse cuando se necesite.
25. Ej.
void metodoLoco(int x){
if( x > 5)
imprimir(x);
if( x > 17)
return;
imprimir( 4 + x);
}
}
Si ese método recibe 10, imprimirá 10 y luego 14, si
recibe 4 imprimirá 8, si recibe 18 imprimirá 18
solamente.