Java

Descargar como ppt, pdf o txt
Descargar como ppt, pdf o txt
Está en la página 1de 106

c c

 c
c 
  
  
c
 
 

     
 

 
 
 

  
   
         
 
  
  
! "  # $   
% #$  &

Este primer enfoque le da a Java una de sus más interesantes características: La


portabilidad, dado que Java tenia que funcionar en numerosos tipos de CPUs,
basándose en el lenguaje de programación C++ y por tanto se pensó para ser
independiente de la plataforma sobre la que funcione. Esta característica es muy
posiblemente la que ha permitido a Java convertirse actualmente en el lenguaje por
excelencia para la creación de aplicaciones en Internet.
  

La expansión de Java se desarrollo principalmente cuando Netscape Inc. Integro en


su navegador Netscape Navigator el código Java para su utilización en el que fue un
éxito debido a sus características y su fácil acceso al sector de la Word Wide Web.

Este salto de Java para convertirse en un lenguaje de programación para


computadores se da definitivamente en 1995 cuando en la versión 2 del navegador
web netscape se incluye un interprete para este lenguaje, produciendo de este modo
una auténtica revolución en Internet.
  
Con este nuevo enfoque Java sigue creciendo y saca su versión 1.1 en 1997 con
muchas mejoras y adaptaciones, fruto de una revisión sustancial del lenguaje. Java
1.2 aparece a finales de 1998 y más tarde se rebautizará como Java 2.

Sun describe a Java como ´simple,


orientado a objetos, distribuido,
interpretado, robusto, seguro, de
arquitectura neutra, portable, de altas
prestaciones, multitarea y dinámico"
  
LENGUAJE SIMPLE

Java posee una curva de aprendizaje muy rápida. Resulta relativamente sencillo
escribir applets interesantes desde el principio. Todos aquellos familiarizados con
C++ encontrarán que Java es más sencillo, ya que se han eliminado ciertas
características, como los punteros. Debido a su semejanza con C y C++, y dado que
la mayoría de la gente los conoce aunque sea de forma elemental, resulta muy fácil
aprender Java. Los programadores experimentados en C++ pueden migrar muy
rápidamente a Java y ser productivos en poco tiempo.

ORIENTADO A OBJETOS

Java fue diseñado como un lenguaje orientado a objetos desde el principio. Los
objetos agrupan en estructuras encapsuladas tanto sus datos como los métodos (o
funciones) que manipulan esos datos. La tendencia del futuro, a la que Java se
suma, apunta hacia la programación orientada a objetos, especialmente en
entornos cada vez más complejos y basados en red.
  
c
 
  
c
 
DISTRIBUIDO

Java proporciona una colección de clases para su uso en aplicaciones de red, que
permiten abrir sockets y establecer y aceptar conexiones con servidores o
clientes remotos, facilitando así la creación de aplicaciones distribuidas.

INTERPRETADO Y COMPILADO A LA VEZ

Java es compilado, en la medida en que su código fuente se transforma en una


especie de código máquina, los bytecodes, semejantes a las instrucciones de
ensamblador.
Por otra parte, es interpretado, ya que los bytecodes se pueden ejecutar
directamente sobre cualquier máquina a la cual se hayan portado el intérprete y
el sistema de ejecución en tiempo real (run-time).
  
c
 
ROBUSTO

Java fue diseñado para crear software altamente fiable. Para ello proporciona
numerosas comprobaciones en compilación y en tiempo de ejecución. Sus
características de memoria liberan a los programadores de una familia entera de
errores (la aritmética de punteros), ya que se ha prescindido por completo los
punteros, y la recolección de basura elimina la necesidad de liberación explícita de
memoria.

SEGURO

Dada la naturaleza distribuida de Java, donde las applets se bajan desde cualquier
punto de la Red, la seguridad se impuso como una necesidad de vital importancia. A
nadie le gustaría ejecutar en su ordenador programas con acceso total a su sistema,
procedentes de fuentes desconocidas. Así que se implementaron barreras de
seguridad en el lenguaje y en el sistema de ejecución en tiempo real.
  
c
 
INDIFERENTE A LA ARQUITECTURA

Java está diseñado para soportar aplicaciones que serán ejecutadas en los más
variados entornos de red, desde Unix a Windows Nt, pasando por Mac y estaciones
de trabajo, sobre arquitecturas distintas y con sistemas operativos diversos. Para
acomodar requisitos de ejecución tan variopintos, el compilador de Java genera
bytecodes: un formato intermedio indiferente a la arquitectura diseñado para
transportar el código eficientemente a múltiples plataformas hardware y software.
El resto de problemas los soluciona el intérprete de Java.

PORTABLE

La indiferencia a la arquitectura representa sólo una parte de su portabilidad.


Además, Java especifica los tamaños de sus tipos de datos básicos y el
comportamiento de sus operadores aritméticos, de manera que los programas son
iguales en todas las plataformas.
Estas dos últimas características se conocen como la %'  (    (JVM).
  
c
 
ALTO RENDIMIENTO
Multihebra

