slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
INTRODUCCIÓN PowerPoint Presentation
Download Presentation
INTRODUCCIÓN

Loading in 2 Seconds...

play fullscreen
1 / 106

INTRODUCCIÓN - PowerPoint PPT Presentation


  • 94 Views
  • Uploaded on

INTRODUCCIÓN. DESCRIPCIÓN DEL LENGUAJE Y ANTECEDENTES IMPORTANTES. Descripción del Lenguaje.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'INTRODUCCIÓN' - clove


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
descripci n del lenguaje
Descripción del Lenguaje

Java nace y da sus primeros pasos en 1991 formando parte de un proyecto de desarrollo de soporte software para electrónica de consumo (frigoríficos, lavadoras), llevado a cabo por un equipo de SUN llamado Green Team (Patrick Naughton, James Gosling y Mike Sheridan).

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.

descripci n del lenguaje1
Descripción del Lenguaje

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.

descripci n del lenguaje2
Descripción del Lenguaje

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"

descripci n del lenguaje3
Descripción del Lenguaje

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.

antecedentes importantes1
ANTECEDENTES IMPORTANTES

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).

antecedentes importantes2
ANTECEDENTES IMPORTANTES

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.

antecedentes importantes3
ANTECEDENTES IMPORTANTES

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 Máquina Virtual Java (JVM).

antecedentes importantes4
ANTECEDENTES IMPORTANTES

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 (multithreading) 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.

antecedentes importantes5
ANTECEDENTES IMPORTANTES

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.

historia de java
Historia de java

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

historia de java1
Historia de java

JDK 1.0 (23 de enero de 1996) — Primer lanzamiento.

JDK 1.1 (19 de febrero de 1997)

J2SE 1.2 (8 de diciembre de 1998) — Nombre clave Playground. Esta y las siguientes versiones fueron recogidas bajo la denominación Java 2 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).

J2SE 1.3 (8 de mayo de 2000) — Nombre clave Kestrel.

J2SE 1.4 (6 de febrero de 2002) — Nombre Clave Merlin. Este fue el primer lanzamiento de la plataforma Java desarrollado bajo el Proceso de la Comunidad Java como JSR 59

J2SE 5.0 (30 de septiembre de 2004) — Nombre clave: Tiger. .

Java SE 6 (11 de diciembre de 2006) — Nombre clave Mustang

Java SE 7 — Nombre clave Dolphin.

historia de java2
Historia de java

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).

esquema de un programa1
Esquema de un Programa
  • 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
slide19

Esquema de un Programa

- 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 .java

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

Esta función debe Pertenecer como es lógico a una clase, ya que en java nada puede estar fuera de una clase.

esquema de un programa3
Esquema de un Programa

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”);

}

}

esquema de un programa4
Esquema de un Programa

Aplicaciones vs. Applets

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 Applets.

Veamos ejemplos sencillos de cada tipo de desarrollo para apreciar las diferencias de estructura gramatical.

elementos b sicos de java1
Elementos básicos de java
  • Entre los elementos fundamentales de Java se encuentran:
    • Identificadores
    • Sentencias
    • Bloques de código
    • Expresiones
    • Variables
    • Tipos básicos de datos
    • Cadenas de caracteres o strings
    • Palabras claves
elementos b sicos de java2
Elementos básicos de java

Identificadores

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

elementos b sicos de java3
Elementos básicos de java

Sentencias

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.

int i=1;

import java.awt.*;

System.out.println("El primer programa");

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.

elementos b sicos de java4
Elementos básicos de java

Bloques de código

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.

{

}

elementos b sicos de java5
Elementos básicos de java

Expresiones

Una expresión es todo aquello que se puede poner a la derecha del operador asignación =.

x=123;

y=(x+100)/4;

area=circulo.calcularArea(2.5);

Rectangulo r=new Rectangulo(10, 10, 200, 300);

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.

elementos b sicos de java6
Elementos básicos de java

Variables

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.

elementos b sicos de java7
Elementos básicos de java

Variables

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

class Circulo

{

static final double PI=3.1416;

double radio;

//...

}

elementos b sicos de java8
Elementos básicos de java

Variables

Las variables locales se utilizan dentro de las funciones miembro o métodos. En el siguiente ejemplo área es una variable local a la función calcularArea en la que se guarda el valor del área de un objeto de la clase Circulo. Una variable local existe desde el momento de su definición hasta el final del bloque en el que se encuentra.

