Capitulo 3
http://www.horstmann.com/bigjava.htmlImplementando Clases
Metas del capitulo
- Familiarizarse con el proceso de implementar clases
- Implementar metodos simples
- Entender el proposito y el uso de los constructores
- Entender como acceder a las "instance" variables y a las variables locales
En este capitulo se aprendera un poco sobre el como las interfaces publicas especifican la informacion que el programa debe interpretar, manipular o/y resolver. En el proceso uno va a conocer como relacionar la interface publica de una clase su diseño, el como crear sus constructores, implementar los metodos, encapsularlos y documentarlos.
3.1 Las variables "instance"
Las variables "instance" son estas que guardan el dato especifico de cada clase, como las propiedades de la clase, creadas para guardar o señalar la propiedad de la clase.
public class Contador
{
private int valor;
//..contructor de clase con las propiedades que sean atribuidas, en este caso la variable "instance"
}
las variable "instance" tienen un accesador especifico(private), un tipo para la variable(int), y e nombre de la variable(valor).
*Cada objeto de la clase tiene su coleccion de "instance" variables.
*Las "instance" variables del objeto guardan la informacion requerida para la ejecucion de los metodos.
3.2 Encapsulacion
Encapsulacion es un metodo de programacion que sugiere al programador ocultar todo tipo proceso para que no pueda ser publicamente modificado.
Esta forma de programar es muy importante para asegurar la informacion y saber cuando esta siendo usado dicho metodo.
Un ejemplo seria el motor del carro; en el carro existen una serie de maquinas que forman el motor, pero todas estas con exepcion de una puede ser reparada por cualquier mecanico, esta se le dice la "caja negra" una maquina que maneja el resto de las maquinas y calcula su debido comportamiento. La "caja negra" tiene los detalles necesarios para que el motor funcione adecuadamente.
Encapsulacion permite al programador usar las clases sin saber su implementacion. Como la clase StreamPrint de System.out.pritnln("Hola"); que permite usar el metodo de la clase StreamPrint sin tener que saber su implementacion.
Otro ejemplo seria el crear una clase y que el tester class pueda acceder a la clase y sus metodos sin saber como fueron implementados los metodos y su proceso interno.
Video opcional: https://www.youtube.com/watch?v=09CcotpGhqE
3.3 Especificar la interface publica de una clase.
Con el tiempo uno se dara cuenta la importancia de las interfaces y del como son extendidas a otras clases pero ahora se veran las interfaces como la clase publica usada para ejercer una tarea o funcion.
Las clases publicas pueden ser diseñadas o programadas para que hagan una tarea cuantas veces pueda, esto demuestra la funcionalidad de una interface publica de la clase crear como una clase generica que repita el mismo tipo de metodos para sus espeficicas funciones a multiples usuarios.
Por ejemplo, una interface publica de una clase puede ser la cuenta de banco, diseñada por los programadores de un banco que quieran que cada cliente pueda acceder a la cuenta, ver su estado actual, ademas de retirar y guardar creditos, todo diseñado en una clase publica llamada CuentaBancaria.
CuentaBancaria es una clase publica que se usa como interfase generica dado la simplicitud de sus funciones y de sus metodos, con el tiempo se vera el como implementar o extender este tipo de clases por medio de otras subclases y adicionarles mas metodos, etc, y el como crear una interface que solo use unos metodos unicos, genericos, para la implementacion de otro tipo de clases que llame a la interface. Algo mas adelante, segun el libro y el conocimiento que uno tenga.
*Cuando uno va a crear una clase o diseñar una clase uno tiene que saber que metodos seran usados, y que metodos pueden ser reusados para la simplicidad del programa y la rapidez de este.
3.3.1 Tipos de Metodos
- Estan los metodos que retornan algo debido a su tipo, denominados "accesors" y se especifican por el tipo de valor que retornaran, ejemplo: "double"
- Estan tambien los metodos que manipulan informacion pero no retornan nada, denominados "mutators" y se especifican por la palabra reservada "void"
3.3.2 Constructores
- Tienen el mismo nombre de la clase
- No retornan ningun tipo de informacion y no llevan ningun tipo de espicificacion, ni "void"
- Los que no tienen nada en el parametros y son creados con una informacion predeterminada.
- Los que tienen algun tipo de parametros establecidos y pueden llevar un tipo espeficico de informacion al construirse.
por ejemplo:
public class CuentaBancaria
{
private instance variables - se llenan luego
//constructor
public CuentaBancaria()
{
private instance variables = 0;
}
public CuentaBancaria(double balanceInicial)
{
private instance variables = balanceInicial;
}
}
En otras palabras, cuando empiezan a programar: al crear una clase siempre ver que tipo de "instance" variables necesita, los constructores, y los metodos, con esto ya lo demas es pura logica, algoritmo y creatividad. Palabras personales: priotizar lo mas importante entre el estudio, el area social y la vida personal, el balancearlo mediante la personalidad de uno y el no dejarse llevar por nadie mas que aquellos que verdaderamente lo pueden ayudar, uno siempre creara situaciones donde aprenderan de los problemas.
3.4 Javadoc
A la hora de programar, del ya saber que metodos usar y que hacer, lo siguiente es documentarlo todo, con el tiempo se vera como Javadoc sera muy util y el como los comentarios adicionales en el programa tambien.
Javadoc es el programa que permitira documentar las clases, sus objetos y metodos, dandoles la informacion de cada funcion para la facilidad de cualquier programador poder entender el programa y sus funciones. Ver video: https://www.youtube.com/watch?v=OfOz-hbntu0
Pagina para bajar el programa Javado directo de Oracle, o si se usa netbeans, ya esta instalado y para ver como se pueden generar documentos Javadoc, vease el video.
"Javadoc es una utilidad de Oracle para la generación de documentación de APIs en formato HTML a partir de código fuente Java. Javadoc es el estándar de la industria para documentar clases de Java. La mayoría de los IDEs los generan automáticamente.
Javadoc también proporciona una API para crear doclets y taglets, que le permite analizar la estructura de una aplicación Java. Así es como JDiff puede generar informes de lo que ha cambiado entre dos versiones de una API."
http://es.wikipedia.org/wiki/Javadoc
*Javadoc es la misma documentacion usada por el API: http://docs.oracle.com/javase/6/docs/api/
3.5 Creando la implementacion de la clase
Una clase se puede ver como el objeto y sus funciones, por ejemplo un carro y lo que hace el carro.
/** implementacion de la clase carro con sus propiedades
*@author x
*/
public class Carro
{
//instance variables
private string color;
private String modelo;
//constructor
public Carro()
{
color = negro;
modelo= simple;
}// fin del constructor
//metodos
@param cambia el color del carro
public void colorCarro(string color)
{
this.color = color;
}//fin del metodo colorCarro
@param cambia el modelo
public String modeloCarro(String modelo)
{
this.modelo = modelo;
return this.modelo;
}//fin del metodo modeloCarro
}//fin de la clase Carro
3.6 Creando una clase de prueba o "Tester Class"
Las clases todas son parte del programa y todas tienen su funcion, por lo mismo para ver si las clases funcionan como deben el programador puede crear una clase "main" o principal para probar si la clase funciona como debe y esta es una clase aparte dentro del mismo paquete que crea objetos y llama a las funciones.
/**
Una clase para probar la clase Carro
*/
public class CarroPrueba
{
/**
prueba los metodos de la clase CarroPrueba
@param args no son usados
*/
public static void main(String[] args)
private string modelo = "";
Carro cliente = new Carro();
cliente.colorCarro("Dorado");
modelo = cliente.modeloColor("2013");
System.out.println(cliente.color + " " + modelo);
}//fin de la clase de prueba
En esta clase de prueba use varias formas de programar para representar el uso de las variables de las clases creadas y el como guardar la informacion generada en los metodos de las clases creadas en las clases del CarroPrueba, otro metodo de programar. para otro ejemplo vease el link: http://www.horstmann.com/bigjava.html donde dice "Source code for all sample programs" que significa, fuente del codigo de los ejemplos de las clases, objetos y metodos planteados.
3.7 Variables locales
Las variables locales son las variables declaradas en el cuerpo del metodo.
"Lenguajes orientados a objetos más estrictos y formales tales como Java y C#, no permiten la declaración de variables locales estáticas en una función. En estos lenguajes las variables "estáticas" se restringen al ámbito de la clase." http://es.wikipedia.org/wiki/Variable_local
Vease tambien: http://docs.oracle.com/javase/tutorial/java/nutsandbolts/variables.html
Tarea: De que se trata la referencia "this" como variable y como constructor?
No comments:
Post a Comment