Hoy en día ya se ven como terriblemente limitadas las aplicaciones que sólo
pueden ejecutar una acción a la vez. Java soporta sincronización de múltiples
hilos de ejecución (  $   ) a nivel de lenguaje, especialmente útiles en la
creación de aplicaciones de red distribuidas. Así, mientras un hilo se encarga de
la comunicación, otro puede interactuar con el usuario mientras otro presenta
una animación en pantalla y otro realiza cálculos.

DINÁMICO

El lenguaje Java y su sistema de ejecución en tiempo real son dinámicos en la fase


de enlazado. Las clases sólo se enlazan a medida que son necesitadas. Se pueden
enlazar nuevos módulos de código bajo demanda, procedente de fuentes muy
variadas, incluso desde la Red.
  
c
 
PRODUCE APPLETS

Java puede ser usado para crear dos tipos de programas: aplicaciones
independientes y applets.

Las aplicaciones independientes se comportan como cualquier otro programa


escrito en cualquier lenguaje, como por ejemplo el navegador de Web HotJava,
escrito íntegramente en Java.

Por su parte, las applets son pequeños programas que aparecen embebidos en las
páginas Web, como aparecen los gráficos o el texto, pero con la capacidad de
ejecutar acciones muy complejas, como animar imágenes, establecer conexiones
de red, presentar menús y cuadros de diálogo para luego emprender acciones,
etc.
 !  "
La tecnología Java se creó como una herramienta de programación para ser
usada en un proyecto de set-top-box en una pequeña operación denominada
the Green Project en Sun Microsystems en el año 1991. El equipo (Green
Team), compuesto por trece personas y dirigido por James Gosling, trabajó
durante 18 meses en Sand Hill Road en Menlo Park en su desarrollo.

El lenguaje se denominó inicialmente Oak (por un roble que había fuera de


la oficina de Gosling), luego pasó a denominarse Green tras descubrir que
Oak era ya una marca comercial registrada para adaptadores de tarjetas
gráficas y finalmente se renombró a Java
 !  "
)* &+ (23 de enero de 1996) ³ Primer lanzamiento.

)* & (19 de febrero de 1997)

,- &, (8 de diciembre de 1998) ³ Nombre clave "   . Esta y las
siguientes versiones fueron recogidas bajo la denominación   , y el
nombre "J2SE" (Java 2 Platform, Standard Edition), reemplazó a JDK para
distinguir la plataforma base de J2EE (Java 2 Platform, Enterprise Edition) y
J2ME (Java 2 Platform, Micro Edition).

,- &. (8 de mayo de 2000) ³ Nombre clave * .

,- &/ (6 de febrero de 2002) ³ Nombre Clave %  . Este fue el primer


lanzamiento de la plataforma Java desarrollado bajo el Proceso de la
Comunidad Java como JSR 59

,- 0&+ (30 de septiembre de 2004) ³ Nombre clave: !  . .


  3 
Entre noviembre de 2006 y mayo de 2007, Sun Microsystems liberó la mayor
parte de sus tecnologías Java bajo la Licencia pública general de GNU, de
acuerdo con las especificaciones del Java Community Process, de tal forma
que prácticamente todo el Java de Sun es ahora software libre (aunque la
biblioteca de clases de Sun que se requiere para ejecutar los programas Java
todavía no es software libre).
#$ 

!$
-   " 
È Los programas más simples escritos en
lenguajes imperativos suelen realizar
tres tareas de forma secuencial:

È Entrada de datos
È Procesamiento de los datos
È Salida de resultados
-   " 
- Un programa en Java presenta la estructura habitual en los lenguajes
OOP
(lenguajes orientados a objetos).

- El fichero fuente tendrá extensión .java, mientras que el compilado


tendrá extensión .class.

La estructura de los programas escritos en Java está sujeta a la siguientes


reglas principales:

- Cada clase debe encontrarse en un fichero diferente.

- El nombre del fichero debe ser el mismo que el de la clase, y la extensión


debe ser &3 

- Adicionalmente, los programas java comienzan su ejecución por la


función .
Esta función debe Pertenecer como es lógico a una clase, ya que en java
nada puede estar fuera de una clase.
-   " 
-   " 
En realidad, Java es un lenguaje de programación orientada
a objetos y todo debe estar dentro de una clase, incluida la
función ´mainµ, tal como muestra el siguiente programa«

public class MiPrimerPrograma