class Circulo

{

//...

double calcularArea(){

double area=PI*radio*radio;

return area;

}

}

elementos b sicos de java9
Elementos básicos de java
  • 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.
elementos b sicos de java10
Elementos básicos de java

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).

boolean encontrado=false;

{...}

encontrado=true;

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:

12, -36, 0, 4687, -3598

Ejemplo de declaración de variable enteras tenemos:

int numero=1205;

int x,y;

long m=30L;

elementos b sicos de java11
Elementos básicos de java

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.

double PI=3.14159;

double g=9.7805, c=2.9979e8;

elementos b sicos de java12
Elementos básicos de java

Cadenas de caracteres o strings

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.

String mensaje="El primer programa";

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

public class PrimeroApp{

public static void main(String[] args) {

//imprime un mensaje

String mensaje="El primer programa";

System.out.println(mensaje);

}

}

En una cadena se pueden insertar caracteres especiales como el carácter tabulador '\t' o el de nueva línea '\n'

String texto="Un string con \t un carácter tabulador y \n un salto de línea";

elementos b sicos de java13
Elementos básicos de java

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.

introducci n
Introducción
  • 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 java.io.
entrada y salida est ndar
Entrada y Salida Estándar

El acceso a la entrada y salida estándar es controlado por tres objetos que se crean

automáticamente al iniciar la aplicación:

  • System.in

Este objeto implementa la entrada estándar (normalmente el teclado). Los métodos que nos proporciona para controlar la entrada son:

read()

skip(n)

  • System.out

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

controlar la salida son:

print(a)

println(a)

  • System.err

Este objeto implementa la salida en caso de error.

entrada y salida por fichero
Entrada y Salida por fichero

Tipos de ficheros

En Java es posible utilizar dos tipos de ficheros (de texto o binarios) y dos tipos de acceso a los ficheros (secuencial o aleatorio).

  • Los ficheros de texto están compuestos de caracteres legibles.
  • Los binarios pueden almacenar cualquier tipos de datos (int, float, boolean, etcétera).
  • Una lectura secuencial implica tener que acceder a un elemento antes de acceder al siguiente.
  • Los ficheros de accesoaleatorio permiten acceder a sus datos de una forma aleatoria.

Clases a estudiar

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

  • FileOutputStream
  • FileInputStream
  • RandomAccessFile
fileoutputstream
FILEOUTPUTSTREAM

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:

  • int write( int c ):
  • int write( byte a[ ] )
  • int write( byte a[ ], int off, int len )

Ejemplo

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();

}

}

fileinputstream
FILEINPUTSTREAM

Mediante los objetos de esta clase leemos de ficheros de texto de forma secuencial.

  • int read()
  • int read( byte a[] )
  • int read( byte a[], int off, int len )

Ejemplo

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();

}

}

randomaccessfile
RANDOMACCESSFILE

Mediante los objetos de esta clase utilizamos ficheros binarios mediante un acceso

aleatorio, tanto para lectura como para escritura.

MÉTODOS DE DESPLAZAMIENTO

Cuenta con una serie de funciones para realizar el desplazamiento del puntero del fichero.

  • long getFilePointer(): Devuelve la posición actual del puntero del fichero.
  • void seek( long l ): Coloca el puntero del fichero en la posición indicada por l. Un fichero siempre empieza en la posición 0.
  • int skipBytes( int n ): Intenta saltar n bytes desde la posición actual.
  • long length(): Devuelve la longitud del fichero.
  • void setLength( long l ): Establece a l el tamaño de este fichero.
  • FileDescriptor getFD(): Devuelve el descriptor de este fichero.
m todos de escritura
Métodos de escritura

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.

