HOLA EN ESTE BLOG LES ESTARÉ EXPLICANDO ALGUNOS CONCEPTOS Y EJERCICIOS BASADOS EN LA PROGRAMACIÓN ORIENTA A OBJETOS EN EL LENGUAJE DE PROGRAMACIÓN JAVA CON EL IDE ECLIPSE, LA CUAL ES UNA DE LAS HERRAMIENTAS QUE USAMOS ACTUALMENTE CON MAS FRECUENCIA, PERO ANTES DE MOSTRAR LOS EJERCICIOS REPASEMOS ALGUNOS CONCEPTOS SOBRE ESTE TIPO DE PROGRAMACIÓN YA QUE EN MUCHAS OCASIONES CUANDO VAMOS A TRABAJAR CON UN NUEVO LENGUAJE DE PROGRAMACIÓN O UN TIPO DE PROGRAMACIÓN DIFERENTE NO SABEMOS A QUE NOS VAMOS A ENFRENTAR Y PUES ES MUY IMPORTANTE SABER Y ENTENDER DE QUE SE TRATA ESE TEMA :
CONCEPTOS PROGRAMACIÓN ORIENTADA A OBJETOS
CLASES:
Las clases son declaraciones de objetos o también se puede decir que una clase es una descripción de datos y operaciones que describen el comportamiento de cierto tipo de elementos (objetos), por lo tanto para poder crear un objeto tenemos que primero declarar una clase con sus atributos y operaciones. Normalmente en el mundo existen varios objetos de un mismo tipo, en esta ocasión diremos de una misma clase, por ejemplo mi carro es uno de los muchos que pueden existir en el mundo, usando la terminología de programación orienta a objetos diremos que mi carro es una instancia de la clase de objetos conocida como autos. todos los autos tienen algunos atributos (color, modelo, placa, numero de ruedas etc), y operaciones o métodos (encender, apagar, arrancar, frenar,etc) en común. Sin embargo la particularidad de estos atributos pueden ser diferentes, es decir, un auto podrá ser rojo, y otro negro pero ambos tienen en común la variable o el atributo "color". De este modo podemos definir una clase compuesta por variables y métodos para todos los autos.
Ejemplo 1:
public class Auto {
// ATRRIBUTOS DE LA CLASE
private String color;
private String modelo;
private int NumeroRuedas;
// METODOS DE LA CLASE
public String DimeColor() {
return color;
}
public String DimeModelo() {
return modelo;
}
public int DimeNumeroRuedas() {
return NumeroRuedas;
}
public String Encender() {
return "El auto ha encendido";
}
public String Arrancar() {
return "El auto ha arrancado";
}
}
Como vemos en este ejemplo tenemos la clase auto con sus atributos y sus métodos pero para poder crear objetos de este tipo de clase tenemos que tener un constructor que es el encargado de inicializar los objetos.Un apunte importante es que una clase debe estar bien diseñada, es decir, agrupar información conectada lógicamente. El colocar información no relacionada dentro de la misma clase rápidamente desestructurarà su código.
Actualización ejemplo 1 con constructor:
public class Auto {
// ATRRIBUTOS DE LA CLASE
// CONSTRUCTOR ENCARGADO DE INICIALIZAR CORRECTAMENTE LOS OBJETOS
public Auto(String color, String modelo, int numeroRuedas) {
this.color = color;
this.modelo = modelo;
this.NumeroRuedas = numeroRuedas;
}
// METODOS DE LA CLASE
public String DimeColor() {
// ATRRIBUTOS DE LA CLASE
private String color;
private String modelo;
private int NumeroRuedas;
// CONSTRUCTOR ENCARGADO DE INICIALIZAR CORRECTAMENTE LOS OBJETOS
public Auto(String color, String modelo, int numeroRuedas) {
this.color = color;
this.modelo = modelo;
this.NumeroRuedas = numeroRuedas;
}
// METODOS DE LA CLASE
public String DimeColor() {
return color;
}
public String DimeModelo() {
return modelo;
}
public int DimeNumeroRuedas() {
return NumeroRuedas;
}
public String Encender() {
return "El auto ha encendido";
}
public String Arrancar() {
return "El auto ha arrancado";
}
}
Una definición de "class" crea un nuevo tipo de datos. En este caso el nuevo tipo de datos de llama Auto. se usarà este nombre para declarar objetos de tipo Auto. Recuerde que una declaración de class es solo un tipo de descripción; no crea un objeto real. Así el código anterior no crea ningún objeto tipo Auto.
OBJETOS
Un objeto no es mas que un conjunto de variables y métodos relacionados entre si. Los objetos en programación de usan para modelar objetos o entidades del mundo real (el objeto carro instanciado de la clase Auto, el objeto hijo,madre,etc). Un objeto es, por tanto, un ejemplar concreto de una clase, responde al comportamiento definido por las operaciones de la clase a la que pertenece, es decir, si la clase auto dispone del atributo color y del método arrancar, entonces un objeto auto concreto tendrá un color, y podrá arrancar, exclusivamente.
ESTRUCTURA DE UN OBJETO
Un objeto puede considerarse como una especie de cápsula dividida en tres partes:
1 - RELACIONES
2 - PROPIEDADES
3 - MÉTODOS
Cada uno de estos componentes desempeña un papel totalmente independiente:
Las relaciones: Las relaciones entre objetos son, precisamente, los enlaces que permiten a un objeto relacionarse con aquellos que forman parte de la misma organización.
Las propiedades: distinguen un objeto determinado de los restantes que forman parte de la misma organización y tienen valores que dependen de la propiedad de que se trate. Las propiedades de un objeto pueden ser heredadas a sus descendientes en la organización.
Los métodos: son las operaciones que pueden realizarse sobre el objeto, que normalmente estarán incorporados en forma de programas (código) que el objeto es capaz de ejecutar.
CREAR UN OBJETO EN JAVA
En java, se crea un objeto mediante la creación de un objeto de una clase o, en otras palabras ejemplarizando una clase.
frecuentemente, se vera la creación de un objeto con una sentencia como esta:
Auto miAuto = new Auto("lista de parámetros del constructor");
Esta declaración desempeña dos funciones. Primero declara una variable de nombre miAuto del tipo de clase Auto. Esta variable no define un objeto. En cambio es simplemente una variable que puede referirse a un objeto. Segundo, la declaración crea una copia física del objeto y asigna a miAuto una referencia a ese objeto. Esto se hace usando el operador new.
El operador new asigna dinámicamente memoria (asignada en tiempo de ejecución) para un objeto y le devuelve una referencia a ésta. Esta referencia es almacenada en una variable.
Esta declaración desempeña dos funciones. Primero declara una variable de nombre miAuto del tipo de clase Auto. Esta variable no define un objeto. En cambio es simplemente una variable que puede referirse a un objeto. Segundo, la declaración crea una copia física del objeto y asigna a miAuto una referencia a ese objeto. Esto se hace usando el operador new.
El operador new asigna dinámicamente memoria (asignada en tiempo de ejecución) para un objeto y le devuelve una referencia a ésta. Esta referencia es almacenada en una variable.
Ejemplo 2:
Del ejemplo 1 crearemos tres objetos de tipo Auto:
public class Main {
public static void main(String[] args) {
Auto miAuto = new Auto ("ROJO","2016",4);
Auto tuAuto = new Auto ("verde","1990",8);
Auto ElAutoDeMiAbuela = new Auto ("negro","1850",3);
System.out.println("Mi auto es de color: "+miAuto.DimeColor());
System.out.println("Su modelo es: "+miAuto.DimeModelo());
System.out.println("numero de llantas: "+miAuto.DimeNumeroRuedas());
System.out.println(miAuto.Encender());
System.out.println(miAuto.Arrancar()+"\n");
System.out.println("tu auto es de color: "+tuAuto.DimeColor());
System.out.println("Su modelo es: "+tuAuto.DimeModelo());
System.out.println("numero de llantas: "+tuAuto.DimeNumeroRuedas()+"\n");
System.out.println("El auto de mi abuela es de color: "+ElAutoDeMiAbuela.DimeColor());
System.out.println("Su modelo es: "+ElAutoDeMiAbuela.DimeModelo());
System.out.println("numero de llantas: "+ElAutoDeMiAbuela.DimeNumeroRuedas());
}
}
public static void main(String[] args) {
Auto miAuto = new Auto ("ROJO","2016",4);
Auto tuAuto = new Auto ("verde","1990",8);
Auto ElAutoDeMiAbuela = new Auto ("negro","1850",3);
System.out.println("Mi auto es de color: "+miAuto.DimeColor());
System.out.println("Su modelo es: "+miAuto.DimeModelo());
System.out.println("numero de llantas: "+miAuto.DimeNumeroRuedas());
System.out.println(miAuto.Encender());
System.out.println(miAuto.Arrancar()+"\n");
System.out.println("tu auto es de color: "+tuAuto.DimeColor());
System.out.println("Su modelo es: "+tuAuto.DimeModelo());
System.out.println("numero de llantas: "+tuAuto.DimeNumeroRuedas()+"\n");
System.out.println("El auto de mi abuela es de color: "+ElAutoDeMiAbuela.DimeColor());
System.out.println("Su modelo es: "+ElAutoDeMiAbuela.DimeModelo());
System.out.println("numero de llantas: "+ElAutoDeMiAbuela.DimeNumeroRuedas());
}
}
La salida de este programa sera la siguiente:
Mi auto es de color: ROJO
Su modelo es: 2016
numero de llantas: 4
El auto ha encendido
El auto ha arrancado
tu auto es de color: verde
Su modelo es: 1990
numero de llantas: 8
El auto de mi abuela es de color: negro
Su modelo es: 1850
numero de llantas: 3
Mi auto es de color: ROJO
Su modelo es: 2016
numero de llantas: 4
El auto ha encendido
El auto ha arrancado
tu auto es de color: verde
Su modelo es: 1990
numero de llantas: 8
El auto de mi abuela es de color: negro
Su modelo es: 1850
numero de llantas: 3
MÉTODOS
Los métodos son subrutinas que que manipulan los datos definidos por la clase, y en muchos casos, proveen accesos a esos datos. En muchos casos, otras partes de su programa interactuarán con una clase a través de sus métodos.
Un método contiene una o mas declaraciones. En código bien escrito de java, cada método desempeña solo una tarea. Cada método tiene un nombre y este se usa para llamar al método.
La forma general de un método es:
tipo de retorno nombre del método (lista de parámetros){
// cuerpo del método
}
Aquí tipo de retorno especifica el tipo de datos devueltos por el método; puede ser cualquier tipo valido, incluso los tipos de clase que usted genere. Si el método no devuelve un valor, su tipo de retorno debe ser void. El nombre del método se especifica por nombre, que puede ser algún identificador valido diferente de aquellos que ya usaron otros elementos dentro del ámbito actual. La lista de parámetros es una secuencia de parejas tipo e identificado, separados por comas, Los parámetros son básicamente variables que reciben el valor de los argumentos pasados al método cuando éste se llama.
Un ejemplo de estos lo podemos ver en el ejemplo 1;
public class Auto {
private String color;
private String modelo;
private int NumeroRuedas;
// METODOS
public String DimeColor() { // retorna un String
return color;
}
public void setModelo(String modelo) { // no retorna ningun valor
this.modelo= modelo;
}
public int DimeNumeroRuedas() { // retorna un entero
return NumeroRuedas;
}
}
2 comentarios
Write comentarioshola muchas gracias por ese buen aporte me sentía confundida estos conceptos pero gracias a tú blog pude entender mejor este tipo de programación. quisiera q siguieras así y siguiera con otros conceptos como la herencia y polimorfismo q en esos me siento confundida gracias.
ReplyMuchas gracias a ti por tu opinion.. Mas adelante publicarè otro blog con tu sugerencia.
ReplyConversionConversion EmoticonEmoticon