{
public static void main (String args[])
{
System.out.println("Mensaje por pantallaµ);
}
}
-   " 
a
   &a



Las características propias del lenguaje JAVA hacen que


además de poder desarrollar aplicaciones que se ejecutan en el
intérprete local, se puedan desarrollar módulos descargables a
través de una página web y ejecutables en la JVM (Java Virtual
Machine) del navegador. Estos módulos reciben el nombre de
a

.

Veamos ejemplos sencillos


de cada tipo de desarrollo
para apreciar las diferencias
de estructura gramatical.
-   " 
$ !
%&!
 "
$ ! %&! 
"

È -         4

5 6    
5  
5 7  
5 -8
 
5 ( 
5 !
'  
5 9     
5 "    
- ' 
3 
6    

Un identificador es un nombre que identifica a una variable, a un


método o función miembro, a una clase. Y entre las reglas
fundamentales como todo lenguaje de programación son:

È No se pueden utilizar las palabras reservadas como


identificadores
È Distingue entre letras mayúsculas y minúsculas
È No puede incluir el carácter espacio en blanco
È Puede incluir, pero no comenzar por un número
!
     9  -3


      9 : 


   ;   <  9    a



      :   ;     a  (  9

     : 


   ;    

 :

    -  ;   "6%a a9


- ' 
3 
 

Una sentencia es una orden que se le da al programa para realizar una tarea
específica, esta puede ser: mostrar un mensaje en la pantalla, declarar una
variable (para reservar espacio en memoria), inicializarla, llamar a una función,
etc.

 =>

 3  & &?>
 & &
@-
 
 @>

Otra característica bien importante en java es que volvemos a utilizar el ; para


terminar cualquier sentencia.
También cabe recordar que el editor del IDE nos ayudará a tabular todo nuestro
código fuente sin apenas darnos cuenta.
- ' 
3 

7  


Un bloque de código es un grupo de sentencias que se comportan
como una unidad.
También volvemos a utilizar las mismas llaves como lo hacíamos en c.

A
B
B
C
- ' 
3 
-8
 
Una expresión es todo aquello que se puede poner a la derecha del operador
asignación =.

8=,.>
=8D++E/>
 =  &   a  ,&0>
<   =<  ++,++.++>

La primera expresión asigna un valor a la variable x.


La segunda, realiza una operación
La tercera, es una llamada a una función miembro calcularArea desde un objeto
circulo de una clase determinada
La cuarta, reserva espacio en memoria para un objeto de la clase Rectángulo
mediante la llamada a una función especial denominada constructor&
- ' 
3 
( 

Una variable es un nombre que se asocia con una porción de la memoria del ordenador, en la
que se guarda el valor asignado a dicha variable.
Java tiene tres tipos de variables:

² de instancia
² de clase
² Locales

Las variables de instancia o miembros dato, se usan para guardar los atributos de un objeto
particular.
- ' 3 
( 

Las variables de clase o miembros dato estáticos son similares a las variables de
instancia, con la excepción de que los valores que guardan son los mismos para
todos los objetos de una determinada clase.
En el siguiente ejemplo, PI es una variable de clase y radio es una variable de
instancia. PI guarda el mismo valor para todos los objetos de la clase Circulo, pero
el radio de cada círculo puede ser diferente

 9  
A
     "6=.&/F>
   >
EE&&&
C
- ' 
3 
( 

G         :              H& -


    3
 '               a     
       '    3     9  &     
8            $             
  &

 9  
A
EE&&&
    a  A
   ="6?  ?  >
   >
C
C
- ' 
3 
È Tipos básicos de datos

È Los tipos básicos que mas se utilizan en la mayor parte de los


programas son boolean, int y double.

!
 )
 

int Tamaño 32 bits. El intervalo de valores va desde -231 hasta 231-1 (-2147483648 a
2147483647)

boolean Tiene dos valores true o false

float Tamaño 32 bits. Números en coma flotante de simple precisión. Estándar IEEE 754-
1985 (de 1.40239846e²45f a 3.40282347e+38f)
- ' 
3 
Variables booleanas
En lenguaje Java existe el tipo de dato boolean. Una variable booleana
solamente puede guardar uno de los dos posibles valores: true (verdadero) y
false (falso).

  = >


A&&&C
 = >

Variables enteras

Una variable entera consiste en cualquier combinación de cifras precedidos por


el signo más (opcional), para los positivos, o el signo menos, para los negativos.
Son ejemplos de números enteros:
,II.F+/FJKI
, .F+/FJKI.0J

Ejemplo de declaración de variable enteras tenemos:

  =,+0>
- ' 
3 
Valores constantes

Cuando se declara una variable de tipo final, se ha de inicializar y cualquier


intento de modificarla en el curso de la ejecución del programa da lugar a un
error en tiempo de compilación.
Normalmente, las constantes de un programa se suelen poner en letras
mayúsculas, para distinguirlas de las que no son constantes. He aquí ejemplos de
declaración de constantes.

final double PI=3.141592653589793;

final int MAX_DATOS=150;

Variables en coma flotante

Las variables del tipo float o double (flotante) se usan para guardar números en
memoria que tienen parte entera y parte decimal.

 "6=.&/0>
 =&KJ+0=,&KJ>
 =&KJ+0=,&KJ
- ' 
3 
9     

Además de los ocho tipos de datos primitivos, las variables en Java pueden ser declaradas
par guardar una instancia de una clase. Las cadenas de caracteres o strings son
distintas en Java y en el lenguaje C/C++, en este último, las cadenas son arrays de
caracteres terminados en el carácter '\0'. Sin embargo, en Java son objetos de la clase
String.

   3=@-


 
 @>

Empleando strings, el primer programa quedaría de la forma equivalente

  "  a

A

      LM A
EE
   3
   3=@-
 
 @>
 & &
  3>
C
C

En una cadena se pueden insertar caracteres especiales como el carácter tabulador '\t' o el
- ' 
3 

Palabras claves o restringidas

Las palabras reservadas se pueden clasificar en las siguientes categorías:

È Tipos de datos: boolean, float, double, int, char


È Sentencias condicionales: if, else, switch
È Sentencias iterativas: for, do, while, continue
È Tratamiento de las excepciones: try, catch, finally, throw
È Estructura de datos: class, interface, implements, extends
È Modificadores y control de acceso: public, private, protected, transient
È Otras: super, null, this.
- ' 3 
a    
  $ 

7  
 
 $ 

7  #  
 
    

7       

  8  $   

 $            

$     
 $

        $ IIII

9 R  $  : IIII

    " #  !$  IIII


  ' 
c !
È La Entrada/Salida estándar.
È La Entrada/Salida a través de fichero.
È Todas las operaciones de E/S en Java vienen proporcionadas
por el paquete estándar de la API de Java denominado 3  & &
  '   &
El acceso a la entrada y salida estándar es controlado por tres objetos que se crean
automáticamente al iniciar la aplicación:

È  & 

Este objeto implementa la entrada estándar (normalmente el teclado). Los


métodos que nos proporciona para controlar la entrada son:

 
#


È  & 

Este objeto implementa la salida estándar. Los métodos que nos proporciona
para
controlar la salida son:


 

 

È  &
  '  ! ()!
!
 $ 

En Java es posible utilizar dos tipos de ficheros 8   y dos tipos de
acceso a los ficheros      &

È Los ficheros de 8 están compuestos de caracteres legibles.


È Los    pueden almacenar cualquier tipos de datos (int, float, boolean,
etcétera).
È Una     implica tener que acceder a un elemento antes de acceder
al siguiente.
È Los ficheros de     permiten acceder a sus datos de una forma
aleatoria.

9   

En el paquete 3  &  existen varias clases de las cuales podemos crear instancias
de clases para tratar todo tipo de ficheros.

È R  
 
È R 6
 
È <  aR 
Ëc 
 
Mediante los objetos de esta clase escribimos en ficheros de texto de forma secuencial.
Presenta el método write() para la escritura en el fichero. Presenta varios formatos:

È   4


È   LM
È   LM  

-3


import java.io.*;
class CreaCarta
{
public static void main(String args[]) throws IOException
{
int c;
FileOutputStream f=new FileOutputStream("/carta.txt");
while( ( c=System.in.read() ) != -1 )
f.write( (char)c );
f.close();
}
C
Ëc c
 
Mediante los objetos de esta clase leemos de ficheros de texto de forma secuencial.

È   
È    LM
È    LM  

-3


import java.io.*;
class MuestraCarta
{
public static void main(String args[]) throws IOException
{
int c;
FileInputStream f=new FileInputStream("/carta.txt");
while( ( c=f.read() ) != -1 )
System.out.print( (char)c );
f.close();
}
}
  Ëc 
Mediante los objetos de esta clase utilizamos ficheros binarios mediante un acceso
aleatorio, tanto para lectura como para escritura.

%S!))-)-"Gaa%6-!
Cuenta con una serie de funciones para realizar el desplazamiento del puntero del fichero.

È R "  4Devuelve la posición actual del puntero del fichero.
È  #4 Coloca el puntero del fichero en la posición indicada por l. Un fichero
siempre empieza en la posición 0.
È #
7 4 Intenta saltar n bytes desde la posición actual.
È $4 Devuelve la longitud del fichero.
È  G$4 Establece a l el tamaño de este fichero.
È R )
 R)4 Devuelve el descriptor de este fichero.
%H 
La escritura del fichero se realiza con una función que depende el tipo de datos que se
desee escribir.

È void write( byte b[], int ini, int len ): Escribe len caracteres del vector b.
È void write( int i ): Escribe la parte baja de i (un byte) en el flujo.
È void writeBoolean( boolean b ): Escribe el boolean b como un byte.
È void writeByte( int i ): Escribe i como un byte.
È void writeBytes( String s ): Escribe la cadena s tratada como bytes, no caracteres.
È void writeChar( int i ): Escribe i como 1 byte.
È void writeChars( String s ): Escribe la cadena s.
È void writeDouble( double d ): Convierte d a long y le escribe como 8 bytes.
È void writeFloat( float f ): Convierte f a entero y le escribe como 4 bytes.
È void writeInt( int i ); Escribe i como 4 bytes.
È void writeLong( long v ): Escribe v como 8 bytes.
È void writeShort( int i ): Escribe i como 2 bytes.
È void writeUTF( String s ): Escribe la cadena s utilizando la codificación UTF-8.

Los métodos que escriben números de más de un byte escriben el primero su parte alta.
%S!))-G-9!<a

