
Java (lenguaje de programaci??n)
Antecedentes de las escuelas de Wikipedia
SOS cree que la educaci??n da una mejor oportunidad en la vida para los ni??os en el mundo en desarrollo tambi??n. Madres SOS cada aspecto despu??s de un una familia de ni??os apadrinados .
![]() | |
Paradigma (s) | multi-paradigma: orientado a objetos, estructurado, imperativo, gen??rico, reflectante |
---|---|
Apareci?? en | |
Dise??ado por | James Gosling y Sun Microsystems |
Revelador | Oracle Corporation |
??ltima versi??n estable | Java Standard Edition 7 Actualizaci??n 21 (07/01/21) (16 de abril de 2013 |
Disciplina Typing | Est??tica, fuerte, seguro, nominativas, manifiesto |
Las principales implementaciones | OpenJDK, muchos otros |
Dialectos | Generic Java, Pizza |
Influenciado por | Ada 83, C ++ , C #, Eiffel, Generic Java, Mesa, Modula-3, Oberon, Objective-C, UCSD Pascal, Smalltalk |
Influenciado | Ada 2005, BeanShell, C #, Clojure, D, ECMAScript, Groovy, J #, JavaScript PHP, Python , Scala, Seed7, Vala |
Lenguaje de implementaci??n | C y C ++ |
OS | Cruz-plataforma (multiplataforma) |
Licencia | Licencia P??blica General de GNU, Java Community Process |
Usual extensiones de archivos | .java, .class, .jar |
|
Java es una prop??sito general, concurrente, basada en la clase, orientado a objetos lenguaje de programaci??n que est?? dise??ado espec??ficamente para tener el menor n??mero de dependencias de implementaci??n como sea posible. Su objetivo es permitir a los desarrolladores de aplicaciones "escribir una vez, ejecutar en cualquier lugar" (WORA), lo que significa que el c??digo que se ejecuta en una plataforma no necesita ser recompilado para funcionar en otro. Las aplicaciones Java est??n t??picamente compilado para c??digo de bytes ( archivo de clase) que puede funcionar en cualquier M??quina virtual Java (JVM), independientemente de arquitectura de computadores. Java es, desde 2012, uno de los lenguajes de programaci??n m??s populares en uso, en particular para aplicaciones web cliente-servidor, con una reportado 10 millones de usuarios. Java fue desarrollado originalmente por James Gosling en Sun Microsystems (que desde entonces ha fusionado en Oracle Corporation) y lanzado en 1995 como un componente b??sico de Sun Microsystems Plataforma Java. El lenguaje se deriva gran parte de su sintaxis de C y C ++ , pero tiene menos instalaciones de bajo nivel que cualquiera de ellos.
El original y referencia Java aplicaci??n compiladores, m??quinas virtuales, y bibliotecas de clases fueron desarrollados por Sun a partir de 1991 y por primera vez en 1995. En mayo de 2007, en cumplimiento de las especificaciones de la Java Community Process, Sun relicensed la mayor parte de sus tecnolog??as Java bajo la Licencia P??blica General GNU. Otros tambi??n han desarrollado implementaciones alternativas de estas tecnolog??as de Sun, como la Compilador GNU para Java y Classpath GNU.
Historia
James Gosling, Mike Sheridan, y Patrick Naughton inici?? el proyecto del lenguaje Java en junio de 1991. Java fue dise??ado originalmente para la televisi??n interactiva, pero ya era demasiado avanzada para la industria de la televisi??n por cable digital en el momento. El lenguaje se llam?? inicialmente Roble despu??s de un roble ??rbol que se encontraba fuera de la oficina de Gosling; que fue por el nombre Verde despu??s, y m??s tarde pas?? a llamarse Java, desde Caf?? de Java, dijo que se consume en grandes cantidades por los creadores del lenguaje. Gosling dirigido para implementar una m??quina virtual y un lenguaje que ten??a un familiar de C / C ++ estilo de notaci??n.
Sun Microsystems lanz?? la primera aplicaci??n p??blica como Java 1.0 en 1995. Prometi?? " Escribir una vez, ejecutar en cualquier lugar "(WORA), ofreciendo sin costo-tiempos de ejecuci??n en la popular plataformas. Seguridad configurable Bastante seguro y que ofrece, permiti?? que las restricciones de red y de acceso a archivos. Las principales navegadores web pronto incorporaron la posibilidad de ejecutar Applets de Java dentro de las p??ginas web y Java se convirti?? r??pidamente popular. Con la llegada de Java 2 (lanzado inicialmente como J2SE 1.2 en Diciembre de 1998 - 1999), las nuevas versiones ten??an m??ltiples configuraciones creadas para diferentes tipos de plataformas. Por ejemplo, J2EE dirigida aplicaciones empresariales y la versi??n J2ME despojada gran medida para aplicaciones m??viles (Mobile Java). J2SE designado la edici??n est??ndar. En 2006, con fines de marketing, Sun rebautizado nuevas versiones J2 como Java EE, Java ME, y Java SE, respectivamente.
En 1997, Sun Microsystems se acerc?? a la Normas ISO / IEC JTC1 cuerpo y m??s tarde el Ecma Internacional para la formalizaci??n de Java, pero pronto se retir?? del proceso. Java sigue siendo una est??ndar de facto, controlado a trav??s de la Java Community Process. En un momento, Sun hizo la mayor??a de sus implementaciones Java disponibles sin costo alguno, a pesar de su estado de software propietario. Sun gener?? ingresos de Java a trav??s de la venta de licencias para productos especializados, como el Java Enterprise System. Sun distingue entre su Kit de Desarrollo de Software (SDK) y Runtime Environment (JRE) (un subconjunto del SDK); la distinci??n primaria implica la Falta de JRE del compilador, programas de utilidad, y los archivos de cabecera.
El 13 de noviembre de 2006, Sun lanz?? la mayor parte de Java como software libre y de c??digo abierto, (FOSS), en los t??rminos de la GNU General Public License (GPL). El 8 de mayo de 2007, Sun terminado el proceso, por lo que todo el c??digo del n??cleo de Java disponible bajo t??rminos de distribuci??n de software / gratuitas de c??digo abierto, aparte de una peque??a porci??n de c??digo para que Sun no tienen los derechos de autor.
El vicepresidente de Sun Rich Green, dijo que el papel ideales de Sun con respecto a Java era como un "evangelista". A ra??z de Oracle Corporation adquisici??n 's de Sun Microsystems en el per??odo 2009-2010, Oracle ha descrito a s?? mismo como el "administrador de la tecnolog??a Java con un incansable compromiso con el fomento de una comunidad de la participaci??n y la transparencia". Esto no sostuvo Oracle, sin embargo, a partir de la presentaci??n de una demanda contra Google poco despu??s de que por el uso de Java en el SDK de Android (ver secci??n de Google a continuaci??n). Software de Java se ejecuta en ordenadores port??tiles a centros de datos, consolas de juegos a cient??fico supercomputadoras. Hay 930 millones Java Runtime Environment se descarga cada a??o y 3 mil millones de tel??fonos m??viles ejecutar Java. El 2 de abril de 2010, James Gosling dimiti?? de Oracle.
Principios


Hab??a cinco objetivos principales en la creaci??n del lenguaje Java:
- Debe ser "simple, orientado a objetos y familiar"
- Debe ser "robusta y segura"
- Debe ser "arquitectura neutra y port??til"
- Se debe ejecutar con "alto rendimiento"
- Cabe "interpretado, roscado, y din??mico"
Versiones
Versiones gran lanzamiento de Java, junto con sus fechas de estreno:
- JDK 1.0 (21 de enero, 1996)
- JDK 1.1 (19 de febrero, 1997)
- J2SE 1.2 (8 de diciembre, 1998)
- J2SE 1.3 (8 de mayo, 2000)
- J2SE 1.4 (6 de febrero de 2002)
- J2SE 5.0 (30 de septiembre de 2004)
- Java SE 6 (11 de diciembre de 2006)
- Java SE 7 (28 de julio de 2011)
Pr??cticas
Plataforma Java
Una caracter??stica de Java es la portabilidad, lo que significa que los programas inform??ticos escritos en el lenguaje Java deben ejecutarse de manera similar en cualquier plataforma hardware / sistema operativo. Esto se logra mediante la compilaci??n del c??digo del lenguaje Java a una representaci??n intermedia llamada Bytecode de Java, en lugar de directamente a espec??fico de la plataforma c??digo de m??quina. Instrucciones de c??digo de bytes de Java son an??logos a c??digo de m??quina, sino que se pretende que sean interpretado por una m??quina virtual (VM) por escrito espec??ficamente para el hardware del host. Los usuarios finales suelen utilizar un Java Runtime Environment (JRE) instalado en su propia m??quina para aplicaciones Java aut??nomas, o en un navegador Web para Java applets.
Bibliotecas estandarizadas proveen una manera gen??rica para acceder a funciones espec??ficas de servidor, tales como gr??ficos, roscado, y la creaci??n de redes.
Un beneficio importante de usar el c??digo de bytes est?? portando. Sin embargo, los gastos generales de la interpretaci??n significa que los programas interpretados casi siempre se ejecutan con mayor lentitud que los programas compilados para ejecutables nativos har??a. Just-in-Time (JIT) compiladores se introdujeron desde una etapa temprana que compile bytecodes a c??digo m??quina durante el tiempo de ejecuci??n.
Implementaciones
Oracle Corporation es la propietaria actual de la aplicaci??n oficial de la plataforma Java SE, tras su adquisici??n de Sun Microsystems, el 27 de enero de 2010. Esta aplicaci??n se basa en la implementaci??n original de Java de Sun. La aplicaci??n est?? disponible para Oracle Mac OS X, de Windows y Solaris. Debido a que Java carece de normalizaci??n formal reconocido por Ecma Internacional, ISO / IEC, ANSI, u otra organizaci??n de est??ndares de terceros, la implementaci??n de Oracle es la est??ndar de facto.
La implementaci??n de Oracle se empaqueta en dos distribuciones diferentes: El Java Runtime Environment (JRE), que contiene las partes de la plataforma Java SE necesarios para ejecutar programas Java y est?? destinado a los usuarios finales, y la Java Development Kit (JDK), que est?? dirigido a los desarrolladores de software e incluye herramientas de desarrollo como el Compilador de Java, Javadoc, Jar, y un depurador.
OpenJDK es otra implementaci??n notable Java SE que est?? bajo la licencia GPL. La implementaci??n comenz?? cuando Sun comenz?? a liberar el c??digo fuente de Java bajo GPL. A partir de Java SE 7, OpenJDK es la implementaci??n de referencia oficial de Java.
El objetivo de Java es hacer que todas las implementaciones de Java compatible. Hist??ricamente, la licencia de la marca registrada de Sun para el uso de la marca Java insiste en que todas las implementaciones sean "compatibles". Esto dio lugar a una disputa legal con Microsoft despu??s de que Sun afirm?? que la implementaci??n de Microsoft no apoy?? RMI o JNI y hab??a a??adido caracter??sticas espec??ficas de la plataforma de los suyos. Sun demand?? en 1997, y en 2001 gan?? una compensaci??n de US $ 20 millones, as?? como una orden de la corte hacer cumplir los t??rminos de la licencia de Sun. Como resultado, Microsoft barcos ya no de Windows con Java.
Independiente de la plataforma Java es esencial para Java EE, y una validaci??n m??s rigurosa es necesaria para certificar una implementaci??n. Este entorno permite a las aplicaciones de servidor portables.
Rendimiento
Los programas escritos en Java tienen una reputaci??n de ser m??s lento y que requiere m??s memoria que los escritos en C ++ . Sin embargo, la velocidad de ejecuci??n de programas Java mejor?? significativamente con la introducci??n de Compilaci??n en 1997/1998 para Just-in-time Java 1.1, la adici??n de las caracter??sticas del lenguaje de apoyo mejor an??lisis de c??digo (como clases internas, la clase StringBuffer, afirmaciones opcionales, etc.), y optimizaciones en la propia m??quina virtual Java, como HotSpot convertirse en el valor predeterminado para la JVM de Sun en 2000. En diciembre de 2012, microbenchmarks muestran Java 7 es aproximadamente 44% m??s lento que C ++.
Algunas plataformas ofrecen apoyo directo al hardware para Java; hay microcontroladores que se pueden ejecutar Java en hardware en lugar de software Java m??quina virtual, y Procesadores ARM basado pueden tener soporte de hardware para ejecutar bytecode de Java a trav??s de su Opci??n Jazelle.
La gesti??n autom??tica de memoria
Java utiliza una recolector de basura autom??tico para la gesti??n de memoria en el ciclo de vida del objeto. El programador determina cu??ndo se crean los objetos, y el tiempo de ejecuci??n de Java se encarga de recuperar la memoria una vez que los objetos ya no est??n en uso. Una vez no hay referencias a un objeto se mantienen, la memoria inalcanzable hace elegible para ser liberado autom??ticamente por el recolector de basura. Algo similar a una p??rdida de memoria pueden producirse si el c??digo de un programador contiene una referencia a un objeto que ya no se necesitan, por lo general cuando los objetos que ya no son necesarios se almacenan en recipientes que todav??a est??n en uso. Si se llaman los m??todos de un objeto inexistente, se emite una "excepci??n de puntero nulo".
Una de las ideas detr??s de modelo de gesti??n autom??tica de memoria de Java es que los programadores se puede ahorrar la carga de tener que llevar a cabo la gesti??n de memoria manual. En algunos idiomas, la memoria para la creaci??n de objetos se asigna impl??citamente en la pila, o asignado de forma expl??cita y cancela la asignaci??n del mont??n. En este ??ltimo caso la responsabilidad de la gesti??n de memoria reside en el programador. Si el programa no desasignar un objeto, una p??rdida de memoria. Si el programa intenta acceder o liberar memoria que ya ha sido desasignado, el resultado es indefinido y dif??cil de predecir, y el programa es probable que se vuelva inestable y / o accidente. Esto puede remediarse en parte por el uso de punteros inteligentes, pero estos se suman los gastos generales y la complejidad. Tenga en cuenta que la recolecci??n de basura no evita p??rdidas de memoria "l??gicas", es decir, aquellos en los que la memoria todav??a est?? referenciada pero nunca utilizado.
La recolecci??n de basura puede ocurrir en cualquier momento. Lo ideal es que se producir?? cuando un programa est?? inactivo. Est?? garantizado que se activar?? si hay suficiente memoria libre en el mont??n de asignar un nuevo objeto; esto puede causar un programa para detener moment??neamente. Gesti??n de memoria expl??cita no es posible en Java.
Java no soporta C estilo / C ++ aritm??tica de punteros, donde las direcciones de objetos y enteros sin signo (enteros normalmente largas) se pueden utilizar indistintamente. Esto permite que el recolector de basura para reubicar objetos referenciados y garantiza la seguridad y la seguridad de tipo.
Al igual que en C ++ y otros lenguajes orientados a objetos, variables de Java tipos de datos primitivos no son objetos. Los valores de los tipos primitivos o bien se almacenan directamente en los campos (para objetos) o en el Stack (para los m??todos) en lugar de en el mont??n, como com??nmente cierto para los objetos (pero v??ase Escapar de an??lisis). Esta fue una decisi??n consciente por parte de los dise??adores de Java por motivos de rendimiento. Debido a esto, Java no se considera que es un lenguaje de programaci??n orientado a objetos puro. Sin embargo, a partir de Java 5.0, autoboxing permite a los programadores a proceder como si los tipos primitivos eran instancias de su clase contenedora.
Java contiene varios tipos de recolectores de basura. De forma predeterminada, utiliza el HotSpot Concurrente colector de barrido Marcos, tambi??n conocido como el Garbage Collector CMS. Sin embargo, tambi??n hay varios otros recolectores de basura que pueden ser utilizados para gestionar el Mont??n. Para el 90% de las aplicaciones en Java, el Garbage Collector CMS es lo suficientemente bueno.
Sintaxis
La sintaxis de Java se deriva en gran parte de C ++ . A diferencia de C ++, que combina la sintaxis estructurada, gen??rico, y la programaci??n orientada a objetos, Java fue construido casi exclusivamente como un lenguaje orientado a objetos. Todo el c??digo est?? escrito dentro de una clase, y todo es un objeto, con la excepci??n de los tipos de datos simples (por ejemplo, n??meros enteros, n??meros de coma flotante, valores booleanos y caracteres), que no son clases por razones de rendimiento.
A diferencia de C ++, Java no soporta operador sobrecargar o herencia m??ltiple para las clases. Esto simplifica el lenguaje y ayuda en la prevenci??n de errores potenciales y dise??o anti-patr??n.
Java utiliza m??todos de comentarios similares a C ++. Hay tres estilos diferentes de observaciones: un solo estilo de la l??nea marcada con dos barras ( //
), un estilo de l??nea m??ltiple se abri?? con /*
y cierran con */
, y el Javadoc comentando estilo abierto con /**
y cerr?? con */
. El estilo Javadoc de comentar permite que el usuario ejecute el archivo ejecutable Javadoc establecer una documentaci??n para el programa.
Ejemplo:
// Este es un ejemplo de una sola l??nea de comentario mediante dos barras / * Este es un ejemplo de un comentario de varias l??neas usando la barra y asterisco. Este tipo de comentario se puede utilizar para contener una gran cantidad de informaci??n o desactivar c??digo, pero es muy importante recordar para cerrar el comentario. * / / ** * Este es un ejemplo de un comentario Javadoc; Javadoc puede establecer una documentaci??n * A partir de este texto. * / / ** Finalmente, un ejemplo de un m??todo escrito en Java, envuelto en una clase. * / fibsandlies paquete; java.util.HashMap importaci??n; public class FibCalculator extiende Fibonacci implementa Calculadora { HashMap est??tico privado <Integer, Integer> memoized = new HashMap <Integer, Integer> (); / ** Dado un n??mero FIBINDEX no negativo, devoluciones, * El n??mero en??simo Fibonacci, donde N es igual FIBINDEX. *param FibIndex El ??ndice del n??mero de Fibonacci *return El propio n??mero de Fibonacci * / @ Override public static int fibonacci (int fibIndex) { si (memoized. contains (fibIndex)) { volver memoized conseguir (fibIndex).; } Else { int respuesta = fibonacci (fibIndex - 1) + fibonacci (fibIndex - 2); . memoized poner (fibIndex, respuesta); respondamos; } } }
Ejemplos
Hola mundo
El tradicional Hola mundo puede ser escrito en Java como:
clase HelloWorldApp { main (String [] args) {static void p??blicos Sistema cabo println ("Hello World!");.. // Muestra la cadena. } }
Para comparar esto con otros lenguajes de programaci??n ver la lista de hola ejemplos de programas mundo.
Los archivos de origen deber??n llevar el nombre de la clase p??blica que contienen, a??adiendo el sufijo .java
, por ejemplo, HelloWorldApp.java
. En primer lugar, debe ser compilado en bytecode, utilizando un Compilador Java, produciendo un archivo llamado HelloWorldApp.class
. S??lo entonces puede ser ejecutado, o 'lanz??'. El archivo fuente de Java s??lo puede contener una clase p??blica, pero puede contener varias clases con distintos de acceso p??blico y cualquier n??mero de p??blico clases internas.
Una class
que no se declara public
puede ser almacenado en cualquier archivo .java. El compilador generar?? un archivo por cada clase que se define en el archivo de origen. El nombre del archivo de clase es el nombre de la clase, con .class adjuntas. Para la generaci??n de archivo de clase, clases an??nimas son tratados como si su nombre fuera la concatenaci??n del nombre de su clase envolvente, a $, y un entero.
La palabra clave public
indica que un m??todo puede ser llamado desde c??digo en otras clases, o que una clase puede ser utilizada por las clases fuera de la jerarqu??a de clases. La jerarqu??a de clases est?? relacionado con el nombre del directorio en el que se encuentra el archivo .java.
La palabra clave static
delante de un m??todo indica una m??todo est??tico, que se asocia s??lo con la clase y no con cualquier instancia espec??fica de dicha clase. S??lo los m??todos est??ticos pueden invocarse sin una referencia a un objeto. Los m??todos est??ticos no pueden acceder a los miembros de la clase que no son tambi??n est??tica.
La palabra clave void
indica que el m??todo main no devuelve ning??n valor a la persona que llama. Si un programa Java es para salir con un c??digo de error, debe llamar System.exit () de forma expl??cita.
El nombre del m??todo " main
"no es una palabra clave en el lenguaje Java. Es simplemente el nombre del m??todo, el lanzador Java llama a pasar el control al programa. Clases Java que se ejecutan en entornos administrados como applets y Empresa JavaBean no utiliza o necesita un main()
m??todo. Un programa Java puede contener varias clases que tienen main
m??todos, lo que significa que la m??quina virtual tiene que ser expl??citamente dicho qu?? clase de lanzar desde.
El m??todo main debe aceptar una gama de String
objetos. Por convenci??n, se le hace referencia como args
aunque cualquier otro nombre identificador legal podr?? utilizarse. Desde Java 5, el principal m??todo tambi??n se puede utilizar argumentos variables, en forma de public static void main(String... args)
, lo que permite el m??todo principal para ser invocados con un n??mero arbitrario de String
argumentos. El efecto de esta declaraci??n alternativa es sem??nticamente id??ntico (el args
par??metro es todav??a una serie de String
objetos), pero permite una sintaxis alternativa para la creaci??n y pasando la matriz.
El lanzador lanza Java Java mediante la carga de una clase determinada (especificado en la l??nea de comandos o como un atributo en una JAR) y comenzar su public static void main(String[])
m??todo. Stand-alone programas deben declarar este m??todo de forma expl??cita. El String[] args
par??metro es un gama de String
objetos que contienen los argumentos que se pasan a la clase. Los par??metros a main
se pasan a menudo por medio de una l??nea de comando.
La impresi??n es parte de una librer??a est??ndar de Java: La System
clase define un campo est??tico p??blico llamado out
. El out
objeto es una instancia de la PrintStream
clase y proporciona muchos m??todos para la impresi??n de datos para la salida est??ndar, incluyendo println(String)
que tambi??n a??ade una nueva l??nea a la cadena pasada.
La cadena "Hola, mundo!" se convierte autom??ticamente en un objeto String por el compilador.
Un ejemplo m??s amplia
// OddEven.java javax.swing.JOptionPane importaci??n; public class OddEven { / ** * "Entrada" es el n??mero que el usuario da a la computadora * / entrada privada int; // un n??mero entero ("int" significa entero) / ** * Este es el m??todo constructor. Se obtiene la llamada cuando un objeto del tipo OddEven Est?? siendo creado *. * / OddEven p??blico () { / * * En la mayor??a de los programas de Java constructores pueden inicializar objetos con valores por defecto, o crear * otros objetos que este objeto podr??a utilizar para realizar sus funciones. En algunos programas de Java, la * Constructor puede ser simplemente una funci??n vac??a si no tiene que ser inicializado antes de la * Funcionamiento del objeto. En el caso de este programa, un constructor vac??o ser??a suficiente. * Un constructor debe existir; Sin embargo, si el usuario no poner uno en el compilador * Crear?? una vac??a. * / } / ** * Este es el m??todo principal. Se pone llama cuando esta clase se ejecuta a trav??s de un int??rprete de Java. * Argumentos de la l??nea de comandos argsparam (sin usar) * / static void main (String final [] args) {p??blico / * * Esta l??nea de c??digo crea una nueva instancia de esta clase que se llama "n??mero" (tambi??n conocido como * Object) y lo inicializa llamando al constructor. La siguiente l??nea de c??digo llamadas * El "showDialog ()" m??todo, que produce la solicitud para pedir por un n??mero * / N??mero OddEven = new OddEven (); . N??mero showDialog (); } public void showDialog () { / * * "Tratar" se asegura de que nada salga mal. Si algo hace, * El int??rprete salta para "atrapar" a ver de qu?? se debe hacer. * / try { / * * El c??digo de abajo aparece un JOptionPane, que es un cuadro de di??logo * La cadena devuelta por el m??todo "showInputDialog ()" se convierte en * Un entero, haciendo que el programa lo tratan como un n??mero en lugar de una palabra. * Despu??s de eso, este m??todo requiere un segundo m??todo, calcular () que lo har?? * Mostrar "Incluso" o "impar". * / .. esta entrada = entero parseInt (. JOptionPane showInputDialog ("Por favor, introduzca un n??mero.")); este c??lculo (.); } Catch (e NumberFormatException final) { / * * Conseguir en el bloque catch significa que hubo un problema con el formato de * El n??mero. Probablemente algunas letras se escriben en lugar de un n??mero. * / . Sistema de errar println ("ERROR: Entrada no v??lida Por favor, escriba un valor num??rico..."); } } / ** * Cuando esto se llama, env??a un mensaje a la int??rprete. * El int??rprete suele mostrar en el s??mbolo del sistema (para usuarios de Windows) * O el terminal (para usuarios de * nix). (Asumiendo que est?? abierta) * / private void calcular () { if ((esta entrada.% 2) == 0) { JOptionPane showMessageDialog (null, "incluso."); } Else { . JOptionPane showMessageDialog (null, "impar"); } } }
- La declaraci??n de importaci??n importa el
JOptionPane
clase desde eljavax.swing
paquete. - El
OddEven
clase declara una solaprivado
campo de tipoint
nombradoinput
. Cada instancia de laOddEven
clase tiene su propia copia de lainput
campo. La declaraci??n privada significa que ninguna otra clase puede acceder (leer o escribir) lainput
campo. -
OddEven()
es unpublic
constructor. Constructores tener el mismo nombre que la clase envolvente que se declaran en, ya diferencia de un m??todo, no tienen el tipo de retorno. Un constructor se utiliza para inicializar un objeto que es una instancia reci??n creada de la clase. - El
calculate()
m??todo se declara sin elstatic
palabra clave. Esto significa que el m??todo se invoca usando una instancia espec??fica de laOddEven
clase. (El de referencia utilizado para invocar el m??todo se pasa como un par??metro no declarada de tipoOddEven
llamadothis
). El m??todo de prueba la expresi??ninput % 2 == 0
utilizando elif
la palabra clave para ver si el resto de dividir lainput
campo perteneciente a la instancia de la clase por dos es cero. Si esta expresi??n es verdadera, entonces imprime Incluso; si esta expresi??n es falsa imprime impar. (Lainput
campo se puede acceder de forma equivalente comothis.input
, que utiliza expl??citamente la no declaradothis
par??metro.) -
OddEven number = new OddEven();
declara un objeto local variable de referencia en elmain
m??todo denominadonumber
. Esta variable puede contener una referencia a un objeto de tipoOddEven
. La declaraci??n inicializanumber
creando primero una instancia de laOddEven
clase, utilizando elnew
palabra clave y elOddEven()
constructor y asignando a esta instancia a la variable. - La declaraci??n
number.showDialog();
llama al m??todo de calcular. La instancia deOddEven
objeto referenciado por elnumber
variable local se utiliza para invocar el m??todo y pasa como el no declaradothis
par??metro alcalculate
m??todo. -
input = Integer.parseInt(JOptionPane.showInputDialog("Please Enter A Number"));
es una declaraci??n que convierte el tipo de cadena a la tipo de datos primitivo int mediante el uso de una funci??n de utilidad en el primitiva Entero clase contenedora.
Clases especiales
Applet
Applets Java son programas que est??n incrustados en otras aplicaciones, por lo general en una p??gina Web que se muestra en un Navegador web.
// Hello.java javax.swing.JApplet importaci??n; java.awt.Graphics de importaci??n; public class Hola extiende JApplet { p??blica paintComponent void (Gr??ficos ??ltima g) { g drawString ("??Hola, mundo!", 65, 95).; } }
Los import
declaraciones dirigen el Compilador de Java para incluir el javax.swing.JApplet
y java.awt.Graphics
clases en la compilaci??n. La sentencia import permite estas clases para hacer referencia en el c??digo fuente utilizando el nombre de clase simple (es decir JApplet
) en lugar del nombre completo de la clase (es decir javax.swing.JApplet
).
El Hello
clase extends
( subclases) la JApplet
(Java Applet) de clase; la JApplet
clase proporciona el marco para la aplicaci??n host para visualizar y controlar la ciclo de vida del applet. El JApplet
clase es un JComponent (Java gr??fica de componentes), que proporciona el applet con la capacidad de mostrar un interfaz gr??fica de usuario (GUI) y responder a usuario eventos.
El Hello
clase anula el paintComponent(Graphics)
m??todo (que se indica, adem??s, con la anotaci??n, acompa??ada, de JDK 1.5, Override
) heredada de la Contenedor
superclase para proporcionar el c??digo para mostrar el applet. El paintComponent()
m??todo se pasa un Graphics
objeto que contiene el contexto gr??fico utilizado para mostrar el applet. El paintComponent()
m??todo llama al contexto gr??fico drawString(String, int, int)
m??todo para visualizar el "Hola, mundo!" cuerda a la pixel desplazamiento de ( 65, 95
) de la esquina superior izquierda de la pantalla del applet.
"Http://www.w3.org/TR/html4/strict.dtd"> <Html> <Head> <Title> Hello World Applet </ title> </ Head> <Body> <Applet code = "width Hello.class" = "200" height = "200"> </ Applet> </ Body> </ Html>
Un applet se coloca en una Documento HTML utilizando el