El post que buscas se encuentra eliminado, pero este también te puede interesar

Programación Orientada a Objetos (Lo fundamental)

Anuncios

Programación Orientada a Objetos (Lo fundamental)

Programacion
                  
                  La programación orientada a objetos OOP o mas conocido por sus siglas en ingles POO, es un paradigma de programación que usa los objetos y sus interacciones, para diseñar aplicaciones y programas informáticos. Esta basado en varias técnicas, incluyendo herencia, coacciono, abstracción , polimorfismo, acoplamiento y encapsulamiento. su uso se popularizo a principios de la década de los años 1990. en la actualidad, existe una gran variedad de lenguajes de programación que soporta la orientación. los objetos son entidades que tienen un determinado estado, comportamiento (método) e identidad: El estado esta compuesto de datos o informaciones: sera 1 o varios atributos a los que se habrá asignado unos valores concretos (datos).
Conceptos de programación orientada a objetos
El lenguaje Java está (en su mayor parte) orientado a objetos. Si no ha utilizado un lenguaje orientado a objetos antes, sus conceptos pueden parecer extraños al principio. Esta sección es una breve introducción a los conceptos del lenguaje OOP, que utiliza programación estructurada como punto de contraste.
¿Qué es un objeto?
Los lenguajes de programación estructurada como C y COBOL siguen un paradigma de programación muy diferente de los orientados a objetos. El paradigma de programación estructurada está altamente orientado a datos, lo cual significa que usted tiene estructuras de datos por una parte y luego instrucciones del programa que actúan sobre esos datos. Los lenguajes orientados a objetos, como el lenguaje Java, combinan datos e instrucciones del programa en objetos.
Un objeto es una entidad independiente que contiene atributos y comportamientos y nada más. En lugar de tener una estructura de datos con campos (atributos) y pasar esa estructura a toda la lógica del programa que actúa sobre ella (comportamiento), en un lenguaje orientado a objetos, se combinan los datos y la lógica del programa. Esta combinación puede ocurrir en niveles completamente diferentes de granularidad, desde objetos específicos como un  Number  hasta objetos de aplicación general como un servicio de  FundsTransfer  en una gran aplicación bancaria.




*Programa base de la programación orientada a objetos (su definición y como se usa):

~Java

programacion en c

Java es un lenguaje de programación de propósito general, concurrente, orientado a objetos,. apareció en 1995 diseñado por sun mycrosistem (oracle corporation) desarrolladores james gosling y sun mycrosistem.
Su Lenguaje:
Como cualquier lenguaje de programación, el lenguaje Java tiene su propia estructura, reglas de sintaxis y paradigma de programación. El paradigma de programación del lenguaje Java se basa en el concepto de programación orientada a objetos (OOP), que las funciones del lenguaje soportan.
El lenguaje Java es un derivado del lenguaje C, por lo que sus reglas de sintaxis se parecen mucho a C: por ejemplo, los bloques de códigos se modularizan en métodos y se delimitan con llaves ( {  y  } ) y las variables se declaran antes de que se usen.
Estructuralmente, el lenguaje Java comienza con paquetes. Un paquete es el mecanismo de espacio de nombres del lenguaje Java. Dentro de los paquetes se encuentran las clases y dentro de las clases se encuentran métodos, variables, constantes, entre otros. En este tutorial, aprenderá acerca de las partes del lenguaje Java.
El compilador Java
Cuando usted programa para la plataforma Java, escribe el código de origen en archivos .java y luego los compila. El compilador verifica su código con las reglas de sintaxis del lenguaje, luego escribe los códigos byte en archivos .class. Los códigos byte son instrucciones estándar destinadas a ejecutarse en una Java Virtual Machine (JVM). Al agregar este nivel de abstracción, el compilador Java difiere de los otros compiladores de lenguaje, que escriben instrucciones apropiadas para el chipset de la CPU en el que el programa se ejecutará.
La JVM
Al momento de la ejecución, la JVM lee e interpreta archivos .class y ejecuta las instrucciones del programa en la plataforma de hardware nativo para la que se escribió la JVM. La JVM interpreta los códigos byte del mismo modo en que una CPU interpretaría las instrucciones del lenguaje del conjunto. La diferencia es que la JVM es un software escrito específicamente para una plataforma particular. La JVM es el corazón del principio "escrito una vez, ejecutado en cualquier lugar" del lenguaje Java. Su código se puede ejecutar en cualquier chipset para el cual una implementación apropiada de la JVM está disponible. Las JVM están disponibles para plataformas principales como Linux y Windows y se han implementado subconjuntos del lenguaje Java en las JVM para teléfonos móviles y aficionados de chips.
El recolector de basura
En lugar de forzarlo a mantenerse a la par con la asignación de memoria (o usar una biblioteca de terceros para hacer esto), la plataforma Java proporciona una gestión de memoria lista para usar. Cuando su aplicación Java crea una instancia de objeto al momento de ejecución, la JVM asigna automáticamente espacio de memoria para ese objeto desde el almacenamiento dinámico, que es una agrupación de memoria reservada para que use su programa. El recolector de basura Java se ejecuta en segundo plano y realiza un seguimiento de cuáles son los objetos que la aplicación ya no necesita y recupera la memoria que ellos ocupan. Este abordaje al manejo de la memoria se llama gestión de la memoria implícita porque no le exige que escriba cualquier código de manejo de la memoria. La recogida de basura es una de las funciones esenciales del rendimiento de la plataforma Java.
El kit de desarrollo de Java
Cuando usted descarga un kit de desarrollo de Java (JDK), obtiene, — además del compilador y otras herramientas, — una librería de clase completa de programas de utilidad preconstruidos que lo ayudan a cumplir cualquier tarea común al desarrollo de aplicaciones. El mejor modo para tener una idea del ámbito de los paquetes y bibliotecas JDK es verificar la documentación API JDK (vea Recursos).
El Java Runtime Environment
El Java Runtime Environment (JRE, también conocido como el Java Runtime) incluye las bibliotecas de códigos de la JVM y los componentes que son necesarios para programas en ejecución escritos en el lenguaje Java. Está disponible para múltiples plataformas. Puede redistribuir libremente el JRE con sus aplicaciones, de acuerdo a los términos de la licencia del JRE, para darles a los usuarios de la aplicación una plataforma en la cual ejecutar su software. El JRE se incluye en el JDK.
Comenzar con el lenguaje Java
Sería imposible introducir toda la sintaxis del lenguaje Java en un solo tutorial. Lo que resta de la Parte 1 se centra en los conceptos básicos del lenguaje, por lo que le da suficiente conocimiento y práctica para escribir programas simples. OOP se trata por completo de los objetos, por lo cual esta sección comienza con dos temas relacionados específicamente con la forma en que el lenguaje Java los maneja: palabras reservadas y la estructura de un objeto Java.
Palabras reservadas
Como cualquier lenguaje de programación, el lenguaje Java designa ciertas palabras que el compilador reconoce como especiales y, como tales, usted no tiene permitido usarlas para nombrar sus construcciones Java. La lista de palabras reservadas es sorprendentemente corta:
[size=12]abstracto[/size] [size=12]afirmar[/size] [size=12]booleano[/size] [size=12]interrupción[/size] [size=12]byte[/size] [size=12]caso[/size] [size=12]capturar[/size] [size=12]caract.[/size] [size=12]clase[/size] [size=12]const.[/size] [size=12]continuar[/size] [size=12]predeterminado[/size] [size=12]hacer[/size] [size=12]doble[/size] [size=12]else[/size] [size=12]enumer.[/size] [size=12]extiende[/size] [size=12]final[/size] [size=12]finalmente[/size] [size=12]flotante[/size] [size=12]para[/size] [size=12]ir a[/size] [size=12]si[/size] [size=12]implementa[/size] [size=12]importar[/size] [size=12]instancia de[/size] [size=12]int[/size] [size=12]interfaz[/size] [size=12]largo[/size] [size=12]nativo[/size] [size=12]nuevo[/size] [size=12]paquete[/size] [size=12]privado[/size] [size=12]protegido[/size] [size=12]público[/size] [size=12]retorno[/size] [size=12]corto[/size] [size=12]estático[/size] [size=12]strictfp[/size] [size=12]súper[/size] [size=12]conmutador[/size] [size=12]sincronizado[/size] [size=12]esto[/size] [size=12]arrojar[/size] [size=12]arroja[/size] [size=12]transitorio[/size] [size=12]intentar[/size] [size=12]inválido[/size] [size=12]volátil[/size] [size=12]mientras[/size]

