mirror of
https://github.com/php/doc-es.git
synced 2026-03-28 09:22:15 +01:00
git-svn-id: https://svn.php.net/repository/phpdoc/es/trunk@294494 c90b9560-bf6c-de11-be94-00142212c4b1
151 lines
5.1 KiB
XML
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
|
|
-->
|
|
|