m todos de lectura
MÉTODOS DE LECTURA

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

  • boolean readBoolean(): Lee un byte y devuelve false si vale 0 o true sino.
  • byte readByte(): Lee y devuelve un byte.
  • char readChar(): Lee y devuelve un caracter.
  • double readDouble(): Lee 8 bytes, y devuelve un double.
  • float readFloat(): Lee 4 bytes, y devuelve un float.
  • void readFully( byte b[] ): Lee bytes del fichero y los almacena en un vector b.
  • void readFully( byte b[], int ini, int len ): Lee len bytes del fichero y los almacena en un vector b.
  • int readInt(): Lee 4 bytes, y devuelve un int.
  • long readLong(): Lee 8 bytes, y devuelve un long.
  • short readShort(): Lee 2 bytes, y devuelve un short.
  • int readUnsignedByte(): Lee 1 byte, y devuelve un valor de 0 a 255.
  • int readUnsignedShort(): Lee 2 bytes, y devuelve un valor de 0 a 65535.
  • String readUTF(): Lee una cadena codificada con el formato UTF-8.
  • int skipBytes(int n): Salta n bytes del fichero.

Si no es posible la lectura devuelven –1

clase en poo
Clase en POO

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.

estructura de una clase
Estructura de una Clase
  • -Nombre de la Clase
  • -Métodos (Funciones)
  • -Atributos (Datos)

En este ejemplo el nombre de la clase es Coche, los métodos son el comportamiento (Ej.: en reposo, en movimiento, en reparación, etc.) y comparten ciertas características: los atributos ( tamaño, peso, color, potencia del motor, etc. ).

clase en java
Clase en JAVA

Para crear una clase sólo se necesita un archivo fuente que contenga la palabra clave reservada class seguida del nombre de la clase ( identificador legal) y un bloque delimitado por dos llaves para el cuerpo de la clase.

EJEMPLO DE CLASE:

[public] class Classname {

// definición de variables y métodos

...

}

caracter sticas importantes de las clases
Características importantes de las Clases

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

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

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

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

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

caracter sticas importantes de las clases1
Características importantes de las Clases
  • Si una clase contenida en un fichero no es public, no es necesario que el

fichero se llame como la clase.

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

8. Las clases se pueden agrupar en packages, introduciendo una línea al comienzo del fichero (package packageName;). Esta agrupación en packages está relacionada con la jerarquía de directorios y ficheros en la que se guardan las clases.

clases ya definidas y utilizables
Clases ya definidas y utilizables

java.lang - clases esenciales, números, strings, objetos,

compilador,runtime, seguridad y threads (es el único

paquete que se incluye automáticamente en todo

programa Java).

java.io - clases que manejan entradas y salidas.

java.util - clases útiles, como estructuras genéricas, manejo de

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

java.net - clases para soportar redes: URL, TCP, UDP, IP, etc.

clases ya definidas y utilizables1
Clases ya definidas y utilizables

java.awt - clases para manejo de interface gráfica,

ventanas, etc.

java.awt.image - clases para manejo de imágenes.

java.awt.peer - clases que conectan la interface gráfica

implementaciones dependientes de la plataforma

(motif, windows).

java.applet - clases para la creación de applets y recursos para reproducción de audio.

otros modificadores de clases
Otros modificadores de clases

Public

Las clases public 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

}

Aquí la palabra clave public se utiliza en un contexto diferente del que se emplea cuando se define internamente la clase, junto con private y protected.

otros modificadores de clases1
Otros modificadores de clases

Abstract

Una clase abstract 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++.

Final

Una clase final 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 Math 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.

Synchronizable

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 threads; el sistema se encarga de colocar los flags necesarios para evitarlo. Este mecanismo hace que desde threads diferentes se puedan modificar las mismas variables sin que haya problemas de que se sobreescriban.

no olvidar
No Olvidar

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 ".java". Por ejemplo la clase MiPunto se guardaría en un fichero llamado MiPunto.java. 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 Object

-No implementa interfaz alguno

objetos en poo
Objetos en POO

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 estado está contenido en sus variables (variables miembro), y el funcionamiento viene determinado por sus métodos. 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.

creaci n de objetos
Creación de Objetos

Antes de poder usar un objeto hemos de crearlo.

El operador new nos permite crear objetos en Java.

Tipo identificador = new 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)

creaci n de objetos1
Creación de Objetos

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.

creaci n de objetos2
Creación de Objetos

Java es mucho más restrictivo que C++. Por ejemplo, Java no permite la instanciación de variables de tipos básicos en memoria dinámica, aunque hay una serie de objetos que coinciden con los tipos básicos y que pueden utilizarse para este propósito.

Java tampoco permite la instanciación de objetos en memoria estática.

El formato en que se presenta un objeto en Java, cuando el compilador no conoce el tipo de que se trata, consiste en el identificador de la clase y el valor hexadecimal de la dirección.

