public class UsoPruebaMatrices {
public static void main (String args[]){
PruebaMatrices c = new PruebaMatrices (2,3);
c.matriz[0][0] = 2; c.matriz[0][1]= 2; c.matriz[0][2]=1;
c.matriz[1][0] = 3; c.matriz[1][1]=-1; c.matriz[1][2]=0;
PruebaMatrices b=new PruebaMatrices (5,3);
b.matriz[0][0] = 6; b.matriz[0][1]= -2;b.matriz[0][2]=5;
b.matriz[1][0] = 4; b.matriz[1][1]= 2; b.matriz[1][2]=-1;
b.matriz[2][0] = 0; b.matriz[2][1]= 1; b.matriz[2][2]=1;
b.matriz[3][0] = -2; b.matriz[3][1]= -2; b.matriz[3][2]=0;
b.matriz[4][0] = 1; b.matriz[4][1]= 0; b.matriz[4][2]=-1;
PruebaMatrices a=new PruebaMatrices (1,5);
a.matriz[0][0] = 1; a.matriz[0][1]= -1;a.matriz[0][2]=0;a.matriz[0][3]=1;a.matriz[0][4]=1;
PruebaMatrices e=new PruebaMatrices (3,3);
e.matriz[0][0] = -1; e.matriz[0][1]= 0;e.matriz[0][2]=-1;
e.matriz[1][0] = 1; e.matriz[1][1]= 0; e.matriz[1][2]=1;
e.matriz[2][0] = -1; e.matriz[2][1]= 1; e.matriz[2][2]=-1;
PruebaMatrices r1;
r1=c.multiplicacion(e);
PruebaMatrices bt;
bt=b.transpuesta();
PruebaMatrices rt1;
rt1=r1.multiplicacion(bt);
System.out.println(rt1.toString());
PruebaMatrices x1;
x1=a.multiplicacion(b);
PruebaMatrices x2;
x2=x1.multiplicacion(e);
System.out.println(x2.toString());
PruebaMatrices r2;
r2=e.multiplicacion(bt);
PruebaMatrices at;
at=a.transpuesta();
PruebaMatrices rt2;
rt1=r1.multiplicacion(at);
System.out.println(rt1.toString());
}
}
miércoles, 28 de octubre de 2009
prueba matrices
public class PruebaMatrices {
public int numeroFilas;
public int numeroColumnas;
public int [][] matriz;
public PruebaMatrices (){
}
public PruebaMatrices (int nF, int nC){
numeroFilas= nF;
numeroColumnas=nC;
matriz=new int [numeroFilas][numeroColumnas];
for (int i=0; i< numeroFilas; i++)
for (int j=i; j matriz [i][j]=0 ;
}
public PruebaMatrices multiplicacion (PruebaMatrices B){
PruebaMatrices resultado;
if((this.numeroColumnas==B.numeroFilas)){
resultado =new PruebaMatrices(this.numeroFilas,this.numeroColumnas);
for (int i=0; i< this.numeroFilas;i++)
for(int j=0;j resultado.matriz[i][j]+=this.matriz[i][j]*B.matriz[i][j];
return resultado;
}
else{
System.out.println("Error en dimensiones de las matrices");
resultado = null;
return resultado;
}
}
public PruebaMatrices transpuesta() {
PruebaMatrices resultado;
resultado = new PruebaMatrices(this.numeroColumnas,this.numeroFilas);
for (int i=0;i < this.numeroFilas; i++)
for(int j=0 ; j< this.numeroColumnas; j++)
resultado.matriz[j][i]= this.matriz[i][j];
return resultado;
}
public String toString(){
String aux ="[";
for (int i=0; i< numeroFilas; i++)
for (int j=0;j aux += matriz [i][j]+" ";
}
aux += "\n";
return aux;
}
}
public int numeroFilas;
public int numeroColumnas;
public int [][] matriz;
public PruebaMatrices (){
}
public PruebaMatrices (int nF, int nC){
numeroFilas= nF;
numeroColumnas=nC;
matriz=new int [numeroFilas][numeroColumnas];
for (int i=0; i< numeroFilas; i++)
for (int j=i; j
}
public PruebaMatrices multiplicacion (PruebaMatrices B){
PruebaMatrices resultado;
if((this.numeroColumnas==B.numeroFilas)){
resultado =new PruebaMatrices(this.numeroFilas,this.numeroColumnas);
for (int i=0; i< this.numeroFilas;i++)
for(int j=0;j
return resultado;
}
else{
System.out.println("Error en dimensiones de las matrices");
resultado = null;
return resultado;
}
}
public PruebaMatrices transpuesta() {
PruebaMatrices resultado;
resultado = new PruebaMatrices(this.numeroColumnas,this.numeroFilas);
for (int i=0;i < this.numeroFilas; i++)
for(int j=0 ; j< this.numeroColumnas; j++)
resultado.matriz[j][i]= this.matriz[i][j];
return resultado;
}
public String toString(){
String aux ="[";
for (int i=0; i< numeroFilas; i++)
for (int j=0;j
}
aux += "\n";
return aux;
}
}
domingo, 18 de octubre de 2009
programa de multiplicacion de matrices
public class PruebaMatriz {
public static void main(String args[]){
Matriz a= new Matriz(2, 2);
a.matriz[0][0]=1;a.matriz[0][1]=2;
a.matriz[1][0]=4;a.matriz[1][1]=3;
System.out.println( a.toString());
Matriz b= new Matriz(2, 2);
b.matriz[0][0]=5;b.matriz[0][1]=6;
b.matriz[1][0]=7;b.matriz[1][1]=8;
System.out.println( a.toString());
Matriz f;
f=a.multiplicacion(b);
System.out.println(f.toString());
}
}
public static void main(String args[]){
Matriz a= new Matriz(2, 2);
a.matriz[0][0]=1;a.matriz[0][1]=2;
a.matriz[1][0]=4;a.matriz[1][1]=3;
System.out.println( a.toString());
Matriz b= new Matriz(2, 2);
b.matriz[0][0]=5;b.matriz[0][1]=6;
b.matriz[1][0]=7;b.matriz[1][1]=8;
System.out.println( a.toString());
Matriz f;
f=a.multiplicacion(b);
System.out.println(f.toString());
}
}
matriz de multiplicacion
public class Matriz {
public int numeroFilas;
public int numeroColumnas;
public double [][] matriz;
public Matriz (){
}
public Matriz (int nF, int nC){
numeroFilas= nF;
numeroColumnas=nC;
matriz=new double [numeroFilas][numeroColumnas];
for (int i=0; i< numeroFilas; i++)
for (int j=i; j matriz [i][j]=0 ;
}
public Matriz multiplicacion (Matriz B){
Matriz resultado;
if((this.numeroFilas==B.numeroFilas)& (this.numeroColumnas==B.numeroColumnas)){
resultado =new Matriz(this.numeroFilas,this.numeroColumnas);
for (int i=0; i< this.numeroFilas;i++)
for(int j=0;j resultado.matriz[i][j]=this.matriz[i][j]*B.matriz[j][i];
return resultado;
}
else{
System.out.println("Error en dimensiones de las matrices");
resultado = null;
return resultado;
}
}
public int numeroFilas;
public int numeroColumnas;
public double [][] matriz;
public Matriz (){
}
public Matriz (int nF, int nC){
numeroFilas= nF;
numeroColumnas=nC;
matriz=new double [numeroFilas][numeroColumnas];
for (int i=0; i< numeroFilas; i++)
for (int j=i; j
}
public Matriz multiplicacion (Matriz B){
Matriz resultado;
if((this.numeroFilas==B.numeroFilas)& (this.numeroColumnas==B.numeroColumnas)){
resultado =new Matriz(this.numeroFilas,this.numeroColumnas);
for (int i=0; i< this.numeroFilas;i++)
for(int j=0;j
return resultado;
}
else{
System.out.println("Error en dimensiones de las matrices");
resultado = null;
return resultado;
}
}
sábado, 10 de octubre de 2009
uso de atributos para automoviles
public class UsoAutos {
public static void main(String args[]){
AtribucionAutos c1=new AtribucionAutos();
c1.marca="mercedes";
c1.color="rojo";
c1.tipo="monoplaza";
c1.año="1987";
System.out.println("MARCA: "+c1.marca+"\nCOLOR: "+c1.color+ "\nTIPO: "+c1.tipo+"\nAÑO: "+c1.año);
AtribucionAutos c2=new AtribucionAutos();
c2.marca="audi";
c2.color="plomo";
c2.tipo="utility";
c2.año="2000";
System.out.println("\nMARCA: "+c2.marca+"\nCOLOR: "+c2.color+ "\nTIPO: "+c2.tipo+"\nAÑO: "+c2.año);
}
}
public static void main(String args[]){
AtribucionAutos c1=new AtribucionAutos();
c1.marca="mercedes";
c1.color="rojo";
c1.tipo="monoplaza";
c1.año="1987";
System.out.println("MARCA: "+c1.marca+"\nCOLOR: "+c1.color+ "\nTIPO: "+c1.tipo+"\nAÑO: "+c1.año);
AtribucionAutos c2=new AtribucionAutos();
c2.marca="audi";
c2.color="plomo";
c2.tipo="utility";
c2.año="2000";
System.out.println("\nMARCA: "+c2.marca+"\nCOLOR: "+c2.color+ "\nTIPO: "+c2.tipo+"\nAÑO: "+c2.año);
}
}
atributos para los automoviles
public class AtribucionAutos {
String marca;
String tipo;
String color;
String año;
}
String marca;
String tipo;
String color;
String año;
}
uso de datos para el programa de estudiantes
public class UsoUniversidad {
public static void main(String args []){
Universidad u1=new Universidad();
u1.nombre="Diego";
u1.ampellido="Moreno";
u1.carrera="Mecatronica";
u1.nivel="3ero";
System.out.println("NOMBRE: "+u1.nombre+"\nAPELLIDO: "+u1.ampellido+ "\nCARRERA: "+u1.carrera+"\nNIVEL: "+u1.nivel);
Universidad u2=new Universidad();
u2.nombre="Valeria";
u2.ampellido="Velazco";
u2.carrera="Periodoncia";
u2.nivel="3ero";
System.out.println("NOMBRE: "+u2.nombre+"\nAPELLIDO: "+u2.ampellido+ "\nCARRERA: "+u2.carrera+"\nNIVEL: "+u2.nivel);
Universidad u3=new Universidad();
u3.nombre="Geovanny";
u3.ampellido="Dominguez";
u3.carrera="Ambiental";
u3.nivel="2do";
System.out.println("NOMBRE: "+u3.nombre+"\nAPELLIDO: "+u3.ampellido+ "\nCARRERA: "+u3.carrera+"\nNIVEL: "+u3.nivel);
Universidad u4=new Universidad();
u4.nombre="Alejandro";
u4.ampellido="Tobar";
u4.carrera="Mecatronica";
u4.nivel="1ero";
System.out.println("NOMBRE: "+u4.nombre+"\nAPELLIDO: "+u4.ampellido+ "\nCARRERA: "+u4.carrera+"\nNIVEL: "+u4.nivel);
}
}
public static void main(String args []){
Universidad u1=new Universidad();
u1.nombre="Diego";
u1.ampellido="Moreno";
u1.carrera="Mecatronica";
u1.nivel="3ero";
System.out.println("NOMBRE: "+u1.nombre+"\nAPELLIDO: "+u1.ampellido+ "\nCARRERA: "+u1.carrera+"\nNIVEL: "+u1.nivel);
Universidad u2=new Universidad();
u2.nombre="Valeria";
u2.ampellido="Velazco";
u2.carrera="Periodoncia";
u2.nivel="3ero";
System.out.println("NOMBRE: "+u2.nombre+"\nAPELLIDO: "+u2.ampellido+ "\nCARRERA: "+u2.carrera+"\nNIVEL: "+u2.nivel);
Universidad u3=new Universidad();
u3.nombre="Geovanny";
u3.ampellido="Dominguez";
u3.carrera="Ambiental";
u3.nivel="2do";
System.out.println("NOMBRE: "+u3.nombre+"\nAPELLIDO: "+u3.ampellido+ "\nCARRERA: "+u3.carrera+"\nNIVEL: "+u3.nivel);
Universidad u4=new Universidad();
u4.nombre="Alejandro";
u4.ampellido="Tobar";
u4.carrera="Mecatronica";
u4.nivel="1ero";
System.out.println("NOMBRE: "+u4.nombre+"\nAPELLIDO: "+u4.ampellido+ "\nCARRERA: "+u4.carrera+"\nNIVEL: "+u4.nivel);
}
}
atribucion datos para estudiantes
public class Universidad {
String nombre;
String ampellido;
String carrera;
String nivel;
}
String nombre;
String ampellido;
String carrera;
String nivel;
}
domingo, 4 de octubre de 2009
comunicación orientada a objetos
Lenguaje orientado a objetos
Introducimos para los más profanos las bases sobre las que se asienta la Programación Orientada a Objetos
Se le llama así a cualquier lenguaje de programación que implemente los conceptos definidos por la programación orientada a objetos.
Cabe notar que los conceptos definidos en la programación orientada a objetos no son una condición sino que son para definir que un lenguaje es orientado a objetos. Existen conceptos que pueden estar ausentes en un lenguaje dado y sin embargo, no invalidar su definición como lenguaje orientado a objetos.
Quizás las condiciones mínimas necesarias las provee el formalismo que modeliza mejor las propiedades de un sistema orientado a objetos: los tipos de datos abstractos.
Siguiendo esa idea, cualquier lenguaje que permita la definición de tipos de datos , de operaciones nuevas sobre esos tipos de datos, y de instanciar el tipo de datos podría ser considerado orientado a objetos.
Esta definición concuerda incluso con ciertos ejemplos prácticos, que no son considerados dentro de la programación orientada a objetos, pero que podrían serlo. Por ejemplo, la programación de interfaces gráficas de usuario para los sistemas X-Window utilizando infraestructuras de funciones y APIs como Motif, Xview y Xlib, son realizadas usualmente en lenguaje C, pero organizando el código en una manera que "parecen objetos" (los Widgets).
La programación Orientada a objetos (POO) es una forma especial de programar, más cercana a como expresaríamos las cosas en la vida real que otros tipos de programación.
Con la POO tenemos que aprender a pensar las cosas de una manera distinta, para escribir nuestros programas en términos de objetos, propiedades, métodos y otras cosas que veremos rápidamente para aclarar conceptos y dar una pequeña base que permita soltarnos un poco con este tipo de programación.
Motivación
Durante años, los programadores se han dedicado a construir aplicaciones muy parecidas que resolvían una y otra vez los mismos problemas. Para conseguir que los esfuerzos de los programadores puedan ser utilizados por otras personas se creó la POO. Que es una serie de normas de realizar las cosas de manera que otras personas puedan utilizarlas y adelantar su trabajo, de manera que consigamos que el código se pueda reutilizar.
La POO no es difícil, pero es una manera especial de pensar, a veces subjetiva de quien la programa, de manera que la forma de hacer las cosas puede ser diferente según el programador. Aunque podamos hacer los programas de formas distintas, no todas ellas son correctas, lo difícil no es programar orientado a objetos sino programar bien. Programar bien es importante porque así nos podemos aprovechar de todas las ventajas de la POO.
Cómo se piensa en objetos
Pensar en términos de objetos es muy parecido a cómo lo haríamos en la vida real. Por ejemplo vamos a pensar en un coche para tratar de modelizarlo en un esquema de POO. Diríamos que el coche es el elemento principal que tiene una serie de características, como podrían ser el color, el modelo o la marca. Además tiene una serie de funcionalidades asociadas, como pueden ser ponerse en marcha, parar o aparcar.
Pues en un esquema POO el coche sería el objeto, las propiedades serían las características como el color o el modelo y los métodos serían las funcionalidades asociadas como ponerse en marcha o parar.
Por poner otro ejemplo vamos a ver cómo modelizaríamos en un esquema POO una fracción, es decir, esa estructura matemática que tiene un numerador y un denominador que divide al numerador, por ejemplo 3/2.
La fracción será el objeto y tendrá dos propiedades, el numerador y el denominador. Luego podría tener varios métodos como simplificarse, sumarse con otra fracción o número, restarse con otra fracción, etc.
Estos objetos se podrán utilizar en los programas, por ejemplo en un programa de matemáticas harás uso de objetos fracción y en un programa que gestione un taller de coches utilizarás objetos coche. Los programas Orientados a objetos utilizan muchos objetos para realizar las acciones que se desean realizar y ellos mismos también son objetos. Es decir, el taller de coches será un objeto que utilizará objetos coche, herramienta, mecánico, recambios, etc.
Clases en POO
Las clases son declaraciones de objetos, también se podrían definir como abstracciones de objetos. Esto quiere decir que la definición de un objeto es la clase. Cuando programamos un objeto y definimos sus características y funcionalidades en realidad lo que estamos haciendo es programar una clase. En los ejemplos anteriores en realidad hablábamos de las clases coche o fracción porque sólo estuvimos definiendo, aunque por encima, sus formas.
Propiedades en clases
Las propiedades o atributos son las características de los objetos. Cuando definimos una propiedad normalmente especificamos su nombre y su tipo. Nos podemos hacer a la idea de que las propiedades son algo así como variables donde almacenamos datos relacionados con los objetos.
Métodos en las clases
Son las funcionalidades asociadas a los objetos. Cuando estamos programando las clases las llamamos métodos. Los métodos son como funciones que están asociadas a un objeto.
Objetos en POO
Los objetos son ejemplares de una clase cualquiera. Cuando creamos un ejemplar tenemos que especificar la clase a partir de la cual se creará. Esta acción de crear un objeto a partir de una clase se llama instanciar (que viene de una mala traducción de la palabra instace que en inglés significa ejemplar). Por ejemplo, un objeto de la clase fracción es por ejemplo 3/5. El concepto o definición de fracción sería la clase, pero cuando ya estamos hablando de una fracción en concreto 4/7, 8/1000 o cualquier otra, la llamamos objeto.
Para crear un objeto se tiene que escribir una instrucción especial que puede ser distinta dependiendo el lenguaje de programación que se emplee, pero será algo parecido a esto.
miCoche = new Coche()
Con la palabra new especificamos que se tiene que crear una instancia de la clase que sigue a continuación. Dentro de los paréntesis podríamos colocar parámetros con los que inicializar el objeto de la clase coche.
Estados en objetos
Cuando tenemos un objeto sus propiedades toman valores. Por ejemplo, cuando tenemos un coche la propiedad color tomará un valor en concreto, como por ejemplo rojo o gris metalizado. El valor concreto de una propiedad de un objeto se llama estado.
Para acceder a un estado de un objeto para ver su valor o cambiarlo se utiliza el operador punto.
miCoche.color = rojo
El objeto es miCoche, luego colocamos el operador punto y por último el nombre e la propiedad a la que deseamos acceder. En este ejemplo estamos cambiando el valor del estado de la propiedad del objeto a rojo con una simple asignación.
Mensajes en objetos
Un mensaje en un objeto es la acción de efectuar una llamada a un método. Por ejemplo, cuando le decimos a un objeto coche que se ponga en marcha estamos pasándole el mensaje “ponte en marcha”.
Para mandar mensajes a los objetos utilizamos el operador punto, seguido del método que deseamos invocar.
miCoche.ponerseEnMarcha()
En este ejemplo pasamos el mensaje ponerseEnMarcha(). Hay que colocar paréntesis igual que cualquier llamada a una función, dentro irían los parámetros.
Otras cosas
Hay mucho todavía que conocer de la POO ya que sólo hemos hecho referencia a las cosas más básicas. También existen mecanismos como la herencia y el polimorfismo que son unas de las posibilidades más potentes de la POO.
La herencia sirve para crear objetos que incorporen propiedades y métodos de otros objetos. Así podremos construir unos objetos a partir de otros sin tener que reescribirlo todo.
El polimorfismo sirve para que no tengamos que preocuparnos sobre lo que estamos trabajando, y abstraernos para definir un código que sea compatible con objetos de varios tipos.
Son conceptos avanzados que cuesta explicar en las líneas de ese informe. No hay que olvidar que existen libros enteros dedicados a la POO y aquí solo pretendemos dar un repaso a algunas cosas para que os suenen cuando tengáis que poneros delante de ellas en los lenguajes de programación que debe conocer un desarrollador del web.
Ejemplo concreto de programación orientada a objetos
Para conseguir un ejemplo concreto de lo que es la programación orientada a objetos, podemos entrar en el Manual de PHP 5. Realmente este manual explica las características de orientación a objetos de PHP 5 y ofrece ejemplos concretos de creación de clases con características como herencia, polimorfismo, etc.
Ejemplos de lenguajes orientados a objeto [editar]
C++
Objective C
Java
Smalltalk
Eiffel
Lexico (en castellano)
Ruby
Python
OCAML
Object Pascal
CLIPS
Visual .net
Java
Actionscript
COBOL
Perl
C#
Visual Basic.NET
PHP
Simula
Introducimos para los más profanos las bases sobre las que se asienta la Programación Orientada a Objetos
Se le llama así a cualquier lenguaje de programación que implemente los conceptos definidos por la programación orientada a objetos.
Cabe notar que los conceptos definidos en la programación orientada a objetos no son una condición sino que son para definir que un lenguaje es orientado a objetos. Existen conceptos que pueden estar ausentes en un lenguaje dado y sin embargo, no invalidar su definición como lenguaje orientado a objetos.
Quizás las condiciones mínimas necesarias las provee el formalismo que modeliza mejor las propiedades de un sistema orientado a objetos: los tipos de datos abstractos.
Siguiendo esa idea, cualquier lenguaje que permita la definición de tipos de datos , de operaciones nuevas sobre esos tipos de datos, y de instanciar el tipo de datos podría ser considerado orientado a objetos.
Esta definición concuerda incluso con ciertos ejemplos prácticos, que no son considerados dentro de la programación orientada a objetos, pero que podrían serlo. Por ejemplo, la programación de interfaces gráficas de usuario para los sistemas X-Window utilizando infraestructuras de funciones y APIs como Motif, Xview y Xlib, son realizadas usualmente en lenguaje C, pero organizando el código en una manera que "parecen objetos" (los Widgets).
La programación Orientada a objetos (POO) es una forma especial de programar, más cercana a como expresaríamos las cosas en la vida real que otros tipos de programación.
Con la POO tenemos que aprender a pensar las cosas de una manera distinta, para escribir nuestros programas en términos de objetos, propiedades, métodos y otras cosas que veremos rápidamente para aclarar conceptos y dar una pequeña base que permita soltarnos un poco con este tipo de programación.
Motivación
Durante años, los programadores se han dedicado a construir aplicaciones muy parecidas que resolvían una y otra vez los mismos problemas. Para conseguir que los esfuerzos de los programadores puedan ser utilizados por otras personas se creó la POO. Que es una serie de normas de realizar las cosas de manera que otras personas puedan utilizarlas y adelantar su trabajo, de manera que consigamos que el código se pueda reutilizar.
La POO no es difícil, pero es una manera especial de pensar, a veces subjetiva de quien la programa, de manera que la forma de hacer las cosas puede ser diferente según el programador. Aunque podamos hacer los programas de formas distintas, no todas ellas son correctas, lo difícil no es programar orientado a objetos sino programar bien. Programar bien es importante porque así nos podemos aprovechar de todas las ventajas de la POO.
Cómo se piensa en objetos
Pensar en términos de objetos es muy parecido a cómo lo haríamos en la vida real. Por ejemplo vamos a pensar en un coche para tratar de modelizarlo en un esquema de POO. Diríamos que el coche es el elemento principal que tiene una serie de características, como podrían ser el color, el modelo o la marca. Además tiene una serie de funcionalidades asociadas, como pueden ser ponerse en marcha, parar o aparcar.
Pues en un esquema POO el coche sería el objeto, las propiedades serían las características como el color o el modelo y los métodos serían las funcionalidades asociadas como ponerse en marcha o parar.
Por poner otro ejemplo vamos a ver cómo modelizaríamos en un esquema POO una fracción, es decir, esa estructura matemática que tiene un numerador y un denominador que divide al numerador, por ejemplo 3/2.
La fracción será el objeto y tendrá dos propiedades, el numerador y el denominador. Luego podría tener varios métodos como simplificarse, sumarse con otra fracción o número, restarse con otra fracción, etc.
Estos objetos se podrán utilizar en los programas, por ejemplo en un programa de matemáticas harás uso de objetos fracción y en un programa que gestione un taller de coches utilizarás objetos coche. Los programas Orientados a objetos utilizan muchos objetos para realizar las acciones que se desean realizar y ellos mismos también son objetos. Es decir, el taller de coches será un objeto que utilizará objetos coche, herramienta, mecánico, recambios, etc.
Clases en POO
Las clases son declaraciones de objetos, también se podrían definir como abstracciones de objetos. Esto quiere decir que la definición de un objeto es la clase. Cuando programamos un objeto y definimos sus características y funcionalidades en realidad lo que estamos haciendo es programar una clase. En los ejemplos anteriores en realidad hablábamos de las clases coche o fracción porque sólo estuvimos definiendo, aunque por encima, sus formas.
Propiedades en clases
Las propiedades o atributos son las características de los objetos. Cuando definimos una propiedad normalmente especificamos su nombre y su tipo. Nos podemos hacer a la idea de que las propiedades son algo así como variables donde almacenamos datos relacionados con los objetos.
Métodos en las clases
Son las funcionalidades asociadas a los objetos. Cuando estamos programando las clases las llamamos métodos. Los métodos son como funciones que están asociadas a un objeto.
Objetos en POO
Los objetos son ejemplares de una clase cualquiera. Cuando creamos un ejemplar tenemos que especificar la clase a partir de la cual se creará. Esta acción de crear un objeto a partir de una clase se llama instanciar (que viene de una mala traducción de la palabra instace que en inglés significa ejemplar). Por ejemplo, un objeto de la clase fracción es por ejemplo 3/5. El concepto o definición de fracción sería la clase, pero cuando ya estamos hablando de una fracción en concreto 4/7, 8/1000 o cualquier otra, la llamamos objeto.
Para crear un objeto se tiene que escribir una instrucción especial que puede ser distinta dependiendo el lenguaje de programación que se emplee, pero será algo parecido a esto.
miCoche = new Coche()
Con la palabra new especificamos que se tiene que crear una instancia de la clase que sigue a continuación. Dentro de los paréntesis podríamos colocar parámetros con los que inicializar el objeto de la clase coche.
Estados en objetos
Cuando tenemos un objeto sus propiedades toman valores. Por ejemplo, cuando tenemos un coche la propiedad color tomará un valor en concreto, como por ejemplo rojo o gris metalizado. El valor concreto de una propiedad de un objeto se llama estado.
Para acceder a un estado de un objeto para ver su valor o cambiarlo se utiliza el operador punto.
miCoche.color = rojo
El objeto es miCoche, luego colocamos el operador punto y por último el nombre e la propiedad a la que deseamos acceder. En este ejemplo estamos cambiando el valor del estado de la propiedad del objeto a rojo con una simple asignación.
Mensajes en objetos
Un mensaje en un objeto es la acción de efectuar una llamada a un método. Por ejemplo, cuando le decimos a un objeto coche que se ponga en marcha estamos pasándole el mensaje “ponte en marcha”.
Para mandar mensajes a los objetos utilizamos el operador punto, seguido del método que deseamos invocar.
miCoche.ponerseEnMarcha()
En este ejemplo pasamos el mensaje ponerseEnMarcha(). Hay que colocar paréntesis igual que cualquier llamada a una función, dentro irían los parámetros.
Otras cosas
Hay mucho todavía que conocer de la POO ya que sólo hemos hecho referencia a las cosas más básicas. También existen mecanismos como la herencia y el polimorfismo que son unas de las posibilidades más potentes de la POO.
La herencia sirve para crear objetos que incorporen propiedades y métodos de otros objetos. Así podremos construir unos objetos a partir de otros sin tener que reescribirlo todo.
El polimorfismo sirve para que no tengamos que preocuparnos sobre lo que estamos trabajando, y abstraernos para definir un código que sea compatible con objetos de varios tipos.
Son conceptos avanzados que cuesta explicar en las líneas de ese informe. No hay que olvidar que existen libros enteros dedicados a la POO y aquí solo pretendemos dar un repaso a algunas cosas para que os suenen cuando tengáis que poneros delante de ellas en los lenguajes de programación que debe conocer un desarrollador del web.
Ejemplo concreto de programación orientada a objetos
Para conseguir un ejemplo concreto de lo que es la programación orientada a objetos, podemos entrar en el Manual de PHP 5. Realmente este manual explica las características de orientación a objetos de PHP 5 y ofrece ejemplos concretos de creación de clases con características como herencia, polimorfismo, etc.
Ejemplos de lenguajes orientados a objeto [editar]
C++
Objective C
Java
Smalltalk
Eiffel
Lexico (en castellano)
Ruby
Python
OCAML
Object Pascal
CLIPS
Visual .net
Java
Actionscript
COBOL
Perl
C#
Visual Basic.NET
PHP
Simula
Suscribirse a:
Comentarios (Atom)