La lectura del fichero se realiza con una función que depende del tipo de datos que queremos
leer.

È    7 4 Lee un byte y devuelve false si vale 0 o true sino.
È   74 Lee y devuelve un byte.
È $   9$ 4 Lee y devuelve un caracter.
È    ) 4 Lee 8 bytes, y devuelve un double.
È    R 4 Lee 4 bytes, y devuelve un float.
È    R LM4 Lee bytes del fichero y los almacena en un vector b.
È    R LM    4 Lee len bytes del fichero y los almacena en un
vector b.
È   64 Lee 4 bytes, y devuelve un int.
È   G4 Lee 8 bytes, y devuelve un long.
È $   $ 4 Lee 2 bytes, y devuelve un short.
È    74 Lee 1 byte, y devuelve un valor de 0 a 255.
È    $ 4 Lee 2 bytes, y devuelve un valor de 0 a 65535.
È    !R4 Lee una cadena codificada con el formato UTF-8.
È #
7 4 Salta n bytes del fichero.

Si no es posible la lectura devuelven ²1


!% 
' % !
 

Es elemento básico de la POO.

Define la forma, y el comportamiento de un


objeto, de un miembro real o una entidad
abstracta y atributos de un grupo de objetos
de características similares.

En simples palabras una clase es una


´plantillaµ que describe un conjunto de
objetos con atributos y comportamiento
similares.
     