creaci n de objetos3
Creación de Objetos

En Java no siempre es necesaria la declaración de un objeto (darle un nombre). Se instancia un nuevo objeto que se usa en una expresión, sin previamente haberlo declarado.

import java.util.*;

class java502 {

public static void main( String args[] ) {

System.out.println( new Date() );

}

}

La inicialización de un objeto en Java, se puede realizar utilizando las constantes de la clase, de forma que un objeto de un mismo tipo puede ser declarado e inicializado de formas diferentes.

utilizaci n de objetos
Utilización de Objetos

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 (.).

slide66

Introducción

  • 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
jerarqu a
Jerarquía

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 padre o superclase sobre otras clases hijas o subclases.

Ejemplo de otro árbol

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 Object de la cual derivan todas las demás clases.

herencia m ltiple
Herencia múltiple
  • Simple y Múltiple
  • 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 interface.

slide69

Declaración de Herencia

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

public class SubClase extends SuperClase {

// Contenido de la clase

}

slide70

Ejemplo:Declaración de Herencia

Por ejemplo, creamos una clase MiPunto3D, hija de la clase ya mostrada MiPunto:

class MiPunto3D extends MiPunto {

int z;

MiPunto3D( ) {

x = 0; // Heredado de MiPunto

y = 0; // Heredado de MiPunto

z = 0; // Nuevo atributo

}

}

La palabra clave extends se utiliza para decir que deseamos crear una

subclase de la clase que es nombrada a continuación, en nuestro caso MiPunto3D es hija de MiPunto.

interface
Interface
  • El concepto de Interface lleva un paso más adelante la idea de las clases abstractas.
  • En Java una interface 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 interface puede también contener datos miembro, pero estos son siempre static y final.
  • Una interface sirve para establecer un 'protocolo' entre clases. 
crear una interface
Crear una Interface

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.

ejemplo declaraci n y uso
Ejemplo:Declaración y uso

Una interface se declara:

interface nombre_interface {    tipo_retorno nombre_metodo ( lista_argumentos ) ;    . . . }

Por ejemplo:

interface InstrumentoMusical {    void tocar();    void afinar();    String tipoInstrumento();}

slide74

Declaración y uso

una clase que implementa la interface:

class InstrumentoViento extends Object implements InstrumentoMusical {void tocar() { . . . };void afinar() { . . .};    String tipoInstrumento() {}}

class Guitarra extends InstrumentoViento {    String tipoInstrumento() {return "Guitarra";    }}  

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. 

slide75
Referencias a Interfaces
  • 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 = new Guitarra();instrumento.play();System.out.prinln(instrumento.tipoInstrumento());InstrumentoMusical i2 = new InstrumentoMusical(); //error.No se puede instanciar

slide76
Extensión de interfaces

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

interfacenombre_interfaceextendsnombre_interface  , . . . {tipo_retornonombre_metodo ( lista_argumentos ) ;    . . . }

  • Agrupaciones de constantes

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:

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

Esto puede usarse simplemente:

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

slide77

Limitaciones en la herencia

Limitaciones en la herencia

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:

public: Los miembros declarados public son accesibles en cualquier lugar en que sea accesible la clase, y son heredados por las subclases.

private: Los miembros declarados private son accesibles sólo en la propia clase.

protected: Los miembros declarados protected son accesibles sólo para sus subclases

por ejemplo
Por ejemplo:

Por ejemplo:

class Padre { // Hereda de Object

// Atributos

private int numeroFavorito, nacidoHace, dineroDisponible;

// Métodos

public int getApuesta() {

return numeroFavorito;

}

protected int getEdad() {

return nacidoHace;

}

private int getSaldo() {

return dineroDisponible;

}

}

class Hija extends Padre {

// Definición

}

class Visita {

// Definición

}

slide80

E t i m o l o g í a…

POLI : muchas

MORFISMO : formas

slide81

¿Qué es?

Es la capacidad que tienen los objetos de una clase de responder al mismo mensaje o evento en función de los parámetros utilizados durante su invocación.

slide82

Polimorfismo

Método Dibujar()

Figura[] figuras = new figura[2]; figuras[0]= new triangulo(); figuras[1]= new circulo(); for (i=0;i<2;i++) { figuras[i].dibujar();

}

Clase Figura

