0% encontró este documento útil (0 votos)
20 vistas64 páginas

Clase2-2023 Java

Aquí están los principales tipos de ámbito para atributos y métodos en Java: - Public - Los atributos y métodos declarados como públicos son accesibles desde cualquier parte del código. Pueden ser accedidos desde otras clases. - Private - Los atributos y métodos privados solo son accesibles dentro de la propia clase. No pueden ser accedidos directamente desde otras clases. - Protected - Los atributos y métodos protegidos son accesibles dentro de la propia clase y también por las subclases de esa clase, aunque estén en paquetes

Cargado por

ycuadros
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPT, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
20 vistas64 páginas

Clase2-2023 Java

Aquí están los principales tipos de ámbito para atributos y métodos en Java: - Public - Los atributos y métodos declarados como públicos son accesibles desde cualquier parte del código. Pueden ser accedidos desde otras clases. - Private - Los atributos y métodos privados solo son accesibles dentro de la propia clase. No pueden ser accedidos directamente desde otras clases. - Protected - Los atributos y métodos protegidos son accesibles dentro de la propia clase y también por las subclases de esa clase, aunque estén en paquetes

Cargado por

ycuadros
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPT, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 64

Fundamentos de programación

Java bajo Eclipse

Lic. Jorge Guerra Guerra


Paradigma de programación
Colección de conceptos que guían el proceso de construcción de
un programa, determinando su estructura. Estos conceptos
controlan la forma en que pensamos y formulamos los
programas.

• Un lenguaje de programación refleja un paradigma.

PARADIGMA LENGUAJE
• Imperativo C, Pascal, Cobol, ...
• Funcional Lisp, Hope, Miranda, ...
• Lógico Prolog, Parlog, ...
• Orientado a Objetos Smalltalk, C++, Eiffel, Java, ...
3
Caracteristicas

•Es una plataforma por contar con una multitud de aplicaciones, está
Orientado a Objetos.
• Diseñado originalmente por Sun Microsystems para aparatos
electrodomésticos.
• Fue diseñado para no comprometerse con ninguna tecnología en
particular.
• Está orientado hacia el desarrollo de sistemas distribuidos.
• Se desarrolló bajo la premisa que las aplicaciones en Web no son difíciles
y la filosofía de trabajo “Una PC es la RED”.
• Contiene una librería de clases base.
• Usa una máquina virtual para la ejecución de un programa.
Java es mejor por lo que no tiene,que por lo que tiene

• Variables globales.
• Goto.
• Punteros.
• Tipos de datos frágiles.
• Asignación de memoria.
• Conversión de tipos.
• Archivos de cabecera.
• Preprocesador.

CIP
Historia de los LPOO
• 1964- SIMULA (Dahl y Nygaard):
– comienzo de la OO
– Se identificaba como lenguaje de simulación
– Ha influido en el desarrollo de otros LPOO

• 1972- SMALLTALK (Kay, Goldberg, Ingalls)


– Simula + LISP (sin tipos) -> LPOO puro
– Características de un LPOO [Byte81]:
• Todo es un objeto.
• Programa = cjto de objetos que se comunican mediante mensajes
• Todo objeto es instancia de una clase (tiene un tipo).
• Clase es el repositorio de comportamiento asociado con unobjeto
• Las clases se organizan en jerarquías de herencia
Historia de los LPOO - Años 80
• Proliferación de LPOO
• Clasificación atendiendo al origen:

 Híbridos:
 Basados en C:
o C++ 1985 B. Stroustrup
o Objective-C 1983 Brad Cox y Tom Love
 Basados en Pascal:
o Object Pascal 1985 Apple con Wirth
o Modula-3 1988 Digital y Olivetti
 Basados en Lisp:
o CLOS 1988
 Púros:
o Smalltalk 1972 Alan Kay
o Eiffel 1985 Bertrand Meyer
Historia de los LPOO – Años 90
• Aplicaciones centradas en el web

• 1995 JAVA- SUN


– “comportamiento” en páginas HTML
– Tecnología de implementación: bytecode+MV

• 2000 C# - Microsoft
– Plataforma .NET
– Máquina virtual para conseguir la portabilidad
– Combina Java y C++
1.Introducción. Características

9
Historia de Java

2006
Se lanza Java2 6.0 (Mustang)

2004
Se lanza Java2 5.0 (Tiger)

1999
Se lanza Java2.

1995
Oak Java
WebRunner  HotJava
1994
Navegador "WebRunner"
1ra applet : "Duke" saludando
1993
No se logra vender a la
industria de TV interactiva
1992
Proyecto "Green"
Sistema Operativo
"Star7"
Presencia comercial de Java

• Más de 2.500 millones de dispositivos.


• Más de 700 millones de ordenadores.
• 708 millones de teléfonos móviles y otros dispositivos de mano.
• 1000 millones de tarjetas inteligentes, además de sintonizadores,
impresoras,web cams, juegos, sistemas de navegación para
automóviles, terminales de lotería, dispositivos médicos, cajeros de
pago en aparcamientos, etc.
• Hoy en día, puede encontrar la tecnología Java en redes y
dispositivos que comprenden desde Internet y superordenadores
científicos hasta portátiles y teléfonos móviles; desde simuladores de
mercado en Wall Street hasta juegos de uso doméstico y tarjetas de
crédito: Java está en todas partes.