È -Nombre de la Clase
È -Métodos (Funciones)
È -Atributos (Datos)

En este ejemplo      es Coche, los H son


el comportamiento (Ej.: en reposo, en movimiento, en
reparación, etc.) y comparten ciertas características:    
( tamaño, peso, color, potencia del motor, etc. ).
  *
Para crear una clase sólo se necesita un archivo fuente que contenga la palabra clave
reservada   seguida del nombre de la clase ( identificador legal) y un bloque
delimitado por dos llaves para el cuerpo de la clase.

EJEMPLO DE CLASE:

L
 M 9  A
EE     H
&&&
C
 +  $!  
  

1. Todas las variables y funciones de   deben pertenecer a una clase. No hay


variables y funciones globales.

2. Si una clase deriva de otra (8), hereda todas sus variables y métodos.

3.   tiene una jerarquía de clases estándar de la que pueden derivar las clases que
crean los usuarios.

4. Una clase sólo puede heredar de una única clase (en   no hay herencia
múltiple). Si al definir una clase no se especifica de qué clase deriva, por defecto la
clase deriva de 3. La clase 3es la base de toda la jerarquía de clases de
  .

5. En un fichero se pueden definir varias clases, pero en un fichero no puede haber más
que una clase
 . Este fichero se debe llamar como la clase
 que contiene
con extensión &3  . Con algunas excepciones, lo habitual es escribir una sola clase
por fichero.
 +  $!  
  

6. Si una clase contenida en un fichero no es


 , no es necesario que el
fichero se llame como la clase.

7. Los métodos de una clase pueden referirse de modo global al 3de esa clase al
que se aplican por medio de la referencia $ .

8. Las clases se pueden agrupar en


