Registrarse

Fundamentos de Programación Orientada a Objetos

Berserker1523

2-Intentando discernir qué es lo más importante...

Fundamentos de la programación orientada a objetos



Buenas a todos gente, este es mi primer tutorial y como todo lo que sé de ROM Hacking y creación de fan games de pokémon en general lo sé por los ya creados en este foro, ya que estudio ingeniería de sistemas y computación, me gustaría entonces compartirles lo que he aprendido y voy aprendiendo sobre la programación orientada a objetos (Sí, les regalaré un curso que podría valer más de 1000 dólares). En la materia llamada APO (Algorítmica y programación orientada a objetos) trabajamos con un libro de autores Jorge A. Villalobos y Rubby Casallas G. que podrán descargar gratis (fue “liberado” por los autores) aquí: https://cupi2.virtual.uniandes.edu.co/images/APO1/fundamentos-de-programacion.pdf Ustedes perfectamente pueden leerlo por su cuenta, allí mismo dice:
”Fundamentos de Programación dijo:
El Público Destinatario

El libro está dirigido a estudiantes que toman por primera vez un curso de programación de computadores, sin importar el programa de estudios que estén siguiendo. Esto quiere decir que para utilizar el libro no se necesita ninguna formación específica previa, y que las competencias generadas con este texto se pueden enmarcar fácilmente dentro de cualquier perfil profesional.
Y lo que he venido a hacer es un resumen de este, explicar algunas cosas desde mi experiencia y agregar otras, vamos allá!

En mi universidad todas las ingenierías y los matemáticos deben ver obligatoriamente el primer curso de programación ¿por qué es así? se preguntarán, pues he aquí la explicación: Programar es mucho más que "echar" o escribir código, como se dirá a lo largo del curso, el objetivo de esta acción es resolver problemas. Por ejemplo, una técina muy usada a la hora de programar es disminuir el grado de complejidad del problema en problemas más pequeños. Entonces, es una muy buena actividad para adquirir lógica.

Para más información: How To Become A Hacker [Inglés].

Cómo convertirse en hacker [Español].

Objetivos de Aprendizaje:
”Libro” dijo:
Al final de este nivel el lector será capaz de:
• Explicar el proceso global de solución de un problema usando un programa de computador. Esto incluye las etapas que debe seguir para resolverlo y los distintos elementos que debe ir produciendo a medida que construye la solución.
• Analizar un problema simple que se va a resolver usando un programa de computador, construyendo un modelo con los elementos que intervienen en el problema y especificando los servicios que el programa debe ofrecer.
• Explicar la estructura de un programa de computador y el papel que desempeña cada uno de los elementos que lo componen.
Esto no lo explicaré, pero sería muy bueno que leyeran los capítulos implicados (capítulo 3) ya que podrán aprender todo lo que allí se menciona (obviamente xD).

”Libro” dijo:
• Completar una solución parcial a un problema (un programa incompleto escrito en el lenguaje Java), usando expresiones simples, asignaciones e invocaciones a métodos. Esto implica entender los conceptos de parámetro y de creación de objetos.
• Utilizar un ambiente de desarrollo de programas y un espacio de trabajo predefinido, para completar una solución parcial a un problema.
Si no lo sabían, ahora lo saben, vamos a trabajar con el lenguaje de programación orientado a objetos Java, eso implica que vamos a seguir la sintaxis que requiere para escribir nuestros programas, pero igualmente cualquier concepto aquí explicado se puede aplicar en otro lenguaje de este tipo, con su respectiva sintaxis, a menos que se especifique lo contrario.



4. Casos de Estudio

En la sección 4 podrán encontrar casos de estudio, son problemas que se podrán resolver con lo que se estudiará en el nivel y sirven para introducir los conceptos a enseñar.



5. Comprensión y Especificación del
Problema