Estructura de un objeto Java
Recuerde que un objeto es una entidad diferenciada que contiene atributos y comportamiento. Eso significa que tiene un límite nítido y un estado y puede realizar actividades cuando se lo piden correctamente. Cada lenguaje de orientación a objetos tiene reglas sobre cómo definir un objeto.
En el lenguaje Java, los objetos se definen como se demuestra en el Listado 1
Listado 1. Definición de objeto
[size=12][b]package[/b][i] packageName[/i];[b]import[/b][i] ClassNameToImport[/i];[i]accessSpecifier[/i][b] class[/b] ClassName {  [i]accessSpecifier dataType variableName[/i] [= [i]initialValue[/i]];  [i]accessSpecifier[/i] ClassName([[i]argumentList[/i]]) {    [i]constructorStatement[/i](s)  }  [i]accessSpecifier returnType methodName[/i]([[i]argumentList[/i]]) {    [i]methodStatement[/i](s)[/size][size=11]  }  // This is a comment  /* This is a comment too */  /* This is a     multiline     comment */}[/size] Empaquetado de objetos
El lenguaje Java le permite elegir los nombres de sus objetos, tales como  Account Person  o  LizardMan . En ocasiones, puede que termine usando el mismo nombre para expresar dos conceptos ligeramente diferentes. Esto se llama una colisión de nombres y sucede con frecuencia. El lenguaje Java usa paquetes para resolver estos conflictos.
Un paquete Java es un mecanismo para proporcionar un espacio de nombres: un área encapsulada en donde los nombres son únicos pero, fuera de esa área, puede que no lo sean. Para identificar una construcción de manera única, debe calificarla totalmente al incluir su espacio de nombres.
Los paquetes también le dan una buena forma para construir aplicaciones más complejas en unidades diferenciadas de funcionalidad.
Definición de paquete
Para definir un paquete, use la palabra clave  paquete  seguida por un nombre de paquete legal y termina con un punto y coma. A menudo, los nombres de los paquetes se separan con puntos y siguen este plan de facto:
[b]package[/b][size=0][i] orgType[/i][/size].[size=0][i]orgName[/i][/size].[size=0][i]appName[/i][/size].[size=0][i]compName[/i][/size]; Esta definición de paquete se divide de la siguiente manera:
[size=0][i]orgType[/i][/size]  es el tipo de organización, tales como  com org  o  net . [size=0][i]orgName[/i][/size]  es el nombre del ámbito de la organización, tales como  makotogroup sun  o  ibm . [size=0][i]appName[/i][/size]  es el nombre de la aplicación, abreviado. [size=0][i]compName[/i][/size]  es el nombre del componente.El lenguaje Java no lo obliga a seguir este convenio de paquetes. De hecho, usted no necesita especificar ningún paquete, en cuyo caso todos sus objetos deben tener nombres de clases únicos y residirán en el paquete predeterminado. Como una práctica mejor, recomiendo que defina todas sus clases Java en paquetes. Usted seguirá ese convenio durante este tutorial.
Sentencias de importación
A continuación en la definición de objeto (retomando el Listado 1) se encuentra la sentencia de importación. Una sentencia de importación le comunica al compilador Java dónde encontrar las clases a las que usted hace referencia dentro de su código. Cualquier objeto no trivial usa otros objetos para alguna funcionalidad y la sentencia de importación es cómo usted le comunica al compilador Java sobre ellos.
Una sentencia de importación normalmente luce así:
[size=12][b]import[/b][i] ClassNameToImport[/i];[/size] Especifique la palabra clave  importación  seguida de la clase que quiere importar seguida de un punto y coma. El nombre de la clase debería estar completamente calificado, es decir, debería incluir su paquete.
Para importar todas las clases dentro de un paquete, puede poner  .*  después del nombre del paquete. Por ejemplo, esta sentencia importa cada clase en el paquete  com.makotogroup :
[size=12]import com.makotogroup.*;[/size] Sin embargo, importar todo un paquete puede hacer que su código sea menos legible, por lo tanto recomiendo que importe solo las clases que necesite.
Eclipse simplifica las importaciones
Cuando escribe el código en el editor de Eclipse, puede escribir el nombre de una clase que usted quiera usar, seguido por Ctrl+Shift+O. Eclipse resuelve cuáles son las importaciones que usted necesita y las agrega automáticamente. Si Eclipse encuentra dos clases con el mismo nombre, visualiza un recuadro de diálogo que le pregunta para cuál de las clases quiere agregar importaciones.
Declaración de clase
Para definir un objeto en el lenguaje Java, debe declarar una clase. Considere a una clase como una plantilla para un objeto, como un molde de galletas. La clase define la estructura básica del objeto y, al momento de la ejecución, su aplicación crea una instancia del objeto. La palabraobjeto a menudo se usa como sinónimo de la palabra clase. En sentido estricto, una clase define la estructura de algo de lo cual el objeto es una instancia.
El Listado 1 incluye esta declaración de clase:
[size=12][i]accessSpecifier[/i][b] class[/b] ClassName {  [i]accessSpecifier dataType variableName[/i] [= [i]initialValue[/i]];  [i]accessSpecifier[/i] ClassName([[i]argumentList[/i]]) {    [i]constructorStatement[/i](s)  }  [i]accessSpecifier returnType methodName[/i]([[i]argumentList[/i]]) {    [i]methodStatement[/i](s)  }}[/size] Un  [i]accessSpecifier[/i]  de una clase podría tener varios valores pero, por lo general, es  público . Observará otros valores de  [i]accessSpecifier[/i] pronto.
Convenios de denominación de clases
Puede denominar a las clases prácticamente como quiera pero el convenio es usar bicapitalización: comenzar con una letra en mayúscula, usar mayúscula en la primera letra de cada palabra concatenada y dejar todas las otras letras en minúscula. Los nombres de las clases deberían contener solo letras y números. Adherirse a estas guías asegurará que su código sea más accesible para otros desarrolladores que siguen los mismos convenios.
Las clases pueden tener dos tipos de miembros: variables y métodos.
Variables
Los valores de las variables de una clase dada distinguen cada instancia de esa clase y define su estado. A estos valores a menudo se los denomina variables de instancia. Una variable tiene:
Un  [i]accessSpecifier[/i] Un  [i]dataType[/i] Un  [i]variableName[/i] Opcionalmente, un  [i]initialValue[/i] Lo posibles valores de  [i]accessSpecifier[/i]  son:
público : Cualquier objeto en cualquier paquete puede ver la variable. (Nunca use este valor). protegido : Cualquier objeto definido en el mismo paquete, o una subclase (definida en cualquier paquete), puede ver la variable.Ningún especificador (también llamado acceso amigable o privado al paquete): Solo los objetos cuyas clases se definen en el mismo paquete pueden ver la variable. privado : Solo la clase que contiene la variable puede verlaEl  [i]dataType[/i]  de una variable depende de lo que la variable sea, — podría ser un tipo primitivo u otro tipo de clase (repito, profundizaremos sobre esto más adelante).
El  [i]variableName[/i]  depende de usted pero, por convenio, los nombres de las variables usan el convenio de bicapitalización que describí anteriormente, con la excepción de que comienzan con una letra minúscula. (A este estilo a veces se lo llama lowerCamelCase).
No se preocupe por el  [i]initialValue[/i]  por ahora; solo sepa que puede inicializar una variable de instancia cuando la declara. (De otro modo, el compilador genera una predeterminación por usted que se establecerá cuando se cree una instancia de la clase).
Ejemplo: Definición de clase de  Person
Antes de seguir con los métodos, aquí hay un ejemplo que resume lo que ha aprendido hasta ahora. El Listado 2 es una definición de clase de Person :
[size=12]package com.makotogroup.intro;public class Person {  private String name;  private int age;  private int height;  private int weight;  private String eyeColor;  private String gender;}[/size] La definición de clase básica de  Person  no es muy útil en este momento porque define solo sus atributos (y los privados).
Para ser más interesante, la clase de  Person  necesita comportamiento, — y eso significa métodos.
Métodos
Los métodos de una clase definen su comportamiento. A veces, este comportamiento no es nada más que devolver el valor actual de un atributo. Otras veces, el comportamiento puede ser bastante complejo.
Hay esencialmente dos categorías de métodos: constructores y todos los otros métodos, — de los cuales existen muchos tipos. Un método constructor se usa solo para crear una instancia de una clase. Otros tipos de métodos pueden usarse para prácticamente cualquier comportamiento de aplicación.
Al mirar hacia atrás al Listado 1, muestra el modo para definir la estructura de un método, que incluye aspectos como:
[i][size=12]accessSpecifier[/size][/i] [i][size=12]returnType[/size][/i] [i][size=12]methodName[/size][/i] [i][size=12]argumentList[/size][/i] La combinación de estos elementos estructurales en la definición de un método se llama su firma.
Definición de clase con un constructor
Ahora verá lo que sucede cuando agrega la capacidad de crear un objeto  Person  de dos modos: al usar un constructor sin argumento y al inicializar una lista parcial de atributos.
El Listado 4 muestra cómo crear constructores y también cómo usar la  argumentList :
[size=12]package com.makotogroup.intro;public class Person {  private String name;  private int age;  private int height;  private int weight;  private String eyeColor;  private String gender;  public Person() {    // Nothing to do...  }  public Person(String name, int age, int height, String eyeColor, String gender) {    this.name = name;    this.age = age;    this.height = height;    this.weight = weight;    this.eyeColor = eyeColor;    this.gender = gender;  }}[/size] Observe el uso de la palabra clave  this  al hacer las asignaciones de variables en el Listado 4. Esto es una taquigrafía de Java para "this object" y debe usarse cuando se haga referencia a dos variables con el mismo nombre (como en este caso en el que la edad, por ejemplo, es tanto un parámetro constructor como una variable de clase) y le ayuda al compilador a desambiguar la referencia.
El objeto  Person  se está haciendo más interesante pero necesita más comportamiento. Y para eso, usted necesita más métodos.
Otros métodos
Un constructor es un tipo particular de método con una función particular. De forma similar, muchos otros tipos de métodos desempeñan funciones particulares en los programas Java. La exploración de otros métodos comienza en esta sección y continúa durante todo el tutorial.
En el Listado 1, le mostré cómo declarar un método:
[size=12][i]accessSpecifier returnType methodName[/i]([[i]argumentList[/i]]) {  [i]methodStatement(s)[/i]}[/size] Otros métodos se parecen bastante a los constructores, con un par de excepciones. En primer lugar, usted puede denominar a otros métodos cómo usted quiera (aunque, por supuesto, hay reglas). Recomiendo los siguientes convenios:
Comenzar con una letra minúscula.Evitar números, a menos que sean absolutamente necesarios.Usar solo caracteres alfabéticos.En segundo lugar, a diferencia de los constructores, otros métodos tienen un tipo de retorno opcional.
Métodos estáticos y de instancia
Hay generalmente dos tipos de métodos (no constructores): los métodos de instancia y los métodos estáticos. Los métodos de instancia dependen del estado de una instancia de objeto específico por sus comportamientos. Los métodos estáticos también se denominan a vecesmétodos de clase porque sus comportamientos no dependen del estado de ningún objeto en particular. El comportamiento de un método estático sucede al nivel de la clase.
Los métodos estáticos se usan en gran medida por utilidad; puede considerarlos como un modo de tener métodos globales (à la C) mientras mantiene el código mismo agrupado con la clase que lo necesita.
Por ejemplo, en todo este tutorial usará la clase de  Logger  JDK para enviar información a la consola. Para crear una instancia de clase de Logger , no cree una instancia de clase de  Logger ; en cambio, invoque un método estático llamado  getLogger() .
La sintaxis para invocar un método estático es diferente de la sintaxis usada para invocar un método para una instancia de objeto. También use el nombre de la clase que contiene el método estático, como se muestra en esta invocación:
Logger l = Logger.getLogger("NewLogger"); Por lo cual, para invocar un método estático, no necesita una instancia de objeto, solo el nombre de la clase.
Creación de un paquete
Si todavía no está allí, vaya a la perspectiva Package Explorer en Eclipse. Se lo va a preparar para crear su primera clase Java. El primer paso es crear un lugar para que la clase viva. Los paquetes son construcciones de espacio de nombres pero también se correlacionan convenientemente de forma directa con la estructura del directorio del sistema de archivos.
En lugar de usar el paquete predeterminado (casi siempre una mal idea), creará uno específicamente para el código que estará escribiendo. Haga clic en File > New > Package para acceder al asistente del Paquete Java, que se muestra en la Ilustración 4:
Ilustración 4. El asistente del Paquete Java de Eclipse
orientadaEscriba  com.makotogroup.intro  en el recuadro de texto del Nombre y haga clic en Finish. Verá el nuevo paquete creado en el Package Explorer.
Declaración de la clase
Hay más de un modo para crear una clase desde el Package Explorer pero el modo más fácil es hacer clic derecho en el paquete que acaba de crear y elegir New > Class.... Verá el recuadro de diálogo New Class (Clase nueva).
En el recuadro de texto de Name escriba  Person . Bajo ¿Qué resguardos de métodos le gustaría crear?, marque  public static void main(String[] args) . (Pronto verá por qué). Luego, haga clic en Finish.
La clase nueva aparece en su ventana de edición. Recomiendo cerrar algunas de las vistas de su aspecto predeterminado para que sea más fácil ver su código de origen, como se muestra en la Ilustración 5:
Ilustración 5. Un espacio de trabajo bien ordenado
Lo basicoEclipse genera una clase de shell para usted e incluye la sentencia del paquete en la parte superior, junto con el método  main()  que usted pidió y los comentarios que ve. Ahora, solo necesita precisar la clase. Puede configurar cómo Eclipse genera clases nuevas por medio de Window > Preferences > Java > Code Style > Code Templates. Para simplificar, usted optará por la generación de código simple de instalar de Eclipse.
En la Ilustración 5, observe el asterisco (*) junto al nuevo archivo de código de origen, que indica que he hecho una modificación. Y observe que el código no está guardado. Luego, observe que he cometido un error cuando declaré el atribut  Name : Declaré que el tipo de  Name  era  Strin . El compilador no pudo encontrar una referencia para tal clase y la distinguió como un error de compilación (esa es la línea roja ondulada debajo de Strin ). Por supuesto, puedo corregir mi error al agregar una  g  al final de  Strin . Esto es solo una pequeña demostración del poder de un IDE sobre el uso de herramientas de líneas de comandos para el desarrollo de software.
Adición de variables de clases
En el Listado 4, usted comienza a precisar la clase de  Person  pero no expliqué mucho sobre la sintaxis. Ahora formalmente definiré cómo agregar variables de clases.
Recuerde que una variable tiene un  [i]accessSpecifier[/i] , un  [i]dataType[/i] , un  [i]variableName[/i]  y, opcionalmente, un  [i]initialValue[/i] . Anteriormente, observó brevemente cómo definir el  [i]accessSpecifier[/i]  y  [i]variableName[/i] . Ahora verá el  [i]dataType[/i]  que una variable puede tener.
Un  [i]dataType[/i]  puede ser un tipo primitivo o una referencia a otro objeto. Por ejemplo, observe que  Age  es un  int  (un tipo primitivo) y  Name  es una String  (un objeto). El JDK viene empaquetado lleno de clases útiles como  java.lang.String  y aquellos en el paquete  java.lang  no necesitan ser importados (una cortesía taquigráfica del compilador Java). Pero ya sea que el  [i]dataType[/i]  sea una clase JDK como  String  o una clase definida por el usuario, la sintaxis es esencialmente la misma.
La Tabla 1 muestra los ocho tipos de datos primitivos que es probable que usted vea regularmente, incluidos los valores predeterminados que los primitivos adquieren si usted no inicializa explícitamente el valor de una variable miembro:
Tabla 1. Tipos de datos primitivos
TipoTamañoValor predeterminadoRango de valores [size=10]booleano[/size] n/dfalsoverdadero o falso [size=10]byte[/size] 8 bits0-128 a 127 [size=10]caract.[/size] 16 bits(sin firmar)u0000'u0000' a uffff' o 0 a 65535 [size=10]corto[/size] 16 bits0-32768 a 32767 [size=10]int[/size] 32 bits0-2147483648 a 2147483647 [size=10]largo[/size] 64 bits0-9223372036854775808 a 9223372036854775807 [size=10]flotante[/size] 32 bits0,01.17549435e-38 a 3.4028235e+38 [size=10]doble[/size] 64 bits0,04.9e-324 a 1.7976931348623157e+308Registro incorporado
Antes de avanzar más en la codificación, necesita saber cómo sus programas le dicen lo que están haciendo.
La plataforma Java incluye el paquete  java.util.logging , un mecanismo de registro incorporado para juntar información de programa en una forma legible. Los registradores son entidades con nombres que usted crea por medio de una llamada de método estático a la clase  Logger , como la siguiente:
[size=12]import java.util.logging.Logger;//. . .Logger l = Logger.getLogger(getClass().getName());[/size] Cuando se llama al método  getLogger() , usted pase una  String . Por ahora, solo acostúmbrese a pasar al nombre de la clase el código en el que su escritura se encuentra. Desde cualquier método regular (es decir, no estático), el código anterior siempre hará referencia al nombre de la clase y lo pasará al  Logger .
Si usted está haciendo una llamada de  Logger  dentro de un método estático, solo haga referencia al nombre de la clase en la que se encuentre:
[size=12]Logger l = Logger.getLogger(Person.class.getName());[/size] En este ejemplo, el código en el que usted se encuentra es la clase de  Person , por lo tanto haga referencia a un literal especial denominado clase  que recupera el objeto  Class  (profundizaremos sobre esto más adelante) y obtiene su atributo  Name .
La sección Writing good Java code de este tutorial incluye un consejo sobre cómo no hacer un registro.
Utilización de  main()  como un banco de pruebas
main()  es un método especial que usted puede incluir en cualquier clase para que el JRE pueda ejecutar su código. No se requiere que una clase tenga un método  main() , — de hecho, la mayoría nunca lo tendrá, — y una clase puede tener, como mucho, un método  main() .
main()  es un método práctico para tener porque le da un banco de pruebas rápido para la clase. En el desarrollo empresarial, usted usaría bibliotecas de pruebas pero, a los propósitos de este tutorial, usará  main()  como su banco de pruebas.
Vaya al editor de código de origen de Eclipse para  Person  y agregue un código para hacer que se parezca al Listado 4. Eclipse tiene un práctico generador de códigos para generar getters y setters (entre otros). Para probarlo, ponga el cursor del ratón en la definición de clase de  Person (es decir, en la palabra  Person  en la definición de clase) y vaya a Source > Generate Getters and Setters.... Cuando el recuadro de diálogo se abra, haga clic en Select All, como se muestra en la Ilustración 6:
Ilustración 6. Eclipse genera getters y setters
a objetosPara el punto de inserción, elija Last member y haga clic en OK. Observe que los getters y setters aparecen luego del método  main() .
Ejecución de código en Eclipse
Para ejecutar una aplicación Java desde dentro de Eclipse, seleccione la clase que quiere ejecutar, que debe tener un método  main() . Actualmente, usted tiene solo una clase, — y sí tiene un método  main() , — por lo tanto seleccione  Person , luego haga clic en el icono Run (que es verde y tiene una pequeña flecha triangular que apunta a la derecha). Cuando se lo pida, seleccione ejecutar  Person  como una aplicación Java, luego siéntese y obsérvelo funcionar. Debería ver algo parecido a la captura de pantalla de la Ilustración 7:
programacion en pythonObserve que la vista de Consola se abre automáticamente y muestra la salida de  Logger . También he seleccionado la vista de Esquema en el panel izquierdo, que revela la estructura básica de la clase de  Person  en una vista rápida.
Llamado de métodos
Invocar, o llamar, métodos es fácil. Usted vio en el Listado 7 cómo invocar los diversos getters de  Person  para devolver sus valores. Ahora formalizaré el mecanismo de realizar llamadas de métodos.
La invocación de un método con y sin parámetros
Para invocar un método para un objeto, necesita una referencia a ese objeto. La sintaxis de la invocación de métodos comprende la referencia del objeto, un punto literal, el nombre del método y cualquier parámetro que necesite pasarse:
[size=12]objectReference.someMethod();objectReference.someOtherMethod([i]parameter[/i]);[/size] Aquí hay una invocación de método sin parámetros:
[size=12]Person p = /*obtain somehow */;p.getName();[/size] Y aquí hay una invocación de método con parámetros (con acceso al atributo  Name  de  Person ):
[size=12]Person p = new Person("Joe Q Author", 42, 173, 82, "Brown", "MALE");[/size] Recuerde que los constructores también son métodos. Y puede separar los parámetros con espacios y saltos de línea. Al compilador Java no le interesa. Las siguientes dos invocaciones de métodos son idénticas:
[size=12]new Person("Joe Q Author", 42, 173, 82, "Brown", "MALE");[/size]
[size=12]new Person("Joe Q Author",         42,         173,         82,         "Brown",         "MALE");[/size] Cadenas
El manejo de cadenas en C es un trabajo intensivo porque son matrices de finalización nula de caracteres de 8 bits que usted tiene que manipular. En el lenguaje Java, las cadenas son objetos de primera clase de tipo  String , con métodos que le ayudan a manejarlas. (Lo más cerca que el código Java llega al mundo C con respecto a las cadenas es el tipo de datos primitivos  char , que puede tener un solo carácter Unicode, por ejemplo a).
Ya ha visto cómo crear una instancia de un objeto  String  y establecer su valor (en el Listado 5) pero existen varias otras formas de hacer eso. Aquí hay un par de formas para crear una instancia  String  con un valor de  hello :
[size=12]String greeting = "hello";[/size]
[size=12]greeting = new String("hello");[/size] Debido a que las  String s son objetos de primera clase en el lenguaje Java, puede usar  new  para crear una instancia de ellas. Establecer una variable de tipo  String  tiene el mismo resultado porque el lenguaje Java crea un objeto  String  para tener el literal, luego asigna ese objeto a la variable de instancia.
Como puede esperar, el lenguaje Java puede calcular y ya ha visto como asignar variables. Ahora, le daré un breve vistazo a algunos de los operadores del lenguaje Java que necesitará mientras sus aptitudes mejoran. El lenguaje Java usa dos tipos de operadores:
Unario: Solo se necesita un operando.Binario: Se necesitan dos operandos.Los operadores aritméticos del lenguaje Java se resumen en la Tabla 2:
OperadorUsoDescripción [size=10]+[/size] [size=10]a + b[/size] Suma  a  y  b [size=10]+[/size] [size=10]+a[/size] Potencia  a  a  int  si es un  byte short , o  char [size=10]-[/size] [size=10]a - b[/size] Resta  b  de  a [size=10]-[/size] [size=10]-a[/size] Aritméticamente niega  a [size=10]*[/size] [size=10]a * b[/size] Multiplica  a  y  b [size=10]/[/size] [size=10]a / b[/size] Divide  a  por  b [size=10]%[/size] [size=10]a % b[/size] Devuelve el resto de la división de  a  por  b  (el operador de módulo) [size=10]++[/size] [size=10]a++[/size] Incrementa  a  por 1; calcula el valor de  a  antes de incrementarlo [size=10]++[/size] [size=10]++a[/size] Incrementa  a  por 1; calcula el valor de  a  después de incrementarlo [size=10]--[/size] [size=10]a--[/size] Disminuye  a  por 1; calcula el valor de  a  antes de disminuirlo [size=10]--[/size] [size=10]--a[/size] Disminuye  a  por 1; calcula el valor de  a  después de disminuirlo [size=10]+=[/size] [size=10]a += b[/size] Taquigrafía para  a = a + b [size=10]-=[/size] [size=10]a -= b[/size] Taquigrafía para  a = a - b [size=10]*=[/size] [size=10]a *= b[/size] Taquigrafía para  a = a * b [size=10]%=[/size] [size=10]a %= b[/size] Taquigrafía para  a = a % b La Tabla 3 enumera los operadores relacionales y condicionales del lenguaje Java:
OperadorUsoRetorna verdadero si... [size=10]>[/size] [size=10]a > b[/size] a  es mayor que  b [size=10]>=[/size] [size=10]a >= b[/size] a  es mayor que o igual a  b [size=10]<[/size] [size=10]a < b[/size] a  es menor que  b [size=10]<=[/size] [size=10]a <= b[/size] a  es menor que o igual a  b [size=10]==[/size] [size=10]a == b[/size] a  es igual a  b [size=10]!=[/size] [size=10]a != b[/size] a  no es igual a  b [size=10]&&[/size] [size=10]a && b[/size] Ambos  a  y  b  son verdaderos, evalúa condicionalmente a  b  (si  a  es falso,  b  no se evalúa) [size=10]||[/size] [size=10]a || b[/size] a  o  b  es verdadero, evalúa condicionalmente a  b  (si  a  es verdadero,  b  no se evalúa) [size=10]![/size] [size=10]!a[/size] a  es falso [size=10]&[/size] [size=10]a & b[/size] Ambos  a  y  b  son verdaderos, siempre evalúa a  b [size=10]|[/size] [size=10]a | b[/size] a  o  b  es verdadero, siempre evalúa a  b [size=10]^[/size] [size=10]a ^ b[/size] a  y  b  son diferentesLa sentencia  if
Ahora que tiene un grupo de operadores, es momento de usarlos. Este código muestra lo que sucede cuando agrega algo de lógica al accessor getHeight()  del objeto  Person :
[size=12]public int getHeight() {  int ret = height;  // If locale of the machine this code is running on is U.S.,  if (Locale.getDefault().equals(Locale.US))    ret /= 2.54;// convert from cm to inches  return ret;}[/size] Si el entorno local actual está en los Estados Unidos (donde no se usa el sistema métrico), entonces tal vez tenga sentido convertir el valor interno de altura (en centímetros) a pulgadas. Este ejemplo ilustra el uso de la sentencia  if , que evalúa una expresión booleana en paréntesis. Si esa expresión evalúa como verdadera, ejecuta la siguiente sentencia.
En este caso, solo necesita ejecutar una sentencia si el  Locale  de la máquina en la que se ejecuta el código es  Locale.US . Si necesita ejecutar más de una sentencia, puede usar llaves para formar una sentencia compuesta. Una sentencia compuesta agrupa muchas sentencias en una, — y las sentencias compuestas también pueden contener otras sentencias compuestas.
La sentencia  else
Hay momentos en el flujo de control de un programa en los que usted quiere participar solo si una expresión particular falla al evaluar como verdadero. En ese momento es cuando  else  resulta de ayuda:
[size=12]public int getHeight() {  int ret;  if (gender.equals("MALE"))    ret = height + 2;  else {    ret = height;    Logger.getLogger("Person").info("Being honest about height...");  }  return ret;}[/size] La sentencia  else  funciona del mismo modo que  if  en el sentido que ejecuta solo la siguiente sentencia que encuentra. En este caso, dos sentencias se agrupan en una sentencia compuesta (observe las llaves), que luego el programa ejecuta.
También puede usar  else  para realizar una verificación  if  adicional, del siguiente modo:
[size=12]if ([i]conditional[/i]) {  // [i]Block 1[/i]} else if ([i]conditional2[/i]) {  // [i]Block 2[/i]} else if ([i]conditional3[/i]) {  // [i]Block 3[/i]} else {  // [i]Block 4[/i]} // End[/size] Si  [i]conditional[/i]  evalúa como verdadero, entonces el  [i]Block 1[/i]  se ejecuta y el programa salta a la siguiente sentencia luego de la llave final (lo que se indica con  // End ). Si  [i]conditional[/i] no evalúa como verdadero, entonces se evalúa  [i]conditional2[/i] . Si es verdadero, entonces el  [i]Block 2[/i]  se ejecuta y el programa salta a la siguiente sentencia luego de la llave final. Si  [i]conditional2[/i]  no es verdadero, entonces el programa sigue con  [i]conditional3[/i]  y así sucesivamente. Solo si las tres condicionales fallan, se ejecutaría el  [i]Block 4[/i] .
Bucles


Además de poder aplicar condiciones a sus programas y ver diferentes resultados en base a diversos escenarios  if / then , a veces quiere que su código solo haga lo mismo una y otra vez hasta que se haga el trabajo. En esta sección, aprenda acerca de dos construcciones usadas para iterar el código o ejecutarlo más de una vez. Bucles  for  y bucles  while  loops.
Bucles  for
La construcción de bucle básico en el lenguaje Java es la sentencia  for , que le permite iterar un rango de valores para determinar cuántas veces ejecutar un bucle. La sintaxis abstracta para un bucle  for  es:
[size=12]for ([i]initialization[/i]; [i]loopWhileTrue[/i]; [i]executeAtBottomOfEachLoop[/i]) {  [i]statementsToExecute[/i]}[/size] Al comienzo del bucle, se ejecuta la sentencia de inicialización (las sentencias de inicialización múltiples se pueden separar con comas). Mientras  [i]loopWhileTrue[/i]  (una expresión condicional de Java que debe evaluar ya sea como verdadero o falso) sea verdadero, el bucle se ejecutará. Al final del bucle, se ejecuta  [i]executeAtBottomOfEachLoop[/i] .
Bucles  while
La sintaxis para un bucle  while  es:
[size=12]while ([i]loopWhileTrue[/i]) {  [i]statementsToExecute[/i]}[/size] Como puede sospechar,  while [i]loopWhileTrue[/i]  evalúa como verdadero, por lo tanto el bucle se ejecutará. En la parte superior de cada iteración (es decir, antes de que se ejecute cualquier sentencia), se evalúa la condición. Si es verdadero, el bucle se ejecuta. Por lo que es posible que un bucle  while  nunca se ejecute si su expresión condicional no es verdadera por lo menos una vez.
Observe de nuevo el bucle  for  en el Listado 9. Por comparación, el Listado 10 lo codifica usando un bucle  while:
[size=12]public static void main(String[] args) {  Logger l = Logger.getLogger(Person.class.getName());  [b]int aa = 0;  while (aa < 3) {[/b]    Person p = new Person("Joe Q Author", 42, 173, 82, "Brown", "MALE");    [b]l.info("Loop executing iteration# " + aa);[/b]    l.info("Name: " + p.getName());    l.info("Age:" + p.getAge());    l.info("Height (cm):" + p.getHeight());    l.info("Weight (kg):" + p.getWeight());    l.info("Eye Color:" + p.getEyeColor());    l.info("Gender:" + p.getGender());[/size][size=11]    [b]aa++;[/b]  }[/size] Como puede ver, un bucle  while  requiere un poco más de mantenimiento que un bucle  for . Usted debe inicializar la variable  aa  y también recordar incrementarla al final del bucle.
Bucles  do...while
Si usted quiere un bucle que se ejecute siempre una vez y luego verifique su expresión condicional, pruebe usar un bucle  do...while , como se muestra en el Listado 11:
[size=12][b]int aa = 0;do {[/b]  Person p = new Person("Joe Q Author", 42, 173, 82, "Brown", "MALE");  [b]l.info("Loop executing iteration# " + aa);[/b]  l.info("Name: " + p.getName());  l.info("Age:" + p.getAge());  l.info("Height (cm):" + p.getHeight());  l.info("Weight (kg):" + p.getWeight());  l.info("Eye Color:" + p.getEyeColor());  l.info("Gender:" + p.getGender());  [b]aa++;[/b]} [b]while (aa < 3);[/b][/size] La expresión condicional ( aa < 3 ) no se verifica hasta el final del bucle.
Matrices
La mayoría de los lenguajes de programación incluyen el concepto de una matriz para tener una colección de elementos y el lenguaje Java no es ninguna excepción. Una matriz no es nada más que una colección de elementos del mismo tipo.
Puede declarar una matriz en una de dos formas:
Crearlo con un cierto tamaño, que se fija por la vida de la matriz.Crearlo con un cierto conjunto de valores iniciales. El tamaño de este conjunto determina el tamaño de la matriz, — será exacta y suficientemente grande para tener todos esos valores y su tamaño se fija por la vida de la matriz.Embalaje y desembalaje
Cada tipo primitivo en el lenguaje Java tiene una clase homóloga JDK, que puede ver en la Tabla 4:
PrimitivoHomólogo JDK [size=10]booleano[/size] [size=10]java.lang.Boolean[/size] [size=10]byte[/size] [size=10]java.lang.Byte[/size] [size=10]caract.[/size] [size=10]java.lang.Character[/size] [size=10]corto[/size] [size=10]java.lang.Short[/size] [size=10]int[/size] [size=10]java.lang.Integer[/size] [size=10]largo[/size] [size=10]java.lang.Long[/size] [size=10]flotante[/size] [size=10]java.lang.Float[/size] [size=10]doble[/size] [size=10]java.lang.Double[/size] Cada clase JDK proporcionar métodos para analizar y convertir desde su representación interna hasta un tipo primitivo correspondiente. Por ejemplo, este código convierte el valor decimal 238 a un  Integer :
[size=12]int value = 238;Integer boxedValue = Integer.valueOf(value);[/size] Esta técnica se conoce como embalaje porque está poniendo el primitivo en un envoltorio o caja.
De forma similar, para convertir la representación de  Integer  de nuevo a su homólogo  int , usted lo desembalaría de la siguiente forma:
[size=12]Integer boxedValue = Integer.valueOf(238);int intValue = boxedValue.intValue();[/size] Listas
Una  Lista  es una construcción de colección que, por definición, es una colección ordenada, también conocida como una secuencia. Debido a que una  Lista  es ordenada, usted tiene completo control sobre el lugar en donde van los elementos en la  Lista . Una colección de  Lista  Java solo puede tener objetos y define un contrato estricto sobre cómo se comporta.
La  Lista  es una interfaz, por lo que usted no puede crear una instancia de ella directamente. Trabajará con su implementación más comúnmente usada,  ArrayList :
[size=12]List<Object> listOfObjects = new ArrayList<Object>();[/size] Observe que hemos asignado el objeto  ArrayList  a una variable de tipo  Lista . La programación Java le permite asignar una variable de un tipo a otro, siempre y cuando la variable a la que se asigna sea una superclase o interfaz implementada por la variable desde la cual se asigna. Veremos más sobre cómo se afectan las asignaciones de variables en la Part 2 en la sección Inheritance.
[size=12]List<Person> listOfPersons = new ArrayList<Person>();[/size] Conjuntos
Un  Conjunto  es una construcción de colecciones que por definición contiene elementos únicos, — es decir, ningún duplicado. Mientras que una Lista  puede contener el mismo objeto cientos de veces, un  Conjunto  solo puede contener cierta instancia una vez. Una colección de  Conjunto Java solo puede tener objetos y define un contrato estricto sobre cómo se comporta.
Debido a que el  Conjunto  es una interfaz, usted no puede crear una instancia de él directamente, por lo tanto le mostraré una de mis implementaciones favoritas:  HashSet HashSet  es fácil de usar y es similar a la  Lista .
Aquí hay algunas cosas que querrá hacer con un  Conjunto :
Poner algo en el  Conjunto .Preguntarle al  Conjunto  cuán grande es actualmente.Obtener algo del  Conjunto .Uso de los  Conjunto s
Un atributo característico de un  Conjunto  es que garantiza la singularidad entre sus elementos pero no le interesa el orden de los elementos. Considere el siguiente código:
[size=12]Set<Integer> setOfIntegers = new HashSet<Integer>();setOfIntegers.add(Integer.valueOf(10));setOfIntegers.add(Integer.valueOf(11));setOfIntegers.add(Integer.valueOf(10));for (Integer i : setOfIntegers) {  l.info("Integer value is: " + i);}[/size] Puede que usted espere que el  Conjunto  tenga tres elementos en él pero de hecho solo tiene dos porque el objeto  Integer  que contiene el valor  10  solo se agregará una vez.
Tenga este comportamiento en mente cuando haga la iteración por un  Conjunto , como en el siguiente modo:
[size=12]Set<Integer> setOfIntegers = new HashSet();setOfIntegers.add(Integer.valueOf(10));setOfIntegers.add(Integer.valueOf(20));setOfIntegers.add(Integer.valueOf(30));setOfIntegers.add(Integer.valueOf(40));setOfIntegers.add(Integer.valueOf(50));Logger l = Logger.getLogger("Test");for (Integer i : setOfIntegers) {  l.info("Integer value is : " + i);}[/size] Es posible que los objetos se impriman en un orden diferente del que usted los agregó porque un  Conjunto  garantiza la singularidad, no el orden. Verá esto por usted mismo si pega el código anterior en el método  main()  de su clase  Person  y lo ejecuta.
Mapas
Un  Mapa  es una construcción de colección útil porque le permite asociar un objeto (la clave) con otro (el valor). Como puede imaginar, la clave para el  Mapa  debe ser única y se usa para recuperar el valor en un momento posterior. Una colección de  Mapa  Java solo puede tener objetos y define un contrato estricto sobre cómo se comporta.
Debido a que el  Mapa  es una interfaz, usted no puede crear una instancia de él directamente, por lo tanto le mostraré una de mis implementaciones favoritas:  HashMap .
Aquí hay algunas de las cosas que querrá hacer con los  Mapa s:
Poner algo en el  Mapa .Obtener algo del  Mapa .Obtener un  Conjunto  de claves para el  Mapa — para hacer la iteración en él.Uso de los  Mapa s
Para poner algo en un  Mapa , necesita tener un objeto que represente su clave y un objeto que represente su valor:
[size=12]public Map<String, Integer> createMapOfIntegers() {  Map<String, Integer> mapOfIntegers = new HashMap<String, Integer>();  mapOfIntegers.put("1", Integer.valueOf(1));  mapOfIntegers.put("2", Integer.valueOf(2));  mapOfIntegers.put("3", Integer.valueOf(3));  // . . .  mapOfIntegers.put("168", Integer.valueOf(168));}[/size] Es este ejemplo, el  Mapa  contiene  Integer s, con la clave hecha por una  String , que resulta ser su representación de  String . Para recuperar un valor  Integer  particular, necesita su representación  String :
[size=12]mapOfIntegers = createMapOfIntegers();Integer oneHundred68 = mapOfIntegers.get("168");[/size]
Archivo del código Java


Ahora que ha aprendido un poco sobre la escritura de aplicaciones Java, puede que se esté preguntando cómo empaquetarlas para que otros desarrolladores puedan usarlas o cómo importar códigos de otros desarrolladores en sus aplicaciones. Esta sección le muestra cómo.
JAR
El JDK se envía con una herramienta llamada JAR, que significa Java Archive (archivo Java). Use esta herramienta para crear archivos JAR. Una vez que haya empaquetado su código en un archivo JAR, otros desarrolladores pueden simplemente dejar el archivo JAR en sus proyectos y configurar sus proyectos para usar su código.
programacion en ruby

Enlace de descarga al final del post...

PROGRAMAS AFILIADOS A JAVA:
 
~Eclipse


programacion en javascript

Es un programa d informática el cual contiene o esta compuesto por un conjunto de herramientas de programación de código abierto multi plataforma para desarrollar lo que el proyecto llama "aplicaciones de cliente enriquecido" opuesto a las aplicación de "cliente-liviano" basadas en navegadores.
Esta plataforma, tipcamente ha sido utilizada para desarrollar entornos de desarrollo integrados (del ingles IDE), como el IDE de Java llamado Java Development Toolkit (JDF), y el compilador (ECJ) que se entrega como parte de Eclipse Sin embargo, también se puede usar para otros tipos de aplicaciones-cliente, como EitTorrent o

Anuncios

0 comentarios - Programación Orientada a Objetos (Lo fundamental)