# , introduciendo una línea al comienzo del
fichero (
# 
#  >). Esta agrupación en
# está relacionada
con la jerarquía de directorios y ficheros en la que se guardan las clases.
 ' (
'  ,%

3  &  - clases esenciales, números, strings, objetos,


compilador,runtime, seguridad y threads (es el único
paquete que se incluye automáticamente en todo
programa Java).

3  & - clases que manejan entradas y salidas.

3  &   - clases útiles, como estructuras genéricas, manejo de


fecha, hora y strings, número aleatorios, etc.

3  & - clases para soportar redes: URL, TCP, UDP, IP, etc.
 ' (
'  ,%
3  &  - clases para manejo de interface gráfica,
ventanas, etc.

3  & &  - clases para manejo de imágenes.

3  & &
 - clases que conectan la interface gráfica
implementaciones dependientes de la plataforma
(motif, windows).

3  &

 - clases para la creación de applets y recursos para


reproducción de audio&
 ! $!(!
 
"  

Las clases
  son accesibles desde otras clases, bien sea directamente o por herencia,
desde clases declaradas fuera
del paquete que contiene a esas clases públicas, ya que, por
defecto, las clases solamente son accesibles por otras clases
declaradas dentro del mismo paquete en el que se han
declarado.

public class miClase extends SuperClase implements miInterface,TuInterface


{
// cuerpo de la clase
}

a  
   
    :  8   
  
      3 
 
&
 ! $!(!
 
a 

Una clase   tiene al menos un método abstracto. Una clase abstracta no
se instancia, sino que se utiliza como clase base para la herencia. Es el
equivalente al prototipo de una función en C++.

R  
Una clase    se declara como la clase que termina una cadena de herencia,
es lo contrario a una clase abstracta. Nadie puede heredar de una clase final.
Por ejemplo, la clase % $ es una clase final. Aunque es técnicamente posible
declarar clases con varias combinaciones de public, abstract y final, la
declaración de una clase abstracta y a la vez final no tiene sentido, y el
compilador no permitirá que se declare una clase con esos dos modificadores
juntos.

$  : 

Este modificador especifica que todos los métodos definidos en la clase son
sincronizados, es decir, que no se puede acceder al mismo tiempo a ellos
desde distintos $  ; el sistema se encarga de colocar los   necesarios
para evitarlo. Este mecanismo hace que desde threads diferentes se puedan
modificar las mismas variables sin que haya problemas de que se
sobreescriban.
! "
Por convención, los identificadores que se les asignan a las clases en
Java comienzan con mayúscula.

Un archivo de Java debe tener el mismo nombre que la clase que


contiene, y se les suele asignar la extensión @&3  @& Por ejemplo
la clase % " se guardaría en un fichero llamado
% " &3  . Hay que tener presente que en Java se diferencia
entre mayúsculas y minúsculas; el nombre de la clase y el de
archivo fuente deben ser exactamente iguales.

Si no se utiliza alguno de los modificadores expuestos, por


defecto, Java asume que una clase es:

-No final
-No abstracta
-Subclase de la clase 3
-No implementa interfaz alguno
% ! 

Lo primero que se nos viene a la mente para describir la palabra objeto es:

´«una cosas que se pueden percibir por los 5 sentidos...µ

´«algo tangible...µ

´«una cosa sobre la que se puede accionar y carece de


autonomía de acción...µ

Como definición un Objeto es la instanciación de una clase y tiene un estado y un


funcionamiento. El   está contenido en sus   (variables miembro), y el
    viene determinado por sus H. Las variables miembro pueden
ser variables de instancia o variables de clase. Se activa el funcionamiento del
objeto invocando a uno de sus métodos, que realizará una acción o modificará su
estado, o ambas cosas.
  % !
Antes de poder usar un objeto hemos de crearlo.

El operador  nos permite crear objetos en Java.

Tipo identificador =  Tipo () ;

Tanto en Java como en C++, la creación de un objeto se realiza en tres pasos


(aunque se pueden combinar):

ÈDeclaración (proporcionar un nombre al objeto)

ÈInstanciación (asignar memoria al objeto)

ÈInicialización (opcionalmente se pueden proporcionar valores


iniciales a las variables de instancia del objeto)
  % !
Cuando se trata de Java, es importante reconocer la diferencia entre objetos y
variables de tipos básicos, porque en C++ se tratan de forma similar, cosa que
no ocurre en Java.

Tanto en Java como en C++ la declaración e instanciación de una variable de


tipo básico, utiliza una sentencia que asigna un nombre a la variable y reserva
memoria para almacenar su contenido:

int miVariable;

En los dos lenguajes se puede inicializar la variable con un valor determinado


en el momento de declararla, es decir, podemos resumir los tres pasos
anteriormente citados de declaración, instanciación e inicialización, en una
sola sentencia:

int miVariable = 7;

Y, lo más importante, este sucede en tiempo de compilación.


  % !

   $ '    9DD&" 3


  
      
 
'     '    $    3
   
'  
   : 


 &

  

      3   '  &

-  


  3   
  

             $8   
  &
  % !
-   
     3    &
    3     8
  
 $  
 &


 3  &  &?>

 3  0+,A

       LMA
 & &
) >
C
C

G     :   3  


   :    :    
    3   

      : 
   &
 ,  % !

Una vez que se tiene declarado un objeto con sus variables y sus métodos,
podemos acceder a ellos para que el uso para el que se ha creado ese objeto entre
en funcionamiento.

Para acceder a variables o métodos en Java se especifica el nombre del objeto y el

nombre de la variable, o método, separados por un punto (.).


  c
c !
È Las personas percibimos la
realidad como un conjunto de
objetos interrelacionados. Dichas
interrelaciones, pueden verse
como un conjunto de
abstracciones y generalizaciones
que se han ido asimilando desde la
niñez. Así, los defensores de la
programación orientada a objetos
afirman que esta técnica se
adecua mejor al funcionamiento
del cerebro humano, al permitir
descomponer un problema de
cierta magnitud en un conjunto de
problemas menores subordinados
del primero
#+
La herencia es el mecanismo
fundamental de relación entre
clases en la orientación a
objetos. Relaciona las clases de
manera jerárquica; una clase

  o 
   sobre otras
clases $ 3  o   .
-3
 ' 

En todo lenguaje orientado a objetos existe una jerarquía,


mediante la que las clases se relacionan en términos de herencia.
En Java, el punto más alto de la jerarquía es la clase 3 de la
cual derivan todas las demás clases.
 $- 
È 
%;


È En el caso de la primera, una


clasólo puede derivar de una única
superclase. Para el segundo tipo,
una clase puede descender de
varias superclases.

En Java sólo se dispone de herencia


simple, para una mayor sencillez del
lenguaje, si bien se compensa de cierta
manera la inexistencia de herencia
múltiple con un concepto denominado
  .
)   

Para indicar que una clase deriva de otra, heredando sus propiedades (métodos y
atributos), se usa el término 8, como en el siguiente ejemplo:


   9 8
 9 A
EE9   
C
$!.

  

Por ejemplo, creamos una clase % " .), hija de la clase ya mostrada % " :

 % " .)8% " A


:>
% " .)A
8=+>EE  % " 
=+>EE  % " 
:=+>EE    
C
C

La palabra clave 8 se utiliza para decir que deseamos crear una
subclase de la clase que es nombrada a continuación, en nuestro caso % " .) es hija de
% " .
c (

È El concepto de 6   lleva un paso más adelante la idea de las clases


abstractas.

È En Java una    es una clase abstracta pura, es decir una clase donde todos
los métodos son abstractos . Permite al diseñador de clases establecer la forma de
una clase.

È Una    puede también contener datos miembro, pero estos son siempre
static y final.

È Una    sirve para establecer un 'protocolo' entre clases.


  c (
Para crear una interface, se utiliza la palabra clave interface en lugar de class. La
interface puede definirse public o sin modificador de acceso, y tiene el mismo
significado que para las clases. Todos los métodos que declara una interface son
siempre public.

Para indicar que una clase implementa los métodos de una interface se utiliza la
palabra clave implements.

El compilador se encargará de verificar que la clase efectivamente declare e


implemente todos los métodos de la interface. Una clase puede implementar más de
una interface.
$!.
 ' !

Una interface se declara:

        A



         >
&&&
C

Por ejemplo:

   6 %   A


  >
    >
 
6 >
C
 ' !

una clase que implementa la interface:

  6 ( 


6 ( 8
8 3
  6 %   A
3
 
   A&&&C>
    A&&&C>
 
6 AC
C
   8
8 6 ( A
 
6 A
  @  @>
C
C

La clase InstrumentoViento implementa la interface, declarando los métodos y


escribiendo el código correspondiente. Una clase derivada puede también redefinir si es
necesario alguno de los métodos de la interface.
È <   6  

È Es posible crear referencias a interfaces, pero las interfaces no pueden ser instanciadas.
Una referencia a una interface puede ser asignada a cualquier objeto que implemente la
interface.

Por ejemplo:

InstrumentoMusical instrumento =  Guitarra();


instrumento.play();
System.out.prinln(instrumento.tipoInstrumento());

InstrumentoMusical i2 =  InstrumentoMusical(); //error.No se puede instanciar


È -8    
Las interfaces pueden extender otras interfaces y, a diferencia de las clases, una
interface puede extender más de una interface. La sintaxis es:

         8       , . . . {



      (     ) ;
...
}

È a
  

Dado que, por definición, todos los datos miembros que se definen en una
interface son static y final, y dado que las interfaces no pueden instanciarse
resultan una buena herramienta para implantar grupos de constantes. Por
ejemplo:


     Meses {
 ENERO = 1 , FEBRERO = 2 . . . ;
String [] NOMBRES_MESES = { " " , "Enero" , "Febrero" , . . . };
}

Esto puede usarse simplemente:


System.out.println(Meses.NOMBRES_MESES[ENERO]);
$ !  
)

G      $ 

Todos los campos y métodos de una clase son siempre accesibles para el código de la misma
clase.
Para controlar el acceso desde otras clases, y para controlar la herencia por las subclase, los
miembros (atributos y métodos) de las clases tienen tres modificadores posibles de control
de acceso:

 : Los miembros declarados


  son accesibles en cualquier lugar en que sea
accesible la clase, y son heredados por las subclases.

 : Los miembros declarados


  son accesibles sólo en la propia clase.

: Los miembros declarados


 son accesibles sólo para sus subclases
" 3
4

" 3
4
 "  AEE  3
EEa  

    R       ) 
 >
EE%H

  a
 A
   R  >
C

 - A
    >
C

   A
   ) 
 >
C
C
  3 8"  A
EE)   
C
 (   A
EE)   
C

!$!($!
  $ !  !  + /

"G64 $ 
%<R6%4 
£ 0 1

- 
    
3   

      3
  

'     :  
    &

!$!($!
%H
R  LM  =  L,M>
)  3 
  L+M=  >
  LM=  >
  =+> T,> DDA
9    L M&  3 >
R  C

   
! '  9  

    )! $! 


!   (
)  3  )  3 
-      
 3   
 
      
 3 


   
"    

 cËc 

H "      H   



 UG I7  VG  ! 

 3
4

R   =9  >
R  =!  >

6   

   
        
   
        3   
        

"    &
2 c

-
      $       >
 3
 
     H  -
 &

3    &

    $  



   3
    &
2 c

-  $       


   
 '43  & &3&

 H  


 3
4    
           

    :  
 &

  
 
   3      
 
 
 &
2 c

-%"G-a)-=-R->


    
3 
   
 -
 > 

    &
-  
  

    
 
-
 

&
 =@R  : @>
EE6 
!  !
3" 
$$!4
!  !
3"  $$!4
È Tanto Java como C++ soportan la noción de constructor.

È Que es un constructor ?
El constructor es un tipo específico de método que siempre tiene el mismo
nombre que la clase y se utiliza para construir objetos de esa clase.
!  !
3"  $$!4

È No tiene tipo de dato específico de retorno, ni siquiera void.

È Esto se debe a que el tipo específico que debe devolver un constructor de


clase es el propio tipo de la clase.

² En este caso, pues, no se puede especificar un tipo de retorno


² Ni se puede colocar ninguna sentencia que devuelva un valor
!  !
3"  $$!4

È Los constructores pueden sobrecargarse

È Cuando se declara una clase en Java, se pueden declarar uno o


más constructores.
!  !
3"  $$!4

È Cuando se crea una nueva instancia de MiClase, se crean


(instancias) todos los métodos y variables, y se llama al
constructor de la clase:

MiClase mc;
mc = new MiClase ();
!  !
3"  $$!4

È La palabra clave  se usa para crear una instancia de la


clase

² Antes de ser instanciada con new no consume


memoria, simplemente es una declaración de tipo.

È Después de ser instanciado un nuevo objeto mc, el valor


de i en el objeto mc será igual a 10. Se puede referenciar
la variable (de instancia) i con el nombre del objeto
!  !
3"  $$!4

È En Java, cuando se instancia un objeto, siempre se hace una llamada directa al


constructor como argumento del operador new. Este operador se encarga de que
el sistema proporcione memoria para contener al objeto que se va a crear
!  !
3"  $$!4

È En ambos lenguajes, si se proporciona uno o más constructores, el constructor


de defecto no se proporciona automáticamente y si fuese necesaria su
utilización, tendría que proporcionarlo explícitamente el programa
!  !
3"  $$!4

È En Java, cuando un método o una función comienza su ejecución.

È En este caso, el objeto es instanciado

È Como son automáticas, cuando el método concluye su ejecución, será


marcado para su destrucción.
%   

ÈCuando se invoca el JVM para ejecutar una aplicación, pedirá al


sistema operativo suficiente memoria para ejecutar la JVM
propiamente dichas y algo de memoria libre para que la aplicación
pueda crear nuevos objetos.

ÈCuando se crea un nuevo objeto, la JVM reservará memoria para


ese objeto dentro del área de memoria libre.

ÈCuando el área de memoria libre se vuelve demasiado pequeño,


la JVM pedirá al sistema operativo más memoria.

ÈCuando un objeto no se utiliza más, será destruido. Su memoria


será liberada y devuelta al área de memoria libre.
£9 R    %  
  W
ÈBásicamente, cuando ejecutamos un programa en Java, el sistema
operativo le reserva a la JVM, una zona de memoria libre lo
suficientemente grande como para que pueda ejecutar el
programa.

ÈEl recolector de basura es informado de todas las reservas de


memoria que se producen en el programa.
  

È )    3    


 &&- X :  3  
 ' '    3  

 &
 #