Es imposible resolver un problema que no se entiende, ¿no creen? “Si no entendemos bien el problema que queremos resolver, el riesgo de perder nuestro tiempo es muy alto”. Para crear un programa (ya que estos sirven para resolver problemas) se realiza una etapa de análisis, en esta, entre otras cosas, se descompone el problema a solucionar en elementos más sencillos, y se identifican: requerimientos funcionales, mundo del problema y requerimientos no funcionales.


5.1. Requerimientos funcionales:

Son operaciones o funcionalidades que el programa debe proveer al usuario de acuerdo al problema que se quiere resolver. Para describir un requerimiento funcional se escribe:
• Un identificador y un nombre.
• Un resumen de la operación que realiza.
• Las entradas (datos) que debe suministrar el usuario para realizar a operación.
• El resultado de la operación. Hay 3 tipos de resultados en un requerimiento funcional: 1. Modificación de un valor del “mundo del problema” (a explicar después) 2. El cálculo de un valor o 3. Una combinación de estos dos anteriores.

Ejemplo:
Se pide un programa que permita modificar un byte de una ROM de GBA por el valor que el usuario desee. Documentemos este requerimiento funcional:

Nombre: R1: cambiarByte. Se le da un identificador y se le asocia un nombre, se aconseja que este sea un verbo en infinitivo para denotar la acción asociada con la operación.

Resumen: Permite modificar el valor de un Byte de la ROM. El resumen es una frase que explica sin detalles el requerimiento funcional.

Entradas: Offset del byte a cambiar: Offset, valor Byte por el que se desea reemplazar: valor. Las entradas corresponden a los datos que debe suministrar el usuario al programa para poder resolver el requerimiento. Un requerimiento puede tener 0 o más entradas (Si no necesita ningún dato que el usuario “sepa”, entonces tendrá 0 entradas).
Resultado: El valor que apuntaba el offset fue reemplazado por el ingresado por el usuario.

Un requerimiento funcional se puede ver como un servicio que el programa le ofrece al usuario para resolver una parte del problema.


5.2. El Mundo del Problema:

El mundo del problema es lo que se quiere “modelar” en nuestro programa, por ejemplo, un programa que calcule los días de vacaciones a los que tiene derecho un empleado de una empresa, si no se recoge la información de la empresa que hace referencia a calcular este número de días, el programador no tendrá la información que necesita para resolver el problema.

Vamos a identificar los elementos que hacen parte de este mundo con sus principales características y relaciones.

5.2.1. Las entidades: Una entidad es un sustantivo, un elemento que interviene en el problema. Dichos elementos pueden ser concretos (una persona) o abstractos (una cuenta bancaria). En programación orientada a objetos las entidades se llaman clases.

”Libro" dijo:
Una convención es una regla que no es obligatoria en el lenguaje de programación, pero que suelen respetar los programadores que utilizan el lenguaje. Por ejemplo, por convención, los nombres de las clases comienzan por mayúsculas.

Seguir las convenciones hace que sea más fácil entender los programas escritos por otras personas. También ayuda a construir programas más "elegantes".
5.2.2. Las características: Pertenecen a las entidades, a cada una se le asigna un nombre y los posibles valores que puede tomar. Por ejemplo, si tenemos una entidad “Empleado” sabemos que su salario no puede ser menor que el mínimo salario establecido por el país, y por ende no puede ser 0 ni negativo. En programación orientada a objetos, las características se denominan atributos.

”Libro” dijo:
Por convención, el nombre de los atributos comienza por una letra minúscula. Si es un nombre compuesto, se debe iniciar cada palabra simple con mayúscula.
”Libro" dijo:
Es importante que antes de agregar un atributo a una clase, verifiquemos que dicha característica forma parte del problema que se quiere resolver. Podríamos pensar, por ejemplo, que la ciudad en la que nació el empleado es uno de sus atributos. ¿Cómo saber si lo debemos o no agregar? La respuesta es que hay que mirar los requerimientos funcionales y ver si dicha característica es utilizada o referenciada desde alguno de ellos.
5.2.3. Las relaciones entre entidades: Una relación es una “flecha” que une dos entidades, por ejemplo, podemos tener una clase “Empleado” y otra “Fecha”, una fecha tiene de atributos (características) un día, un mes y un año. El empleado tiene una fecha de ingreso a la empresa y una fecha de cumpleaños, estas son las relaciones entre estas dos entidades, “Un empleado tiene una fecha de ingreso”, “Un empleado tiene una fecha de nacimiento”. En POO (programación orientada a objetos) las relaciones se denominan asociaciones.

Siguiendo con nuestro ejemplo, la ROM sería una clase, esta tiene offsets, quiere decir que ROM tiene una asociación a la clase “Offset”, un offset tiene un identificador (número) y un valor (byte), estos son atributos de la clase.

”Libro” dijo:
Una asociación se puede ver como una característica de una entidad cuyo valor está representado por otra clase.

5.3. Requerimientos No Funcionales:

Son las restricciones que se deben tener en cuenta a la hora de resolver el problema. Imagínense un arquitecto que debe planear la construcción de un edificio (o lo que hacen los arquitectos) para una empresa, pero a este no le ponen ninguna restricción, no hay límite de terreno, límite de presupuesto, etc. El arquitecto, al no tener límites, nunca podrá dar una solución efectiva, siempre se le ocurrirán más y más ideas que podrá implementar.



6. Elementos de un programa:



6.1. Algoritmos e instrucciones:

Un algoritmo se puede ver como la solución de un problema muy pequeño, en el cual se define una secuencia de instrucciones que se deben seguir para resolverlo. Imagine entonces un programa como un conjunto de algoritmos, cada uno responsable de una parte de la solución del problema global.

”Libro” dijo:
Un algoritmo, en general, es una secuencia ordenada de pasos para realizar una actividad. Suponga, por ejemplo, que le vamos a explicar a alguien lo que debe hacer para viajar en el metro parisino. El siguiente es un algoritmo de lo que esta persona debe hacer para llegar a una dirección dada:
1. Compre un tiquete de viaje en los puntos de venta que se encuentran a la entrada de cada una de las estaciones del metro.
2. Identifique en el mapa del metro la estación donde está y el punto adonde necesita ir.
3. Localice el nombre de la estación de metro más cercana al lugar de destino.
4. Verifique si, a partir de donde está, hay alguna línea que pase por la estación destino.
5. Si encontró la línea, busque el nombre de la misma en la dirección de destino.
6. Suba al metro en el andén de la línea identificada en el paso anterior y bájese en la estación de destino.
”Libro dijo:
Cuando es el computador el que sigue un algoritmo (en el caso del computador se habla de ejecutar), es evidente que las instrucciones que le demos no pueden ser como las definidas en el algoritmo del metro de París. Dado que el computador no tiene nada parecido al "sentido común", las instrucciones que le definamos deben estar escritas en un lenguaje que no dé espacio a ninguna ambigüedad (imaginemos al computador de una nave espacial diciendo "es que yo creí que eso era lo que ustedes querían que yo hiciera"). Por esta razón los algoritmos que constituyen la solución de un problema se deben traducir a un lenguaje increíblemente restringido y limitado (pero a su vez poderoso si vemos todo lo que con él podemos hacer), denominado un lenguaje de programación. Todo lenguaje de programación tiene su propio conjunto de reglas para decir las cosas, denominado la sintaxis del lenguaje.
”Libro dijo:
Un programa de computador está compuesto por un conjunto de algoritmos, escritos en un lenguaje de programación. Dichos algoritmos están estructurados de tal forma que, en conjunto, son capaces de resolver el problema

6.2. Clases y Objetos:

Los algoritmos están dentro de las clases y estas establecen la manera en que los algoritmos colaboran para resolver el problema global. Un objeto es una instancia de una clase, por ejemplo, la clase Empleado tiene varios atributos, uno de estos es el salario, el objeto “pepito”, que es un empleado, gana 600 dólares, ingresó el 12/11/2017, nació el 27/02/1994, el objeto “pedrito” gana 1000 dólares, ingresó el 10/01/2017, etc. El conjunto de valores de los atributos se denomina el estado del objeto. Para diferenciar las clases de los objetos, se puede decir que una clase define un tipo de elemento del mundo, mientras que un objeto representa un elemento individual.


6.3. Java como Lenguaje de Programación

Declaración de una clase en Java:

Se escribe:
Código:
public class Empleado {
//Aquí se declara la clase
}
“public” significa que se va a poder llamar desde otras clases del programa (esto lo veremos después). “class” se coloca para identificar que “Empleado” es una clase. Lo que va dentro de los corchetes { } de denomina bloque de instrucciones, allí se deben hacer explícitos tanto los atributos como los algoritmos de la clase.

“//” se usa para agregar comentarios que serán ignorados por el computador, pero que le sirven al programador para indicar algo que considera importante dentro del código.

”Libro” dijo:
Un elemento de una clase se declara public cuando queremos que sea visible desde otras clases.
Existe otra forma de escribir comentarios, con “//” solo se ignorará lo que esté en el mismo renglón, con “/**” para comenzar el comentario“*” para empezar cada renglón y “*/” para finalizar el comentario, se ignorará todos los renglones que estén contenidos por estos, ejemplo:
Código:
/**
* Todo lo
*que escriba aquí
*será ignorado por el computador
*/

6.4. Tipos de Datos

Cada lenguaje de programación cuenta con un conjunto de tipos de datos a través de los cuales el programador puede representar los atributos de una clase.

Existen tipos simples como los números enteros (int), los reales (double) y tipos "compuestos" como las cadenas de caracteres (String) (En niveles posteriores se verá como String en realidad es una clase).

En Java, en el momento de declarar un atributo, es necesario declarar el tipo de dato al cual corresponde, ejemplo:
Código:
public class Empleado {
private double salario;
private String nombre;
private String apellido;
}
“private” denota que el atributo solo podrá ser utilizado dentro de la clase. Seguido de esto se declara el tipo del atributo, y por último su identificador, “;” se coloca para denotar que hemos terminado la declaración. Con las tres declaraciones que aparecen en el ejemplo, el computador entiende que cualquier objeto de la clase Empleado debe tener valores para esas tres características.

Ahora si quisiéramos agregar un atributo “genero” ¿cómo lo haríamos? Una persona puede ser hombre o mujer (en nuestro ejemplo), podemos crear un atributo de tipo entero con la convención de que si su valor es 0 entonces su género es masculino y si es 1, entonces es femenino:
Código:
public class Empleado { 
... 
/** 
* 0 = masculino, 1 = femenino 
*/ 
private int genero; 
... 
}
”libro dijo:
Al declarar un atributo para el cual se utilizó una convención especial para representar los valores posibles, es importante agregar un comentario en la declaración del mismo, explicando la interpretación que se debe dar a cada valor.
”libro dijo:
El tipo de un atributo determina el conjunto de valores que éste puede tomar dentro de los objetos de la clase, lo mismo que las operaciones que se van a poder hacer sobre dicha característica.

6.5. Métodos

Un método es un algoritmo de una clase.

”libro dijo:
Un método está compuesto por cuatro elementos:

  • Un nombre (por ejemplo, cambiarSalario, para el caso de estudio del empleado, que serviría para modificar el salario del empleado).
  • Una lista de parámetros, que corresponde al conjunto de valores (cada uno con su tipo) necesarios para poder resolver el problema puntual (Si el problema es cambiar el salario del empleado, por ejemplo, es necesario que alguien externo al empleado dé el nuevo salario. Sin esa información es imposible escribir el método). Para definir los parámetros que debe tener un método, debemos preguntarnos ¿qué información, que no tenga ya el objeto, es indispensable para poder resolver el problema puntual?
  • Un tipo de respuesta, que indica el tipo de datos al que pertenece el resultado que va a retornar el método. Si no hay una respuesta, se indica el tipo void.
  • El cuerpo del método, que corresponde a la lista de instrucciones que representa el algoritmo que resuelve el problema puntual.