clase

clase

Triángulo

Círculo

Ahora creamos un arreglo de clases figuras

(sobrecarga)

Dibujar()

Dibujar()

slide83

Esta característica de que varios objetos de distintas clases puedan recibir el mismo mensaje y ser capaces de responderlo es conocido como Polimorfismo

slide84

POLIMORFISMO

el término Polimorfismo también es asociado con un concepto llamado “Late-Binding” (Ligamiento Tardío), por ejemplo:

Inicialmente se puede pensar que este código generaría un error debido a que el tipo de referencia es distinta a la instancia del objeto, sin embargo, el fragmento anterior es correcto y demuestra el concepto de Polimorfismo.

slide85

CARACTERÍSTICAS

El polimorfismo es una habilidad de tener varias formas; por ejemplo, la clase Jefe tiene acceso a los métodos de la clase Empleado.

Un objeto tiene sólo una forma.

Una variable tiene muchas formas, puede apuntar a un objeto de diferentes maneras.

slide86

CARACTERÍSTICAS

En Java hay una clase que es la clase padre de todas las demás: java.lang.Object.

Un método de esta clase (por ejemplo: toString() que convierte cualquier elemento de Java a cadena de caracteres), puede ser utilizada por todos.

Java permite apuntar a un objeto con una variable definida como tipo de clase padre.

slide87

CARACTERÍSTICAS

Sólo se puede acceder a las partes del objeto que pertenecen a la clase Empleado; las partes específicas de la clase Jefe no se ven. Este efecto se consigue porque, para el compilador, e es sólo una variable de tipo Empleado, no Jefe

constructores reserva de memoria1
Constructores(Reserva de memoria)
  • 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.

constructores reserva de memoria2
Constructores(Reserva de memoria)
  • 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
constructores reserva de memoria3
Constructores(Reserva de memoria)
  • Los constructores pueden sobrecargarse
  • Cuando se declara una clase en Java, se pueden declarar uno o más constructores.
constructores reserva de memoria4
Constructores(Reserva de memoria)
  • 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 ();

constructores reserva de memoria5
Constructores(Reserva de memoria)
  • La palabra clave new 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
constructores reserva de memoria6
Constructores(Reserva de memoria)
  • 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
constructores reserva de memoria7
Constructores(Reserva de memoria)
  • 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
constructores reserva de memoria8
Constructores(Reserva de memoria)
  • 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.
memoria en java
Memoria en Java
  • 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.
como funciona la memoria en java
¿Como Funciona la Memoria en Java?
  • 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.
zona de datos
Zona de datos
  • Donde se almacena el código ejecutable (las clases, constantes, etc.). El tamaño de esta zona es fijo, y nada de lo que está acá cambia durante la ejecución del programa.
stack
Stack
  • Se almacenan las variables locales, parámetros y métodos de retorno de los métodos, etc. El tamaño de esta zona también es fijo y conocido en tiempo de compilación
slide101
Heap
  • Esto es lo que se conoce como la memoria “dinámica”, el tamaño de esta zona NO es conocido en tiempo de compilación, ya que acá es donde se crean los objetos, y puede variar su tamaño según vayan creándose/eliminándose objetos.
garbage collector
Garbage Collector
  • 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.
slide103

Cuando se invoca el recolector de basura, recorre la lista de espacios reservados observando el contador de referencias de cada espacio. Si un contador ha llegado a cero significa que ese espacio de memoria ya no se usa y, por tanto, puede ser liberado.

  • Sugerir pasar el Garbage Collector?

-No tiene mucho sentido

entorno de desarrollo
Entorno de Desarrollo
  • 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.
  • COMPONENTES DEL JDK

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.

ejemplo de programa en java
EJEMPLO DE PROGRAMA EN JAVA

EJEMPLO DE PROGRAMA EN JAVA

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

import java.util.*; //este asterisco me indica que uso todas las funciones del java util

public class convertidor

{

public static void main(String[] args)

{

//scanner stdin =new scanner(system.in); //esta linea crea el escaner

Scanner stdin = new Scanner(System.in);

int edad,edad_en_dias;

System.out.println("ingrese su edad");

edad=stdin.nextInt();

edad_en_dias=edad*365;

System.out.println("su edad en dias es:");

System.out.println(edad_en_dias);

}

}

conclusi n
Conclusión

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