11
12
13
14
15
18
19
20
Características ..Introducción

• Orientado a Objetos
– encapsulación, herencia, polimorfismo y ligadura dinámica

• Parecido a C++
– elimina las partes confusas ej: punteros
– añade nuevas propiedades ej: garbage collector

• Robusto
– comprobación estática de tipos
– maneja la memoria por el programador
– comprobación de límites de arrays y excepciones.
• Proporciona las librerías y herramientas para programas
distribuidos (protocolos http y ftp, interconexión TCP/IP)
• Multithreads (ejecución concurrente) 21
Como funciona Java?

22
Compiladores JIT (Just In Time)

23
24
Estructura del Virtual Machine
¿Cómo trabaja la JVM ?

– The class loader carga todas las clases requeridas.


• JVM usa un CLASSPATH que posee para
localizar los archivos de clase.
– El Verificador JVM comprueba si existe un bytecodes
ilegal.
– El Verificador JVM ejecuta los bytecodes.
• JVM puede invocar un recopilador justo a
tiempo (JIT).
– la Memoria principal libera la memoria usada por el
deferente atrás del OS.
• JVM maneja los archivos borrados.
Funcionamiento de Java

27
28
Presentaciones de Java
http://java.sun.com
• JDK (Java Development Kit)
– Necesario para crear (desarrollar y compilar) programas
• JRE (Java Runtime Environment)
– Necesario para ejecutar un programa Java
– JDK = JRE + herramientas de desarrollo

29
Plataforma Java SE 6.0
Usando el Apropiado Kit de Desarrollo

Java2 esta disponible en tres ediciones:


– JavaME (Micro Edition): Versión expresamente apuntada al desarrollo
de aplicaciones mòviles
– JavaSE (Standard Edition): Desarrollo de aplicaciones Standalone
(escritorio) y applets
– JavaEE (Enterprise Edition): Desarrollo de aplicaciones empresariales
(Web e integracion de aplicaciones contiene a J2SE
NetBeans

• 2008
> Best Development Environment: NetBeans IDE 6
> Developer.com Product of Year: Developer Tool
• 2007
> BOSSIE Award: Best Enterprise IDE
> InfoWorld : Java IDE Innovator
> O'Reilly ONJava : Winner, Java IDE Platform

32
Eclipse
Conceptos Básicos del IDE: Proyectos
Creando Proyectos Java

Eclipse IDE contiene


plantillas y asistentes
que usted puede
seleccionar para crear
toda clase de archivos
Java, documentos XML
y archivos de recurso.
36
Crear proyectos
Estructura de un proyecto en Eclipse
Paquetes
• Permite agrupar todas las clases relacionadas
//MiClase.java
package miBiblioteca;
public class MiClase{ //...

• Se coloca al comienzo del archivo;


• Para crear los Packages, tener en cuenta.
• El nombre debe estar en minúsculas.
• El nombre no debe contener espacios en blanco.
• El nombre no tiene límite en el número de caracteres.

• Indica que las clases públicas que contenga está accesible a cualquiera que incluya:
import miBiblioteca.MiClase; o bien
import miBiblioteca.*;
• Las clases que no tienen un nombre de paquete están en el paquete por defecto
(Default Package) consideradas clases amigas (friendly)
• Soporta el concepto de jerarquía de paquetes (estilo directorio)

• ej: import miPaquete.miSubPaquete.MiClase;


Creacion de paquetes
Estructura del proyecto
Clase

• La clase es la base de la Programación Orientada a Objetos.


• Cualquier concepto que se desee representar en un programa Java
debe ser modelado con una clase.
• Una clase es una plantilla o modelo de un objeto. En ella se definen
los atributos y los comportamientos de un tipo de objeto.
 Al definir una clase debo especificar los datos que contiene
(atributos) y el código que opera sobre ellos (métodos).
 Los métodos definen la interfaz con la que se manejaran los datos.
Clase en Java
• Cada clase en Java:
– Se define en un archivo independiente con extensión .java
– Se carga en memoria cuando se necesita.
• La máquina virtual Java (JVM) determina en cada momento las clases necesarias para
la aplicación y las carga en memoria.
• Para definir una clase en Java se utiliza la palabra reservada class, seguida del nombre
de la clase (identificador):
• public class MiClase {


}
Nota:
Es necesario indicar el modificador de acceso
public para que se pueda utilizar la clase “desde el exterior”

43
Clase

44
Estructura de una clase

nombre

atributos

metodos
Tipo de Clase

46
Otra clase a construir
Atributos
Tipos de ambito

public – los miembros que se declaran como public son accesibles


en cualquier parte donde la clase sea accesible
protected – miembros declarados como protected sólo accesibles
en la propia clase y sus Subclases
private – miembros declarados como private sólo accesibles en la
propia clase

public class A{
public int at1;
private int at2;

}
Tipos de modificadores de atributos
51
Encapsulamiento
Encapsulamiento(continuacion)
Metodos

Código que “entiende” y manipula el estado de un objeto


Pueden ser llamados dentro de la clase o por otras clases
Es obligatorio indicar el tipo de retorno o void

Declaración:

[acceso][static]tipoRetorno nombreMetodo ([argumentos]){


//cuerpo del metodo
[return valorRetorno;]
}

Invocación: Notación punto


objReceptor.nombreMetodo(argumentos);
Operadores en Java

Aritméticos y de conversión De comparación Lógicos De asignación

i,f + i & i,f == b & =

i,f - i | i,f != b | +=

i,f * i ^ i,f < b ^ -=

i,f / i << i,f <= b && *=

i,f % i >> i,f > b | /=

i,f ++ i >>> i,f >= b ! %=

i,f -- b == &=
Tipos válidos de los operandos
i - i = Entero (byte, small, int, long) b != |=
f = Punto Flotante (float, double)
i ~ b ?: ^=
b = Lógico (boolean)
Sintaxis en Java
Bifurcaciones – Sentencia de control de saltos (if-else)

Sintanxis Flujo de Eventos


if( expresión-booleana )
Al evaluar el algoritmo, si se encuentra una
{
sentencia if-else, se evalúa la expresión
sentencias; booleana, si el resultado es “true” o
} verdadero, se ejecuta las sentencias
siguientes al término de la expresión; en
[else { caso contrario, el resultado será “false” o
sentencias; falso y se ejecuta las sentencias que siguen a
la palabra reservada else.
}]
Bifurcaciones - Sentencias de control de saltos (switch)

Sintaxis Flujo de Eventos


switch(expresión) { Al evaluar el algoritmo si entra en una
case valor1: bifurcación switch el valor de la
expresión se va comparando con cada
sentencias; uno de los casos “case” válidos hasta
break; encontrar su identidad, si un caso
coincide con el valor de la expresión se
case valor2: ejecutan las sentencias seguidas a éste
sentencias; hasta encontrar un break. Se puede
definir un caso opcional “default” el
break;
cual evalúa todos los casos no válidos o
[default: los valores no coincidente con la
expresión.
sentencias;]
}
Bucles - Sentencias repetitivas (for)

Sintáxis
for( inicialización; exp-booleana; iteración ) {
sentencias;
}

Flujo de Eventos
Cuando se evalúa el algoritmo al entrar a una sentencia for, se ejecuta por única
vez la sección de inicialización, luego se evalúa la expresión booleana; si el
resultado es verdadero o “true” se ejecutan las sentencias contenidas en el cuerpo
de la instrucción, por último se ejecuta el bloque de iteración y se evalúa
nuevamente la expresión booleana hasta que el resultado sea falso o “false”.
Bucles - Sentencias repetitivas (while)

Sintáxis
while( expresión-booleana ) {
sentencias;
}

Flujo de Eventos
Cuando se evalúa el algoritmo al entrar a una sentencia while, se evalúa la
expresión booleana, si el resultado es verdadero o true, se ejecutan las
sentencias contenidas en el cuerpo del bloque while y se evalúa nuevamente
la expresión booleana “mientras” que el resultado no sea falso o false.
Bucles - Sentencias repetitivas (do-while)

Sintáxis
do {
sentencias;
}while(expresión-booleana );

Flujo de Eventos
Cuando se evalúa el algoritmo al entrar a una sentencia do, se ejecuta las
sentencias contenidas en el bloque, luego se evalúa la expresión booleana que
sigue a la instrucción while, si el resultado es verdadero o true, se ejecutan
nuevamente las sentencias contenidas en el cuerpo del bloque “mientras” que el
resultado no sea falso o false.
Bucles - Sentencias repetitivas (for In)

Sintáxis
for ( declaración var : expresión ){
sentencias;
}

Flujo de Eventos

Cuando se evalúa el algoritmo al entrar a una sentencia for-in, se ejecuta el


bloque de declaración por única vez el cuál establece una variable que tomará el
valor de un elemento de la expresión (arreglo o colección) en cada iteración del
ciclo hasta recorrer todos los elementos; Por cada iteración se evalúan las
sentencias contenidas en el cuerpo del bloque.
Instrucciones break y continue dentro de un bucle

Break: se utiliza para forzar una terminación anormal de un bucle.

Continue: hace que la ejecución prosiga con la siguiente iteración saltando las
sentencias que están a continuación.

Break/Continue son instrucciones que hay que utilizar con mucho cuidado, pues,
cambian el flujo normal de un bucle.
Bugs al utilizar bucles

Bucles Infinitos cuando la condición para continuar el ciclo es una


estructura while, for, do/while nunca deja de cumplirse o cuando existe
un punto y coma “;” después de la cabecera de la estructura while.

Olvidar el enunciado break cuando se usa una estructura switch

Falta de agrupación en expresiones condicionales

Uso de valores de punto flotante para controlar ciclos de conteo

Colocar un punto y coma “;” inmediatamente después del paréntesis


derecho de una cabecara for.

También podría gustarte