”Libro” dijo:
El encabezado del método (un método sin el cuerpo) se denomina su signatura.
Ejemplo:
Código:
public void cambiarSalario( double pNuevoSalario) 
{ // Aquí va el cuerpo del método }
Nombre: cambiarSalario
Parámetros: pNuevoSalario de tipo real. Si no se entrega este valor como parámetro es imposible cambiar el salario del empleado. Note que al definir un parámetro se debe dar un nombre al valor que se espera y un tipo.
Retorno: ninguno ( void ) puesto que el objetivo del método no es calcular ningún valor, sino modificar el valor de un atributo del empleado.
Descripción: cambia el salario del empleado, asignándole el valor que se entrega como parámetro.

Código:
public double darSalario( ) 
{ 
// Aquí va el cuerpo del método 
}
Nombre: darSalario
Parámetros: ninguno, puesto que con la información que ya tienen los objetos de la clase Empleado es posible resolver el problema.
Retorno: el salario actual del empleado, de tipo real. En la signatura sólo se dice el tipo de datos que se va a retornar, pero no se dice cómo se retornará.
Descripción: retorna el salario actual del empleado.


6.6. La Instrucción de Retorno

”Libro dijo:
En el cuerpo de un método van las instrucciones que resuelven un problema puntual o prestan un servicio a otras clases. El computador obedece las instrucciones, una después de otra, hasta llegar al final del cuerpo del método. Hay instrucciones de diversos tipos, la más sencilla de las cuales es la instrucción de retorno ( return )
Aplicación:

Código:
public class Empleado {

 //-------------------------------- 
// Atributos 
//--------------------------------

private double salario;
//------------------------------- 
// Métodos 
//------------------------------- 

public double darSalario( ) {

 return salario; 

} //final del método darSalario

}//final de la clase Empleado
”Libro” dijo:
• En el cuerpo de un método únicamente se puede hacer referencia a los atributos del objeto para el cual se está resolviendo el problema y a los parámetros, que representan la información externa al objeto que se necesita para resolver el problema puntual.

• En el caso del método cuyo problema puntual consiste en calcular el salario del empleado, la solución consiste en retornar el valor que se encuentra en el respectivo atributo. Fácil, ¿no? Es buena idea utilizar comentarios para separar la "zona" de declaración de atributos y la "zona" de declaración de métodos. Esta separación en zonas va a facilitar su posterior localización.

• Todo método que declare en su signatura que va a devolver un resultado (todos los métodos que no son de tipo void ) debe tener en su cuerpo una instrucción de retorno.

6.7. La Instrucción de Asignación

Los métodos que no calculan ningún valor sino que modifican el estado del objeto (alguno de sus atributos por ejemplo), utilizan la instrucción de asignación (=) para definir el nuevo valor que debe tener el atributo.

Ejemplo:
Código:
public class Empleado 
{ 
... 
private double salario;

public void duplicarSalario( )
 { 
salario = salario * 2; 
} 

}
En la parte izquierda de la asignación va el nombre del atributo que va a ser modificado, en la parte derecha va una expresión que indica el nuevo valor a ser guardado en el atributo. En este caso al atributo “salario” se le asigna el mismo valor que posee, al momento de usar el método, multiplicado por 2.

”Libro” dijo:
Pueden formar parte de una expresión los atributos (incluso el que va a ser modificado), los parámetros y los valores constantes (como el 2 en el ejemplo anterior). Los elementos que forman parte de una expresión se denominan operandos. Adicionalmente en la expresión están los operadores, que indican cómo calcular el valor de la expresión. Los operadores aritméticos son la suma ( + ), la resta ( - ), la multiplicación ( * ) y la división ( / ).
Otros ejemplos:
Código:
public class Empleado { 
... 
public void cambiarSalario( double pNuevoSalario ) 
{ 
salario = pNuevoSalario; 
} 

public double calcularSalarioAnual( ) 
{ 
return salario * 12; 
} 

}//final de la clase

6.8. La Instrucción de Llamada de un Método

En algunos casos, para la solución del problema, es necesario llamar otro método, puede ser de la misma clase o uno de una clase de la cual se tenga asociación. Para declarar una asociación:

Código:
public class Empleado{

private Fecha fechaIngreso;

}
Se declara un atributo de la clase Fecha, la cual tiene una asociación con la clase Empleado, de nombre “fechaIngreso”. Suponga que la clase Fecha tiene esta declaración:

Código:
public class Fecha{

private int dia;
private int mes;
private int anio;

public int darAnio(){
return anio;
}

}
Si desde la clase Empleado quisiéramos saber el año de la fecha de ingreso, podemos escribir:

Código:
…
public int darAnioIngreso(){

return fechaIngreso.darAnio();

}
…
Para pedir un servicio a través de un método, debemos dar el nombre de la asociación (fechaIngreso), el nombre del método que queremos usar (darAnio()) y un valor para cada uno de los parámetros que hay en su signatura (ninguno en este caso).

Como se dijo anteriormente, también se puede llamar un método de la misma clase:
Código:
public class Empleado{

//Atributos

private double salario;

//Métodos

public double duplicarSalario(){
double respuesta = salario*2;
return respuesta;
}

public double cuadruplicarSalario(){

double respuesta; 
respuesta = duplicarSalario()*2;
return respuesta;
}

}//end_class
Para invocar un método sobre el mismo objeto, basta con utilizar su nombre sin necesidad de explicar sobre cuál objeto queremos hacer la llamada. Por defecto se hace sobre él mismo.

Noten que usamos una variable (respuesta). Una variable se utiliza para almacenar valores intermedios dentro del cuerpo de un método, se declara escribiendo su tipo y nombre, puede solo declararse (como en el segundo método) o declararse y asignarse de una vez (como en el primer método), para volverla a utilizar basta con escribir el nombre que le dimos sin el tipo. Las variables solo pueden ser utilizadas dentro del método en el cual fueron declaradas.


6.9. Llamada de Métodos con Parámetros

”Libro dijo:
vamos a contestar siete preguntas:

¿Cuándo necesita parámetros un método? Un método necesita parámetros cuando la información que tiene el objeto en sus atributos no es suficiente para resolver el problema que le plantean.

¿Cómo se declara un parámetro? En la signatura del método se define el tipo de dato del parámetro y se le asocia un nombre. Es conveniente que este nombre dé una idea clara del valor que se va a recibir por ese medio.

¿Cómo se utiliza el valor del parámetro? Basta con utilizar el nombre del parámetro en el cuerpo del método, de la misma manera en que se utilizan los atributos.

¿Se puede utilizar el parámetro por fuera del cuerpo del método? No. En ningún caso.

Aquel que hace la llamada del método, ¿cómo hace para definir los valores de los parámetros? En el momento de hacer la llamada, se deben pasar tantos valores como Elementos de un Programa 95 parámetros está esperando el método. Esos valores pueden ser constantes (por ejemplo, 500), atributos del objeto que hace la llamada (por ejemplo, salario ), parámetros del método desde el cual se hace la llamada (por ejemplo, pNuevoSalario ), o expresiones que mezclen los tres anteriores (por ejemplo, salario + pNuevoSalario * 500 ).

¿Cómo se hace la relación entre esos valores y los parámetros? Los valores se deben pasar teniendo en cuenta el orden en el que se declararon los parámetros.

¿Qué sucede si se pasan más (o menos) valores que parámetros? El compilador informa que hay un error en la llamada. Lo mismo sucede si los tipos de datos de los valores no coinciden con los tipos de datos de los parámetros.
Ejemplo:
Código:
public class C2 
{

private int atributo1;
private C1 objeto;

public void metodo2 (int x){
objeto.metodo1(x, 34 + atributo1, “ejemplo”);
}

}//final de la clase C2

public class C1{

public void metodo1(int a, int b, String c){
}

}//final de la clase C1
Como podrán notar, el metodo2 de la case C2 utiliza la llamada del metodo1 a través de su objeto1, pero el metodo1 declara que deben pasarse parámetros en su llamada: un entero, un entero, y una cadena de caracteres. Entonces, al llamarse metodo1 por medio de la asociación objeto1 se le pasan los 3 valores del tipo correspondiente: x que es el parámetro del metodo2 que es de tipo entero, 34 + atributo1 que como este último es un entero, se pueden sumar y como resultado da un entero y “ejemplo” que es una cadena de caracteres (String), noten que estas últimas deben escribirse dentro de “” para ser reconocidas como String.

  • Nivel 2: Definición de Situaciones y Manejo de Casos.
  • Nivel 3: Manejo de Grupos de Atributos.
  • Nivel 4: Definición y Cumplimiento de Responsabilidades.
  • Nivel 5: Construcción de la Interfaz Gráfica.
  • Nivel 6: Manejo de Estructuras de dos Dimensiones y Persistencia.


Eso es todo por ahora gente, espero haya sido conciso con todo lo explicado (literalmente llevo 6 horas haciendo esto y cuando terminé me acordé de ya tenía resumenes en mi cuaderno viejo xD). Si quieren, puedo abrir una escuela donde les podré pasar actividades para que pongan en práctica lo aprendido (o puede ser aquí mismo).
 

Kaiser de Emperana

Called in hand
Me parece que al tuto le vendrían bien unos retoques.
Está bien, se nota que te esforzaste y la mayoría de las cosas están bien explicadas. (Aunque ha algunas cosas que yo no hubiera considerado tan importantes, como la parte de requerimientos. Y por otro lado me parece que vendrá bien una mejor definición de clase y objeto.)

El problema que veo es que no se para que público está dirigido. Los temás que explicás son simples, así que obviamente para usuarios avanzados no es... Para las personas que quieran pasar de estructurado a objetos tampoco lo veo, porque como dije antes los conceptos de clase y objeto, no están muy completos que digamos.

Por el hecho de que te hayas puesto a explicar lo que es un algoritmo, supongo que tu objetivo era hacerlo para principiantes. Peeeerooo... A ver, te voy a decir lo que le pasaría por la cabeza a un principiante al leer este tuto:
- Ajá. Java... ¿Qué es eso?
- ¿Declarar? ¿What?
- Bueno... Tengo archivo de texto con palabras escritas. ¿Y ahora qué?

O sea, que ni dijiste que esto hay que compilarlo xD

Se agradece el tuto, pero así como está, no se me ocurre alguna persona que le pueda servir. Los principiantes no lo van a entender y los quesi lo puedan entender no van a aprender prácticamente nada.

Con un hola mundo, recomendando un IDE y enseñando a compilar el programa, el tuto ya sería útil. Pero, ponete a pensar, mostraste la creación de una clase Empleado, la definición de sus métodos, pero nunca los llamaste, lo que la gente se pregunta es "¿por qué es que estoy haciendo esto?"

Espero que se solucionene estas coas, porque sería un tuto muy útil así :)
 

kakarotto

Leyenda de WaH
Es un tutorial interesante pero como dice Kaiser este tutorial se "aleja un poco" de la temática original, sin menospreciar tu labor aunque si pudieras enfocarlo en un futuro para hacer alguna tool sencilla de insertar alguna rutina sería genial, no tendría mucho misterio en java, solo investigar como podría leer el rom desde el propio programa y supongo que habrá alguna libreria interesante y con buena documentación para implementarla.

Saludos
 
Arriba