1
0
mirror of https://github.com/php/doc-es.git synced 2026-03-28 09:22:15 +01:00
Files
archived-doc-es/reference/java/examples.xml
Pedro Antonio Gil Rodríguez 358f42418e Modificaciones menores
git-svn-id: https://svn.php.net/repository/phpdoc/es/trunk@294494 c90b9560-bf6c-de11-be94-00142212c4b1
2010-02-04 02:48:17 +00:00

151 lines
5.1 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision: 288721 $ -->
<!-- EN-Revision: af4410a7e15898c3dbe83d6ea38246745ed9c6fb Maintainer: seros Status: ready -->
<chapter xml:id="java.examples" xmlns="http://docbook.org/ns/docbook">
&reftitle.examples;
<section xml:id="java.examples-basic">
<para>
<example>
<title>Ejemplo de Java</title>
<programlisting role="php">
<![CDATA[
<?php
// obtener una instancia de la clase de Java java.lang.System en PHP
$system = new Java('java.lang.System');
// demostrar el acceso a las propiedades
echo 'Versión de Java=' . $system->getProperty('java.version') . '<br />';
echo 'Vendedor de Java=' . $system->getProperty('java.vendor') . '<br />';
echo 'SO=' . $system->getProperty('os.name') . ' ' .
$system->getProperty('os.version') . ' on ' .
$system->getProperty('os.arch') . ' <br />';
// ejemplo de java.util.Date
$formatter = new Java('java.text.SimpleDateFormat',
"EEEE, MMMM dd, yyyy 'at' h:mm:ss a zzzz");
echo $formatter->format(new Java('java.util.Date'));
?>
]]>
</programlisting>
</example>
<example>
<title>Ejemplo de AWT</title>
<programlisting role="php">
<![CDATA[
<?php
// Este ejemplo sólo está pensado para ejecutarse usando CLI.
$frame = new Java('java.awt.Frame', 'PHP');
$button = new Java('java.awt.Button', '¡Hola Mundo Java!');
$frame->add('North', $button);
$frame->validate();
$frame->pack();
$frame->visible = True;
$thread = new Java('java.lang.Thread');
$thread->sleep(10000);
$frame->dispose();
?>
]]>
</programlisting>
</example>
Notas:
<itemizedlist>
<listitem>
<simpara>
<literal>new Java()</literal> creará una instancia de una clase si
está disponible un constructor apropiado. Si no se pasan parámetros y
el constructor predeterminado es útil ya que proporciona acceso a clases
como <literal>java.lang.System</literal> la cuál expone la mayoría de sus
funcionalidades a través de métodos estáticos.
</simpara>
</listitem>
<listitem>
<simpara>
Al acceder a un miembro de una instancia se mirará primero por propiedades bean
y después por campos públicos. En otras palabras, <literal>print $date.time</literal>
primero intentará ser resuelto como <literal>$date.getTime()</literal>,
después como <literal>$date.time</literal>.
</simpara>
</listitem>
<listitem>
<simpara>
Los miembros estáticos y las instancias se pueden acceder en un objeto con
la misma sintaxis. Además, si el objeto java es del tipo
<literal>java.lang.Class</literal>, se puede acceder a los miembros estáticos de la clase
(campos y métodos).
</simpara>
</listitem>
<listitem>
<para>
El lanzamiento de excepciones resulta en advertencias en PHP, y resultados &null;. Las
advertencias se pueden eliminar prefijando la llamada al método con un
signo "@". Las siguientes API se pueden usar para recuperar y reiniciar
el último error:
<itemizedlist>
<listitem><simpara><function>java_last_exception_get</function></simpara></listitem>
<listitem><simpara><function>java_last_exception_clear</function></simpara></listitem>
</itemizedlist>
</para>
</listitem>
<listitem>
<simpara>
La resolución de sobrecarga es, en general, un problema grave dadas las
diferencias de tipos entre dos lenguajes. La extensión Java
de PHP emplea una sencilla, pero muy efectiva, métrica para
determinar qué sobrecarga es la que mejor coincide.
</simpara>
<simpara>
Además, los nombres de los métodos en PHP no son sensibles a mayúsculas-minúsculas,
incrementando potencialmente el número de sobrecargas a seleccionar.
</simpara>
<simpara>
Una vez que un método es seleccionado, los parámetros son coaccionados si es necesario,
posiblemente con una pérdida de infomarción (ejemplo: los números de coma flotante de
precisión doble serán convertidos a booleanos).
<!-- FIXME Why aren't java-doubles converted to PHP-floats? Is this
correct? -->
</simpara>
</listitem>
<listitem>
<simpara>
En la tradición de PHP, las matrices y tablas hash se pueden usar
intercambiablemente. Observe que las tablas hash en PHP sólo pueden ser
indexadas por enteros o cadenas; y que las matrices de tipos primitivos
en Java no se puede interpolar. También observe que estos constructores son
pasados por valor, por lo que puede ser caro en términos de memoria y tiempo.
</simpara>
</listitem>
</itemizedlist>
</para>
</section>
</chapter>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->