È       


'   H
   H&- X : 
  H 3  

  


È -      U '  V


 X :   


     '  3

   X;  
 'E '3&
 9
ÈJava podría ser el lenguaje más utilizados que depende de
la recolección de basura .

ÈLos beneficios de Garbage Collector son indiscutibles.

ÈEl concepto de Garbage Collector fue inventado por John


McCarthy en 1959.

ÈEl programador no tiene que invocar a una subrutina para


liberar memoria.
È9               

              
   
 &     $        
   
         
  

   &

È  
   9 W

I  $ 


- ) 
È NetBeans es un entorno de desarrollo visual de código
abierto que ocupa bastantes recursos a comparación del kit JVK, hecho
completamente con java; Mediante NetBeans es posible diseñar
aplicaciones con solo arrastrar y soltar objetos sobre la interfaz de un
formulario.

È Pero también existe un entorno de desarrollo que no es visual pero es


también muy bueno, es el mas básico que NetBeans lo proporciona Sun,
que es el kit JVK, que con solo instalarlo podemos escribir las líneas de
código en cualquier editor de texto y luego compilar con la consola de
Windows, Linux, Macintosh, etc. Así mismo en la misma consola
podemos interpretar el programa compilado y ejecutarlo.

È 9%"-!-)-G)*

Compilador de Java.
Interprete de Java (JVM).
Interprete de applets Java.
Depurador de Java.
generador de documentación.
Integrador de c y c++ (JNI).
Desensamblador.
--%"G)-"< <a%a-a(a

EJEMPLO DE PROGRAMA EN JAVA


ESTE EJEMPLO CONVIERTE LA EDAD DE UNA PERSONA EN DÍAS


 3  &  &?>EE            3    


    
A

      LM 
A
EE   =   & >EE      
   =   & >
   >
 & &
@    @>

 = &86>

  = ?.F0>


 & &
@   4@>
 & &
  >
C
9  
Mediante este trabajo de investigación, el cual se basó en la realización de un
informe y la preparación de una disertación, pudimos hallar y realizar
numerables puntos de los cuales podemos destacar.

- Las formas básicas de programación en el lenguaje java

- Las herramientas de java.

- Las formas de aplicar ciertas funciones

- Aplicaciones en la programación.

- Formas de aplicación en java.

- Los entornos de programación.

También logramos percatarnos de las diferencias existentes entre el lenguaje


trabajado en la anterioridad como es C y este nuevo lenguaje Java.
Logramos también realizar un programa en el lenguaje investigado, java,
aplicando todo lo aprendido en la investigación

También podría gustarte

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy