SlideShare una empresa de Scribd logo
1 de 88
Programación básica en Java
Pedro Corcuera
Dpto. Matemática Aplicada y
Ciencias de la Computación
Universidad de Cantabria
corcuerp@unican.es
Objetivos
• Describir las partes básicas de un
programa en Java.
• Presentar los elementos lexicales del
lenguaje de programación Java.
• Diferenciar entre literales, tipos de datos
primitivos, identificadores, tipos de
variables, y operadores.
• Desarrollar programas simples válidos.
2
Java
Índice
• Análisis del primer programa Java
• Comentarios
• Elementos lexicales
• Tipos de datos primitivos
• Variables
• Impresión de variables
• Operadores y expresiones
3
Java
Análisis del primer programa Java
/*
**
*
Ejemplo HolaMundo
Imprime el mensaje "Hola, Mundo!"
*
/
public class
4
Java
HolaMundo {
main(String[] args) {
public static void
// Imprime el mensaje "Hola, Mundo!"
System.out.println("Hola, Mundo!");
}
}
Análisis del primer programa Java
/*
**
*
Ejemplo HolaMundo
Imprime el mensaje "Hola, Mundo!"
*/
• Lascuatroprimeraslíneasdelcódigofuenteson
comentarios.
• Uncomentario:
– sirveparadocumentarparte delcódigo.
– noespartedel programa, peroseusaconel propósito
de documentarlo.
– esunabuenaprácticadeprogramación añadir
comentariosal código.
5
Java
Análisis del primer programa Java
/*
**
*
Ejemplo HolaMundo
Imprime el mensaje "Hola, Mundo!"
*/
public class HolaMundo {
• Indicael nombredelaclasequeesHolaMundo.
• EnJava,todoel códigodebesercolocadodentrode
unadeclaracióndeclase.
• El especificador deaccesoalaclasepublic, indica
quelaclaseesaccesibledesdeotrasclasesdeotros
paquetes(lospaquetessoncoleccionesdeclases).
6
Java
Análisis del primer programa Java
/*
**
*
Ejemplo HolaMundo
Imprime el mensaje "Hola, Mundo!"
*/
public class HolaMundo {
• Lallaveindicael iniciodeunbloque.
• Enestecódigolallavesehacolocadoenlamisma
líneaqueladeclaracióndeclase, peropuede
ponerseenlasiguientelínea.
7
Java
Análisis del primer programa Java
public class HolaMundo {
public static void main(String[] args) {
• Indicael nombredeunmétodoenHolaMundoquees
el métodoprincipal.
Java.
• TodoslosprogramasenJava, exceptolosapplets,
empiezanconel métodomain.
• Esnecesariocolocar todaladeclaración
exactamente.
8
Java
Análisis del primer programa Java
public class HolaMundo {
public static void main(String[] args) {
// Imprime el mensaje "Hola, Mundo!"
• OtrotipodecomentarioJava.
9
Java
Análisis del primer programa Java
public class HolaMundo {
public static void main(String[] args) {
// Imprime el mensaje "Hola, Mundo!"
System.out.println("Hola, Mundo!");
• LainstrucciónSystem.out.println()imprimeel texto
• System.out serefierealasalidaestándar.
• El métodoprintln() imprimesuargumentocomouna
cadenadecaracteresconunsaltodelínea final.
• Todainstrucciónterminaconun;
10
Java
Análisis del primer programa Java
/*
**
*
Ejemplo HolaMundo
Imprime el mensaje "Hola, Mundo!"
*
/
public class HolaMundo {
main(String[] args) {
public static void
// Imprime el mensaje "Hola, Mundo!"
11
Java
System.out.println("Hola, Mundo!");
}
}
• Lasdosúltimasllavesseusanparacerrar el bloque
correspondiente al método main y la clase principal
respectivamente.
Directivas de programación
• LosficherosdeprogramasJavasiempredeben
terminar conlaextensión.java
• Losnombresdelosficherosdebencoincidir conel
nombredelaclasepública.Porejemplo,silaclase
públicaesHolaMundo,sedebeguardarenunfichero
HolaMundo.java
• Sedebenintroducir comentariosenel código
explicandoloquehaceunaclaseométodo.
12
Java
Comentarios en Java
• Loscomentariossonnotasintroducidasenel código
conel propósitodedocumentación.
• Eltextodeloscomentariosnoespartedelprograma
ynoafectael flujodeejecucióndelprograma.
• HaytrestiposdecomentariosenJava:
– ComentarioestiloCodepárrafo.
– ComentarioestiloC++odelínea.
– Comentarioespecial Javadoc.
13
Java
Comentarios en Java
• ComentarioestiloCodepárrafo:
– Selesllama tambiénmultilínea
– Todotexto encerrado entre /* y*/ quepuedeestar enuna
ovariaslíneassetratacomocomentario.
– Ejemplo:
/* este es un ejemplo de un
comentario estilo C o multilinea */
14
Java
Comentarios en Java
• ComentarioestiloC++odelínea:
– Empiezancon// yseextiendenhastael final dela línea.
– Todoel texto quesigue a// setrata comocomentario.
– Ejemplo:
// este es un comentario estilo C++ o de linea
15
Java
Comentarios en Java
• ComentariodocumentaciónJavaoJavadoc:
– LoscomentariosJavadocseusanparagenerarla
documentaciónenHTMLapartir delosprogramas Java.
Seutilizan para documentarclases, camposymétodos.
– SepuedencrearcomentariosJavadocempezando la
línea con/** yfinalizando con*/. Dela mismaformaque
loscomentariosestiloCsepuedenextenderporvarias
líneas. Puedeconteneretiquetas paraañadirinformación
aloscomentarios
– Seusalautilidaddegeneraciónautomática
de documentaciónllamada javadoc.
16
Java
Javadoc
• Lasetiquetasmásutilizadasson:
Tag Descripción
@author Nombre del desarrollador.
@deprecated Indicaqueelmétodooclaseesobsoletoyquenoserecomiendasuuso.
@param Definicióndeunparámetrodeunmétodo.
@return Describeelvalordevueltodeunmétodo.
@see Asocia con otro método o clase.
@since Fechaoversiónenqueaparecióporprimeravezla característica.
@throws Excepciónlanzadaporelmétodo
@version Versión del método o clase.
17
Java
Javadoc - ejemplo
/**
* Clase para representar círculos sobre el plano.
* Un círculo se define por su radio y las
* coordenadas de su centro.
* @version 1.2, 2/09/10
* @author Pedro Corcuera
*/
public class
protected
Circulo {
double x,y; // coordenadas del centro
double r; // radio del círculo
18
Java
protected
/**
* Crea un
* @param
* @param
* @param
círculo a partir de su origen y radio.
x Coordenada x del centro del círculo.
y Coordenada y del centro del círculo.
r Radio del círculo. (>= 0).
*/
public Circulo(double x, double y, double r) {
this.x=x; this.y = y; this.r = r;
}
Javadoc - ejemplo
/**
* Cálculo del área de este
* @return El área (mayor o
*/
public double area() {
círculo.
igual que 0) del círculo.
return Math.PI*r*r;
}
/**
si un punto está dentro del círculo.
px
py
componente x del punto
componente y del punto
19
Java
* Indica
* @param
* @param
* @return true si el punto está dentro del círculo o false en otro caso.
*/
public boolean contiene(double px, double py) {
/* Calculamos la distancia de (px,py) al centro del círculo (x,y),
que se obtiene como raíz cuadrada de (px-x)^2+(py-y)^2 */
double d = Math.sqrt((px-x)*(px-x)+(py-y)*(py-y));
// el círculo contiene el punto si d es menor o igual al radio
return d <= r;
}
}
Javadoc
• Paragenerar ladocumentación(formatoHTML) se
puedeutilizar:
– Modocomando:
>javadocCirculo.java
– Lamayoríadeentornosdeprogramacióndisponende
un menúpara ejecutar javadoc.Porejemplo en
NetBeans:
20
Java
Instrucciones Java
• Instrucción
– unaomáslíneas decódigo terminada porunpunto y
coma(;).
– Ejemplo:
System.out.println("Hola, Mundo!");
21
Java
Bloques Java
• Bloque
– esunaomásinstrucciones encerradas entre llaves ({ })
queagrupalasinstruccionescomounaunidad.
– lasinstruccionesdebloquesepuedenanidar
indefinidamente.
– sepermite cualquier cantidad deespacios enblanco.
– Ejemplo:
public static void main(String[] args) {
// Imprime el mensaje "Hola, Mundo!"
System.out.println("Hola, Mundo!");
}
22
Java
Directivas de programación
• Enlacreacióndebloques, sepuedecolocar lallave
deaperturaenlínea conla instrucción.Ejemplo:
public static void main(String[] args) {
• osepuedecolocar lallaveenlasiguientelínea:
public static void main(String[] args)
{
• Sedebenindentar lasinstruccionesdentrodeun
bloqueparamostrarsunivel deprofundidad.
public static void main(String[] args) {
System.out.println("Hola, Mundo!");
}
23
Java
Elementos lexicales – Conjunto de
caracteres
• LosprogramasenJavaseescribenenUnicode.
• Unicodeesunestándar internacional deconjuntosde
caracteres(16bits)quecontieneloscódigosde
caracteresdela mayoríadelenguajesutilizadosenel
mundo.
• ElconjuntodecaracteresASCII(7bits)equivalealos
primeros128caracteresdeUnicode(ISO-8859-1).
24
Java
Elementos lexicales - Identificadores
• Losidentificadoresseusanparanombrar clases,
métodos, variablesytodoloquerequieraunnombre.
• UnidentificadorenJavaempiezaconuna letra
(nuncaundígito!)ypuedeestarseguidodeletrasy
dígitos. Debeser diferentealaspalabrasreservadas
del lenguaje.
• En Java letras incluye los caracteres en los alfabetos
detodos los lenguajesdeUnicode,el guiónbajo(_) y
el signodólar ($).
• Javadistingueentremayúsculasyminúsculas.
25
Java
Directivas de programación
• Paranombresdelasclasesponer enmayúsculala
primeraletradelnombredela clase.Ejemplo:
EsteEsUnEjemploDeNombreDeClase
• Paranombresdemétodosyvariablesponer en
minúsculala primeraletradelnombre.Ejemplo:
esteEsUnEjemploDeNombreDeMetodo
• Encasodeidentificadoresmultipalabraponer en
mayúsculasólolaprimeraletradecadapalabra.
• Evitar usar guiónbajoal iniciodeunidentificador.
26
Java
Palabras reservadas en Java
• Laspalabrasreservadassonidentificadores
predefinidosreservadospor Javaparaunpropósito
específico.
• Nosepuedeusar laspalabrasreservadascomo
nombresdevariables, clases, métodos,… etc.
27
Java
abstract double instanceof static
assert else int strictfp
boolean enum interface super
break extends long switch
byte final native synchronize
d
case finally new this
catch float package throw
char for private throws
class goto* protected transient
const* if public try
continue implements return void
default import short volatile
do while
Palabras reservadas en Java
28
Java
* const y goto no se usan
true, false y null son literales
Literales en Java
• Literalessonsímbolosquenocambian– son
constantes.
• LosdiferentestiposdeliteralesenJavason:
– LiteralesBooleanos (boolean)
– LiteralesEnteros(integer)
– LiteralesPuntoFlotantes(floatingpoint)
– LiteralesCaracter (character)
– LiteralesdeCadenas deCaracteres(String)
29
Java
Literales booleanos
• Losliteralestipobooleanconsistendedosvalores:
true yfalse.
30
Java
Literales enteros
• Losliteralesenterospuedenescribirseentres
formatos:
– decimal (base10): empiezanconundígitodecimal
diferente aceroseguidopordígitos decimales (p.e. 30).
– hexadecimal(base16): empiezan con0x o0X, seguido
dedígitos hexadecimales(p.e. 0x1Ey0XC1E).
– octal (base8): empiezacon0, seguidodedígitos octales
(p.e. 036).
31
Java
Literales punto flotante
• Losliteralesenpuntoflotanterepresentandecimales
conpartedecimal.
• Seescribenconunnúmerodecimalconunaparte
exponencialopcional(notacióncientífica):
digitos.[digitos][(e|E)Enteroconsigno]
• Ejemplos:
– 3.1416
– 583.45
32
Java
314.16E-2
5.8345e2
Literales caracter
• LosliteralescaracterrepresentancaracteresUnicode
(16bits). Seescribenentrecomillassimples' '
• LoscaracteresASCII sepuedenescribir
directamente, p.e. ′c′.
• LoscaracteresnoASCIIsepuedenescribircon
códigoshexadecimalesuoctales.
– Encódigo hexadecimal, u esseguidoporcuatro dígitos
hexadecimales. Ejemplos: ′u00E6′ ′u5496′ ′u03b1′
– Encódigo octal, esseguidoporunootres dígitos
octales. Ejemplos: ′377′ ′040′
33
Java
Literales caracter – secuencias de escape
• Haycaracteresespeciales, conocidoscomo
secuenciasdeescape(escapesequences),quese
escriben:
Descripción Escape
Sequence
Unicode
Backspace b u0008
Tab t u0009
Linefeed n u000A
Carriage
return
r u000D
Form feed f u000C
Backslash  u005C
Single
Quote
' u0027
34
Java
Literales Cadenas de caracteres
• LosliteralescadenasdecaracteresoString
representasecuenciasdecaracteres,incluyendolas
secuenciasdeescape,encerradasporcomillas
dobles.
• Ejemplos:
Literal String
″Unliteral cadena″
″″Unanota″ ″
″u00E6u0027″
35
Java
Valor
Unliteral cadena
″Unanota″
æ'
Tipos de datos primitivos
• El lenguajedeprogramaciónJavadefineochotipos
dedatosprimitivos:
– boolean(paralógica)
– char (paratextos)
– byte
– short
– int
– long(integral)
– double
– float (puntoflotante)
36
Java
Tipos de datos primitivos - boolean
• Untipodedatobooleanorepresentadosestados:
trueyfalse.
• Unejemploes:
booleanresultado=true;
• Elejemploanteriordeclaraunavariableresultado
comodetipobooleanyleasignael valor detrue.
• Noescompatiblecontiposenteros(comoenC).
• Lascondicionesdelasinstruccionesdecontrol(p.e.
if, while) seesperanqueseandetipoboolean.
37
Java
Tipos de datos primitivos - char
• Untipodedatocharrepresentauncaractersimple
Unicode(65536símbolos).
• Debetenerel literal encerradoentrecomillassimples
''.
• Ejemplos:
′a′  letraa
′t′  tabulador
′′′  comillasimple
′″′  comilladoble
38
Java
Tipos de datos primitivos - String
• Stringno esuntipodedatoprimitivo, esunaclase.
• UnStringocadenadecaracteresrepresentauntipo
dedatoquecontienevarioscaracteres.
• Tienela parteliteralencerradaentrecomillasdobles
″cadena″
• Ejemplo:
Stringmensaje=″HolaMundo!″
39
Java
Tipos de datos primitivos - Integer
• Lostiposdedatosintegralesoenteros(byte,short,
int ylong) enJavarepresentanenterosdediferentes
tamaños.
• Sepuedeusar tresformas: decimal, octal o
hexadecimal parasurepresentación.
• El tipodedatointegral por defectoesint.
• Sepuededefinir el valor largoañadiendolaletral oL.
• Ejemplos:
2 077 0xBAC 10L
40
Java
Tipos de datos primitivos – Integer
• Tamañoyrangodeenteros:
Tipo Tamañ
o
(bit)
Valor Mínimo Valor Máximo
byte 8 -128 (-27) 127 (27-1)
short 16 -32768 (-215) 32767 (215-1)
int 32 -2147483648 (-231) 2147483647 (231-1)
long 64 -92233720368854775808 92233720368854775807
(-263) (263-1)
41
Java
Tipos de datos primitivos – Punto flotante
• Lostiposdedatosdepuntoflotante(float ydouble)
enJavarepresentannúmerosengeneral.
• Losliteralesenpuntoflotanteincluyenunaparte
decimal ounodelossiguientes:
– Eoe // valor exponencial
– Fof // (float)
– Dod // (double)
• Eltipodedatopuntoflotantepordefectoesdouble.
• Ejemplos:
3.1415 6.02E23 2.718F 123.4E35d
42
Java
Tipos de datos primitivos – Punto flotante
• Lostiposdedatosdepuntoflotantesealmacenan
segúnIEEE-754:
– Signo
– Exponentedespl.
– Mantisa
Signo
-1
Mantisa
5
Baseexponente
100
Partes de un número en punto flotante -5:
• El signousael bit mássignificativo.
• Elexponenteempleaunbyteenformatodesplazado.
• Lamantisaocupa23bits(float)y52bits(double).
43
Java
Tipos de datos primitivos – Punto flotante
• Tamañoyrangodetiposreales:
Tipo Tamaño (bit) Rango
float 32 + / - 3.4 ·1038
double 64 + / - 1.8 ·10308
44
Java
Tipos de datos primitivos –
Almacenamiento por tipo (bytes)
❑ Integer Types
▪ byte:
▪ short:
▪ int:
▪ long:
❑ Floating Point Types
▪ float:
▪ double:
❑ Other Types
▪ boolean:
▪ char:
45
Java
Variables
• Unavariableesunaposicióndememoriadondese
almacenaunvalor(estadodeunobjeto).
• Tieneunnombreparafacilitar el acceso.
• Unavariabletieneasociadoun:
– Tipo: el tipoindicael tipodevalor quelavariable
puede almacenar.
– Nombre:elnombredelavariabledebeseguirlasreglas
paralos identificadores.
• Javasoportadosclasesdetipos:tiposprimitivosy
tiposreferencia.
46
Java
Variables – declaración e inicialización
• Sintaxisparadeclarar unavariable:
<tipo> <nombre> [= valor inicial];
– Nota:losvaloresencerradosentre<>sonvalores
requeridos, mientras quelos encerradosentre [ ] son
opcionales.
• Ejemplos:
int tanqueN1=6;
doubletanqueVolumen=12.0;
booleanresultado;
char opcion=′c′;
47
Java
Variables – Directivas de programación
• Usar nombresdescriptivosparalasvariables,
empezandosiempreporunaletraenminúscula.
• Esrecomendableinicializar lasvariablesenel
momentodeladeclaración. Losvaloresinicialespor
defectodelosdiferentestiposson:
Tipo Valor inicial por defecto
Integer 0
Floating-point 0.0
Char u0000
Boolean False
Reference null
48
Java
Compatibilidad de tipos y conversión
• Compatibilidaddetipos: untipoT1escompatible
contipoT2siunvalordeltipoT1puedeaparecer
dondeseaqueunvalordeltipoT2seesperay
viceversa.
• Conversión detipos: eslaconversióndevaloresde
untipoavaloresdeotrotipo.
• Ampliación y estrechamientodetipos numéricos:
convertiruntiponuméricoderangopequeñoaun
tiponuméricodemayor rangoesampliación. Lo
opuestoesestrechamiento.
49
Java
Compatibilidad de tipos y conversión
• Tamañosyrangosdetiposnuméricosordenadosde
menor amayor:
byte short int long float double
• Laampliacióndetiposserealizademaneraimplícita,
mientrasqueelestrechamientopuederesultaren
pérdidadeprecisión.Por ello,es necesariorealizar
uncast explícito(sinoel compilador produceerror).
• Ejemplo:
int i =10;longm=10000L;doubled=Math.PI;
i =(int) m; m=i; m=(long) d; d=m;
50
Java
Impresión simple del valor de variables
• Paraimprimir el valor deunavariablesepuedeusar
cualquieradelasinstrucciones:
System.out.println()
Añadeunanuevalíneaal final del datoimpreso
System.out.print()
Noañadeunanuevalínea al final deldatoimpreso
51
Java
Impresión simple del valor de variables -
Ejemplos
• Código1:
System.out.print(″Hola″);
System.out.print(″Mundo″);
Salida:
HolaMundo
• Código2:
System.out.println(″Hola″);
System.out.println(″Mundo″);
Salida:
Hola
Mundo
52
Java
Impresión simple del valor de variables -
Ejemplo
public class ImprimeVariable {
public static void main(String[] args) {
int valor = 10;
char x = ′A′;
System.out.println(valor);
System.out.println(″Valor de x = ″ + x);
53
Java
}
}
• Resultadoenpantalla:
10
Valor dex=A
Impresión con formato de variables
• Emulalaimpresiónconformatoprintf()deC.
• Sintaxisdel método:
System.out.printf(Stringdeformato,Objectos...args)
• ElStringdeformatopuedecontenerespecificadores
deformatocuyasintaxises:
%[argument_index$][flags][width][.precision]conversion_char
El carácter deconversiónpuedeser:
f parapuntos flotantes
oparaoctales
gnotación puntoflotante general
54
Java
dparaenteros
eparanotación científica
sparacadenas decaracteres
Tipos de formato de impresión
• Sepuedeincluir textodentrodelascomillas:
System.out.printf(″Precio por litro: %10.2f″, precio);
55
Java
Flags para formatos de impresión
• Sepuedeusar flagsdeformatosparacambiar lamanera
en queel texto ylos valoresnuméricossemuestran:
56
Java
Impresión con formato de variables
System.out.printf(″%10.2f″, precio);
System.out.printf(″%-10s″, ″Total:″);
10 espacios 2 espacios
System.out.printf(″%-10s%10.2f″, ″Total:″, precio);
57
Java
Impresión con formato de variables -
Ejemplo
public class PrintfDemo {
public static void main(String[] args) {
double q = 1.0/3.0; System.out.printf ("1.0/3.0 = %5.3f %n", q);
System.out.printf ("1.0/3.0 = %7.5f %n", q);
q
q
q
q
q
= 1.0/2.0; System.out.printf ("1.0/2.0 = %09.3f %n", q);
= 1000.0/3.0; System.out.printf ("1000/3.0 = %7.2e %n", q);
= 3.0/4567.0; System.out.printf ("3.0/4567.0 = %7.2e %n", q);
= -1.0/0.0; System.out.printf ("-1.0/0.0 = %7.2e %n", q);
= 0.0/0.0; System.out.printf ("0.0/0.0 = %5.2e %n", q);
System.out.printf ("pi = %5.3f, e = %5.4f %n", Math.PI, Math.E);
double r = 1.1;
System.out.printf ("C = 2 * %1$5.5f * %2$4.1f, "+
"A = %2$4.1f * %2$4.1f * %1$5.5f %n",
Math.PI, r);
}
}
58
Java
Impresión con formato de variables –
Resultado del Ejemplo
• Salida:
1.0/3.0=0,333
1.0/3.0=0,33333
1.0/2.0=00000,500
1000/3.0=3.33e+02
3.0/4567.0=6.57e-04
-1.0/0.0=-Infinity
0.0/0.0= NaN
pi =3.142, e=2.7183
C=2* 3.14159* 1.1, A= 1.1* 1.1* 3.14159
• Enlaceaopciones deprintf:
http://download-llnw.oracle.com/javase/tutorial/java/data/numberformat.html
59
Java
Variables primitivas y variables referencia
• Javadisponededostiposdevariablesquese
correspondenconlostiposempleadosensu
declaración:
– Variables primitivas
– Variables referencia
• Variablesprimitivas:
– Variablesdeclaradas contipos dedatosprimitivos.
– Almacenanlos datosenla ubicación dela memoria
asignadaalavariable.
60
Java
Variables primitivas y variables referencia
• Lostiposdedatosdereferenciasonclass, interfaceo
array.
• Variablesreferencia:
– Variablesquealmacenan la dirección dememoriadeotro
variable:apuntanaotradireccióndememoriadondese
encuentralosdatos.
– Cuandosedeclaraunavariabledeunaciertaclase, se
estádeclarandounavariablereferenciaal objetocon
esa clase.
• LasreferenciasenJavaseimplementancomo
punterosde32bits.
61
Java
Variables referencia: diferencia con
punteros C y C++
• LasvariablesreferenciaJavasediferenciandelos
punterosCyC++en:
Cy C++ Java
Lospunterossepuedenmodificar
mediantecast, aritméticade
Javanopermiteestasoperacionesy
prohíbelamanipulacióndirectade
punterosoasignacióndevalores.
62
Java
variablesreferencia
Lospunteroshacenreferenciaa
segmentosdememoriaquese
separandinámicamente.El
programadoresresponsablede
gestionarlaasignaciónyliberación
dememoria.
Lasvariablesreferenciaapuntanal
espaciodememoriaquees
dinámicamenteasignadopor el
garbage-collectorheap. Los
programadoresestánliberadosdela
responsabilidaddegestionarla
memoria.
Variables primitivas y variables referencia
Ejemplo
public class TiposVariables {
public static void main(String[] args) {
int num = 10; // tipo primitivo
String name = ″Hola″; // tipo referencia
}
}
10
:
Dirección(2000)
:
″Hola″
NombreVariable Dato
Dirección
Memoria
1001
:
1563
:
2000
num
name
63
Java
Operadores y expresiones
• JavaofreceoperadoressimilaresaC, C++yC#.
• Lacombinacióndeoperandos(variables,palabras
reservadas,literales,llamadasamétodosycampos)
yoperadores permitenformar expresiones.
• Unaclasificacióndelosoperadoreses:
– Operadoresaritméticos
– Operadoresrelacionales
– Operadoreslógicos
– Operadorescondicionales
– Operadoresdeasignación
64
Java
Operadores y expresiones
• Laevaluacióndeunaexpresióndacomoresultado
unvalor deundeterminadotipodedato.
• Laprecedenciaindicael ordendeevaluacióncuando
hayvariosoperadoresenlamismaexpresiónyla
asociatividad cuandotienenlamismaprecedencia.
• Todoslosoperadoresbinarios, exceptolosde
asignación,seasociandeizquierdaaderecha.
• Losoperadoresdeasignaciónseasociandederecha
aizquierda.
65
Java
Operadores y expresiones: precedencia
Precedencia Expresión Tipos de
Operand
os
Descripción
1. exp++
exp−−
Numéri
co
Numéri
co
Incremento postfijo; resultado es el
valor antes Decremento postfijo;
resultado es el valor antes
2. ++exp
−−exp
+exp
Numéri
co
Numéri
co
Numéri
co
Incrementoprefijo; resultado esel valor después
Decremento prefijo; resultado es el valor
desp.
Positivo unario
−exp
~exp
!exp
Numérico
Integer,
boolean
Boolean
Negativo
unario
Complemento
bits Negación
lógica
3. exp1 * exp2
exp1 / exp2
Numéri
co
Multiplicación
División
66
Java
Operadores y expresiones: precedencia
Precedencia Expresión Tipos de
Operand
os
Descripción
5. exp1 << exp2
exp1 >> exp2
exp1 >>> exp2
Integ
er
Integ
er
Integ
er
Desplazamientoizquierda,rellenode0s
Desplazamiento derecha con signo
Desplazamiento derecha sin signo, relleno de0s
6. exp1 < exp2
exp1 > exp2
Numéri
co
Numéri
co
Menor
que
Mayor
que
exp1 <= exp2
exp1 >= exp2
Numéri
co
Numéri
co
Menor que o
igual a Mayor
que o igual a
7. exp1 == exp2
exp1 != exp2
Cualquie
ra
Cualquie
Igual de
comparación
Diferente
67
Java
Operadores y expresiones: precedencia
Precedencia Expresión Tipos de
Operand
os
Descripción
12. exp1 || exp2 Boolean O lógico
13. exp1 ? exp2 : exp3 exp1:Boolean
exp2/3,:Cualqui
era
Expresión condicional
14. var = exp Cualquiera Asignación:
var += exp Numérico, String var op= exp
var −= exp Numérico equivale a:
var *= exp Numérico var = (var) op (exp) con la
excepción
var /= exp Numérico que var se evalúa una sola vez
var %= exp Numérico
var <<= exp Integer
var >>= exp Integer
var >>>= exp Integer
var &= exp Integer, boolean
var ^= exp Integer, boolean
var |= exp Integer, boolean
68
Java
Operadores aritméticos
• Seusanconoperandosdetiposenteroypunto
flotante.
Operador Uso Descripción
* op1 * op2 Multiplicación
/ op1 / op2 División
% op1 % op2 Resto, módulo.
Equivalencia x % y ==
x – (x / y) * y
+ op1 + op2
+ op
Suma
Signo positivo
− op1 − op2
– op
Resta
Signo negativo
69
Java
Operadores aritméticos
• Enlasoperacionesdedivisiónymódulo, si ambos
operandossonenteroshayquetenercuidadodeno
perder “precisión”.
int first = 7, second = 4, answer;
answer = first / second; // answer es 1
– Elresultado esunentero, sepierdela parte fraccionaria.
• Parahallar el restodeladivisiónenteraseusael
operador módulo%
int first = 7, second = 4, answer, remainder;
answer = first / second;
remainder = first % second; // remainder es 3
70
Java
Operaciones con potencias y raíces
• Javanotieneoperadoresparapotenciasyraíces. En
sulugar ofrecemétodosdelaclaseMath. Ejemplo:
Java
• Otrosmétodosson:
Método Descripción
Math.sin(x) seno de x (en radianes)
Math.cos(x) coseno de x (en radianes)
Math.tan(x) tangente de x
Math.log10(x) logaritmo decimal log10(x), x > 0
Math.abs(x) valor absoluto | x |
71
Java
Operaciones aritméticas
• Las operaciones conenterosnuncasedesbordan. Si
el valor excede el rango desu tipo se extiende por el
módulodel rango.
• Enexpresiones x/y yx%yseproduceunaexcepción
detipoArithmeticExceptioncuandoyes0.
• Lasoperacionesconpuntoflotantesiguenlanorma
IEEE-754-1985.Unaventajaesquenosegenera
unaexcepciónbajoningunacircunstancia(el
programanoabortacuandoseproduceunadivisión
por cero).
72
Java
Operaciones aritméticas
• LanormaIEEE-754definedosnúmerosmágicos:
InfinityyNaN(not anumber).
• Reglasquegobiernanlamultiplicaciónydivisión:
– Siningunodelos operandosesNaNel resultado es:
x y x / y x * y
Finito ±0.0 ±∞ ±0.0
Finito ±∞ ±0.0 ±∞
±0.0 ±0.0 NaN ±0.0
±∞ Finito ±∞ ±∞
±∞ ±∞ NaN ±∞
±0.0 ±∞ ±0.0 NaN
– Sialgún operandoesNaNel resultado esNaN.
Java 73
Concatenación de cadenas (+)
• EltipoString sirveparadeclarareinicializarcadenas
decaracteres:
String nombre = ″Esteban″
• LaclaseStringdisponedemétodos. Ejemplo:
int n = nombre.length(); // n = 7
• Eloperador+tambiénsepuedeusarparaconcatenar
doscadenas.Siunodelosoperandosesunacadena
yelotroes de otrotipo,ésteúltimose convertiráa
unarepresentacióndecadenayseconcatenaráal
operandocadena.
74
Java
Concatenación de cadenas (+)
• ‘Sumar’ unStringal final deotro:
String fName = ″Harry″; String lName =
″Morgan″; String name = fName + lName; //
HarryMorgan
• Añadir unespacioentrelosdos:
String name = fName + ″ ″ + lName; // Harry Morgan
• ConcatenarunvalornuméricoaunavariableString:
String a = ″Agent″; int n = 7;
String bond = a + n; // Agent7
• ConcatenarStringsyvaloresnuméricosdentrode
println:
System.out.println(″El precio total es ″ + total);
75
Java
Operadores de incremento/decremento
• Seaplicanconoperandosdetiposenteroypunto
flotante. Puedenser postfijosoprefijos.
Operador Uso Descripción
++ op++ Incrementa op en 1. El valor de la
expresión es el valor de op antes
del incremento
++ ++op Incrementa op en 1. El valor de la
expresión es el valor de op después
del incremento
− − o p − − Decrementa op en 1. El valor de la
expresión esel valor deopantes del
decremento
− − − − o p Decrementa op en 1. El valor de la
expresión esel valor deopdespués del
76
Java
Operadores de incremento/decremento
• Ejemplos:
int i = 10;
int j = 3;
int k = 0;
k = ++j + i; //resultado: k = 4 + 10 = 14
int i = 10;
int j = 3;
int k = 0;
77
Java
k = j++ + i; //resultado: k = 3 + 10 = 13
Operadores relacionales
• Comparandosvaloresydeterminanlarelaciónentre
esosvalores.Elresultadoesboolean(trueofalse).
Operador Uso Descripción
> op1 > op2 op1 es mayor que op2
>= op1 >= op2 op1 es mayor o igual a op2
< op1 < op2 op1 es menor que op2
<= op1 <= op2 op1 es menor o igual a op2
== op1 == op2 op1 y op2 son iguales
!= op1 != op2 op1 y op2 no son iguales (diferentes)
78
Java
Operadores relacionales
• Losoperadores==(igual decomparación) y!=
(diferente)sepuedenaplicaracualquiertipode
operando.
• Losoperadores<, <=, >y>=seaplicansóloatipos
numéricos.
79
Java
Operadores lógicos
• Seaplicanaoperandosdetipoboolean.Elresultado
esboolean(trueofalse).
x1 x2 x1 && x2
AND
x1 || x2
OR
!x1
NOT
TRUE TRUE TRUE TRUE FALSE
TRUE FALSE FALSE TRUE FALSE
FALSE TRUE FALSE TRUE TRUE
FALSE FALSE FALSE FALSE TRUE
80
Java
Operadores lógicos booleanos
• Seaplicanaoperandosdetipointegeroboolean.
x y ~x
complemento
x & y
AND
x | y
OR inclusivo
x ^ y
OR exclusivo
TRUE TRUE FALSE TRUE TRUE FALSE
TRUE FALSE FALSE FALSE TRUE TRUE
FALSE TRUE TRUE FALSE TRUE TRUE
FALSE FALSE TRUE FALSE FALSE FALSE
81
Java
Operadores lógicos && y & (boolean)
82
Java
• LadiferenciaentrelosoperadoreslógicosANDes
que&&realizaunaevaluaciónparcialo″corto
circuito″ mientrasque&no.
• Así enlaexpresiónexp1 && exp2
– &&evaluará la expresión exp1yretorna false deforma
inmediatasi exp1esfalse.
– Si exp1esfalse, el operador nuncaevaluarála
expresiónexp2porqueel resultadodela expresión es
false sinimportar el valor deexp2.
• Por el contrario, el operador &siempreevaluaráexp1
yexp2antesdedevolver unvalor.
Operadores lógicos || y | (boolean)
83
Java
• LadiferenciaentrelosoperadoreslógicosOResque
|| realizaunaevaluaciónparcialo″cortocircuito″
mientrasque| no.
• Así enlaexpresiónexp1 || exp2
– || evaluará la expresión exp1yretorna true deforma
inmediatasi exp1estrue.
– Si exp1estrue, el operador nuncaevaluarála
expresión exp2porqueel resultado dela expresión es
true sin
importar el valor deexp2.
• Por el contrario, el operador | y^siempreevaluará
exp1yexp2antesdedevolver unvalor.
Operadores de desplazamiento bits
• Seaplicanaoperandosdetipointeger.
Expresión Descripción
x << k Desplaza los bits en x k lugares a la izquierda
rellenando por la derecha con 0 bits.
El resultado es x • 2k
x >> k Desplaza los bits en x k lugares a la derecha
rellenando por la izquierda con el bit más alto
(signo).
El resultado es x / 2k
x >>> k Desplaza los bits en x k lugares a la derecha
rellenando por la izquierda con 0 bits
84
Java
Operador condicional ( ? : )
• Eloperadorcondicionalesternarioyporello requiere
detresexpresionescomooperandos.
• Lasintaxisdeunaexpresiónqueusael operador
condicional es:
exp1 ? exp2 : exp3
donde:exp1 esunaexpresiónboolean,exp2 y
exp3 puedenser decualquier tipo
• Resultado:el valordelaexpresióncondicionales
exp2 si exp1 estrueyexp3 si exp1esfalse.
85
Java
Operador condicional ( ? : ): ejemplo
public class OperadorCondicional {
String status =
public static void main(String[] args) {
"";
int grade = 80;
// Obtiene el estado de un estudiante
status = (grade >= 60)?"Apto":"No apto";
// Imprime status
System.out.println(status);
}
}
• Resultado:
Apto
86
Java
Operadores de asignación
• Eloperadordeasignaciónsimplees=ounode:
+= − = *= /= %=
<<= >>= >>>= &= ^= |=
• Laexpresióndeasignación: var op= exp
esequivalentea: var = (var) op (exp)
Conlaexcepciónquevar seevalúaunasolavezen
el primer caso.
87
Java
Ejemplos
• Programasdelastransparencias:
http://personales.unican.es/corcuerp/Java/Labs/codigo/HolaMundo.java
http://personales.unican.es/corcuerp/Java/Labs/codigo/Circulo.java
http://personales.unican.es/corcuerp/Java/Labs/codigo/PrintfDemo.java
http://personales.unican.es/corcuerp/Java/Labs/codigo/OperadorCondicional.java
• Algunosprogramasparaexperimentar son:
http://personales.unican.es/corcuerp/Java/Labs/codigo/Literales.java
http://personales.unican.es/corcuerp/Java/Labs/codigo/OperadoresAritmeticos.java
http://personales.unican.es/corcuerp/Java/Labs/codigo/OperadoresRelacionales.java
http://personales.unican.es/corcuerp/Java/Labs/codigo/OperadoresLogicos.java
http://personales.unican.es/corcuerp/Java/Labs/codigo/OperadoresBits.java
http://personales.unican.es/corcuerp/Java/Labs/codigo/OperadoresAsignacion.java
88
Java

Más contenido relacionado

Similar a Prog_BasicaJava (1).pptx (20)

Introducción a la algoritmia
Introducción a la algoritmiaIntroducción a la algoritmia
Introducción a la algoritmia
 
Lenguajes de programación orientados a objetos
Lenguajes de programación orientados a objetosLenguajes de programación orientados a objetos
Lenguajes de programación orientados a objetos
 
Curso Java Inicial 2 - Introducción y Sintaxis
Curso Java Inicial  2 - Introducción y SintaxisCurso Java Inicial  2 - Introducción y Sintaxis
Curso Java Inicial 2 - Introducción y Sintaxis
 
Información básica Java
Información básica JavaInformación básica Java
Información básica Java
 
Java world
Java worldJava world
Java world
 
Programación en java
Programación en javaProgramación en java
Programación en java
 
Lenguaj script
Lenguaj scriptLenguaj script
Lenguaj script
 
Tipos de datos
Tipos de datosTipos de datos
Tipos de datos
 
Clasen1java
Clasen1javaClasen1java
Clasen1java
 
Java12
Java12Java12
Java12
 
Programacion java
Programacion javaProgramacion java
Programacion java
 
Javaqert
JavaqertJavaqert
Javaqert
 
Javaqert
JavaqertJavaqert
Javaqert
 
Grupo1
Grupo1Grupo1
Grupo1
 
Tema 1[1][1]
Tema 1[1][1]Tema 1[1][1]
Tema 1[1][1]
 
Java 1[1]
Java 1[1]Java 1[1]
Java 1[1]
 
Comandos
ComandosComandos
Comandos
 
Java
JavaJava
Java
 
TABLA DE COMANDO /SENTENCIAS/PAQUETES
TABLA DE COMANDO /SENTENCIAS/PAQUETESTABLA DE COMANDO /SENTENCIAS/PAQUETES
TABLA DE COMANDO /SENTENCIAS/PAQUETES
 
investigación de Comandos, Sentencias y/o Paquetes del Lenguaje de Programaci...
investigación de Comandos, Sentencias y/o Paquetes del Lenguaje de Programaci...investigación de Comandos, Sentencias y/o Paquetes del Lenguaje de Programaci...
investigación de Comandos, Sentencias y/o Paquetes del Lenguaje de Programaci...
 

Más de SANTOS400018

INDICADORESssaaadadsafsafafasfafaasfa.pptx
INDICADORESssaaadadsafsafafasfafaasfa.pptxINDICADORESssaaadadsafsafafasfafaasfa.pptx
INDICADORESssaaadadsafsafafasfafaasfa.pptxSANTOS400018
 
Sesion_15-Auditoria-Redes-COBITDSFSDFA.ppt
Sesion_15-Auditoria-Redes-COBITDSFSDFA.pptSesion_15-Auditoria-Redes-COBITDSFSDFA.ppt
Sesion_15-Auditoria-Redes-COBITDSFSDFA.pptSANTOS400018
 
Sesion_07-Configuracion-DNSASDASDASDASF.ppt
Sesion_07-Configuracion-DNSASDASDASDASF.pptSesion_07-Configuracion-DNSASDASDASDASF.ppt
Sesion_07-Configuracion-DNSASDASDASDASF.pptSANTOS400018
 
Sesion_10b-ASNVDZFASFASDASDASDSDDDDDDDDDAS.pt
Sesion_10b-ASNVDZFASFASDASDASDSDDDDDDDDDAS.ptSesion_10b-ASNVDZFASFASDASDASDSDDDDDDDDDAS.pt
Sesion_10b-ASNVDZFASFASDASDASDSDDDDDDDDDAS.ptSANTOS400018
 
EXPOSICION-3gdsgsgfdgfgdfgdfgdfgdfgee.ppt
EXPOSICION-3gdsgsgfdgfgdfgdfgdfgdfgee.pptEXPOSICION-3gdsgsgfdgfgdfgdfgdfgdfgee.ppt
EXPOSICION-3gdsgsgfdgfgdfgdfgdfgdfgee.pptSANTOS400018
 
TEORÍA-COMUNICACIÓNqwewqrwq-EXPOSICION.ppt
TEORÍA-COMUNICACIÓNqwewqrwq-EXPOSICION.pptTEORÍA-COMUNICACIÓNqwewqrwq-EXPOSICION.ppt
TEORÍA-COMUNICACIÓNqwewqrwq-EXPOSICION.pptSANTOS400018
 
METASISTEMA-EXPOSICIONsfwerwerwrqwrqr.ppt
METASISTEMA-EXPOSICIONsfwerwerwrqwrqr.pptMETASISTEMA-EXPOSICIONsfwerwerwrqwrqr.ppt
METASISTEMA-EXPOSICIONsfwerwerwrqwrqr.pptSANTOS400018
 
EXPOSICION-2sasdADAdADAdasssssASASad.ppt
EXPOSICION-2sasdADAdADAdasssssASASad.pptEXPOSICION-2sasdADAdADAdasssssASASad.ppt
EXPOSICION-2sasdADAdADAdasssssASASad.pptSANTOS400018
 
EXPOSICIONasdasdasdaszdfaszfsdfsdgggsd-1.ppt
EXPOSICIONasdasdasdaszdfaszfsdfsdgggsd-1.pptEXPOSICIONasdasdasdaszdfaszfsdfsdgggsd-1.ppt
EXPOSICIONasdasdasdaszdfaszfsdfsdgggsd-1.pptSANTOS400018
 
TEORÍA-COMUNICACIÓNgkghkkhk-EXPOSICION.ppt
TEORÍA-COMUNICACIÓNgkghkkhk-EXPOSICION.pptTEORÍA-COMUNICACIÓNgkghkkhk-EXPOSICION.ppt
TEORÍA-COMUNICACIÓNgkghkkhk-EXPOSICION.pptSANTOS400018
 
METASISTEMA-EXPOSICIONfgertertertretr.ppt
METASISTEMA-EXPOSICIONfgertertertretr.pptMETASISTEMA-EXPOSICIONfgertertertretr.ppt
METASISTEMA-EXPOSICIONfgertertertretr.pptSANTOS400018
 
EXPOSICIONfyeryeryeryrtytrutyutyiyuiui.pptx
EXPOSICIONfyeryeryeryrtytrutyutyiyuiui.pptxEXPOSICIONfyeryeryeryrtytrutyutyiyuiui.pptx
EXPOSICIONfyeryeryeryrtytrutyutyiyuiui.pptxSANTOS400018
 
CLASE_MODELO_EXPOSICIONzxfsdfdvfgfgh.pptx
CLASE_MODELO_EXPOSICIONzxfsdfdvfgfgh.pptxCLASE_MODELO_EXPOSICIONzxfsdfdvfgfgh.pptx
CLASE_MODELO_EXPOSICIONzxfsdfdvfgfgh.pptxSANTOS400018
 
Sumilla del Curso-gestion de redes -(SI 115).pdf
Sumilla del Curso-gestion de redes -(SI 115).pdfSumilla del Curso-gestion de redes -(SI 115).pdf
Sumilla del Curso-gestion de redes -(SI 115).pdfSANTOS400018
 
TEMA - SOTELO ANTAURCOfgfdgdfgdfgfhgfh.pdf
TEMA - SOTELO ANTAURCOfgfdgdfgdfgfhgfh.pdfTEMA - SOTELO ANTAURCOfgfdgdfgdfgfhgfh.pdf
TEMA - SOTELO ANTAURCOfgfdgdfgdfgfhgfh.pdfSANTOS400018
 
Primera_D-Semanaz<xcz<c<zc-Fundamentos_C++.ppt
Primera_D-Semanaz<xcz<c<zc-Fundamentos_C++.pptPrimera_D-Semanaz<xcz<c<zc-Fundamentos_C++.ppt
Primera_D-Semanaz<xcz<c<zc-Fundamentos_C++.pptSANTOS400018
 
Metodo-Gaussadasdasfasfasfdgfgfhgfhgjhj.pptx
Metodo-Gaussadasdasfasfasfdgfgfhgfhgjhj.pptxMetodo-Gaussadasdasfasfasfdgfgfhgfhgjhj.pptx
Metodo-Gaussadasdasfasfasfdgfgfhgfhgjhj.pptxSANTOS400018
 
Representecion-EspectraDAxz<x<zx<zxz<l.pptx
Representecion-EspectraDAxz<x<zx<zxz<l.pptxRepresentecion-EspectraDAxz<x<zx<zxz<l.pptx
Representecion-EspectraDAxz<x<zx<zxz<l.pptxSANTOS400018
 
Teoria-Probabilidad-3dfsdfsdgsdgsgfdgdf.ppt
Teoria-Probabilidad-3dfsdfsdgsdgsgfdgdf.pptTeoria-Probabilidad-3dfsdfsdgsdgsgfdgdf.ppt
Teoria-Probabilidad-3dfsdfsdgsdgsgfdgdf.pptSANTOS400018
 
Teoria-Probabilidadasffsdfdgfdfgfghgfh.ppt
Teoria-Probabilidadasffsdfdgfdfgfghgfh.pptTeoria-Probabilidadasffsdfdgfdfgfghgfh.ppt
Teoria-Probabilidadasffsdfdgfdfgfghgfh.pptSANTOS400018
 

Más de SANTOS400018 (20)

INDICADORESssaaadadsafsafafasfafaasfa.pptx
INDICADORESssaaadadsafsafafasfafaasfa.pptxINDICADORESssaaadadsafsafafasfafaasfa.pptx
INDICADORESssaaadadsafsafafasfafaasfa.pptx
 
Sesion_15-Auditoria-Redes-COBITDSFSDFA.ppt
Sesion_15-Auditoria-Redes-COBITDSFSDFA.pptSesion_15-Auditoria-Redes-COBITDSFSDFA.ppt
Sesion_15-Auditoria-Redes-COBITDSFSDFA.ppt
 
Sesion_07-Configuracion-DNSASDASDASDASF.ppt
Sesion_07-Configuracion-DNSASDASDASDASF.pptSesion_07-Configuracion-DNSASDASDASDASF.ppt
Sesion_07-Configuracion-DNSASDASDASDASF.ppt
 
Sesion_10b-ASNVDZFASFASDASDASDSDDDDDDDDDAS.pt
Sesion_10b-ASNVDZFASFASDASDASDSDDDDDDDDDAS.ptSesion_10b-ASNVDZFASFASDASDASDSDDDDDDDDDAS.pt
Sesion_10b-ASNVDZFASFASDASDASDSDDDDDDDDDAS.pt
 
EXPOSICION-3gdsgsgfdgfgdfgdfgdfgdfgee.ppt
EXPOSICION-3gdsgsgfdgfgdfgdfgdfgdfgee.pptEXPOSICION-3gdsgsgfdgfgdfgdfgdfgdfgee.ppt
EXPOSICION-3gdsgsgfdgfgdfgdfgdfgdfgee.ppt
 
TEORÍA-COMUNICACIÓNqwewqrwq-EXPOSICION.ppt
TEORÍA-COMUNICACIÓNqwewqrwq-EXPOSICION.pptTEORÍA-COMUNICACIÓNqwewqrwq-EXPOSICION.ppt
TEORÍA-COMUNICACIÓNqwewqrwq-EXPOSICION.ppt
 
METASISTEMA-EXPOSICIONsfwerwerwrqwrqr.ppt
METASISTEMA-EXPOSICIONsfwerwerwrqwrqr.pptMETASISTEMA-EXPOSICIONsfwerwerwrqwrqr.ppt
METASISTEMA-EXPOSICIONsfwerwerwrqwrqr.ppt
 
EXPOSICION-2sasdADAdADAdasssssASASad.ppt
EXPOSICION-2sasdADAdADAdasssssASASad.pptEXPOSICION-2sasdADAdADAdasssssASASad.ppt
EXPOSICION-2sasdADAdADAdasssssASASad.ppt
 
EXPOSICIONasdasdasdaszdfaszfsdfsdgggsd-1.ppt
EXPOSICIONasdasdasdaszdfaszfsdfsdgggsd-1.pptEXPOSICIONasdasdasdaszdfaszfsdfsdgggsd-1.ppt
EXPOSICIONasdasdasdaszdfaszfsdfsdgggsd-1.ppt
 
TEORÍA-COMUNICACIÓNgkghkkhk-EXPOSICION.ppt
TEORÍA-COMUNICACIÓNgkghkkhk-EXPOSICION.pptTEORÍA-COMUNICACIÓNgkghkkhk-EXPOSICION.ppt
TEORÍA-COMUNICACIÓNgkghkkhk-EXPOSICION.ppt
 
METASISTEMA-EXPOSICIONfgertertertretr.ppt
METASISTEMA-EXPOSICIONfgertertertretr.pptMETASISTEMA-EXPOSICIONfgertertertretr.ppt
METASISTEMA-EXPOSICIONfgertertertretr.ppt
 
EXPOSICIONfyeryeryeryrtytrutyutyiyuiui.pptx
EXPOSICIONfyeryeryeryrtytrutyutyiyuiui.pptxEXPOSICIONfyeryeryeryrtytrutyutyiyuiui.pptx
EXPOSICIONfyeryeryeryrtytrutyutyiyuiui.pptx
 
CLASE_MODELO_EXPOSICIONzxfsdfdvfgfgh.pptx
CLASE_MODELO_EXPOSICIONzxfsdfdvfgfgh.pptxCLASE_MODELO_EXPOSICIONzxfsdfdvfgfgh.pptx
CLASE_MODELO_EXPOSICIONzxfsdfdvfgfgh.pptx
 
Sumilla del Curso-gestion de redes -(SI 115).pdf
Sumilla del Curso-gestion de redes -(SI 115).pdfSumilla del Curso-gestion de redes -(SI 115).pdf
Sumilla del Curso-gestion de redes -(SI 115).pdf
 
TEMA - SOTELO ANTAURCOfgfdgdfgdfgfhgfh.pdf
TEMA - SOTELO ANTAURCOfgfdgdfgdfgfhgfh.pdfTEMA - SOTELO ANTAURCOfgfdgdfgdfgfhgfh.pdf
TEMA - SOTELO ANTAURCOfgfdgdfgdfgfhgfh.pdf
 
Primera_D-Semanaz<xcz<c<zc-Fundamentos_C++.ppt
Primera_D-Semanaz<xcz<c<zc-Fundamentos_C++.pptPrimera_D-Semanaz<xcz<c<zc-Fundamentos_C++.ppt
Primera_D-Semanaz<xcz<c<zc-Fundamentos_C++.ppt
 
Metodo-Gaussadasdasfasfasfdgfgfhgfhgjhj.pptx
Metodo-Gaussadasdasfasfasfdgfgfhgfhgjhj.pptxMetodo-Gaussadasdasfasfasfdgfgfhgfhgjhj.pptx
Metodo-Gaussadasdasfasfasfdgfgfhgfhgjhj.pptx
 
Representecion-EspectraDAxz<x<zx<zxz<l.pptx
Representecion-EspectraDAxz<x<zx<zxz<l.pptxRepresentecion-EspectraDAxz<x<zx<zxz<l.pptx
Representecion-EspectraDAxz<x<zx<zxz<l.pptx
 
Teoria-Probabilidad-3dfsdfsdgsdgsgfdgdf.ppt
Teoria-Probabilidad-3dfsdfsdgsdgsgfdgdf.pptTeoria-Probabilidad-3dfsdfsdgsdgsgfdgdf.ppt
Teoria-Probabilidad-3dfsdfsdgsdgsgfdgdf.ppt
 
Teoria-Probabilidadasffsdfdgfdfgfghgfh.ppt
Teoria-Probabilidadasffsdfdgfdfgfghgfh.pptTeoria-Probabilidadasffsdfdgfdfgfghgfh.ppt
Teoria-Probabilidadasffsdfdgfdfgfghgfh.ppt
 

Último

Flujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxFlujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxEduardoSnchezHernnde5
 
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxAMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxLuisvila35
 
183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdf183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdfEdwinAlexanderSnchez2
 
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdf
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdfPresentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdf
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdfMIGUELANGELCONDORIMA4
 
Reporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacaReporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacajeremiasnifla
 
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdfAnthonyTiclia
 
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaProyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaXjoseantonio01jossed
 
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdf
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdfCENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdf
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdfpaola110264
 
Normas para los aceros basados en ASTM y AISI
Normas para los aceros basados en ASTM y AISINormas para los aceros basados en ASTM y AISI
Normas para los aceros basados en ASTM y AISIfimumsnhoficial
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)ssuser563c56
 
Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfedsonzav8
 
sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7luisanthonycarrascos
 
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023ANDECE
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASfranzEmersonMAMANIOC
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMarceloQuisbert6
 
Caldera Recuperadora de químicos en celulosa tipos y funcionamiento
Caldera Recuperadora de químicos en celulosa  tipos y funcionamientoCaldera Recuperadora de químicos en celulosa  tipos y funcionamiento
Caldera Recuperadora de químicos en celulosa tipos y funcionamientoRobertoAlejandroCast6
 
clases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdfclases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdfDanielaVelasquez553560
 
Edificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaEdificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaANDECE
 
Diapositiva de Topografía Nivelación simple y compuesta
Diapositiva de Topografía Nivelación simple y compuestaDiapositiva de Topografía Nivelación simple y compuesta
Diapositiva de Topografía Nivelación simple y compuestajeffsalazarpuente
 
Fijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEFijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEANDECE
 

Último (20)

Flujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxFlujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptx
 
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxAMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
 
183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdf183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdf
 
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdf
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdfPresentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdf
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdf
 
Reporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacaReporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpaca
 
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
 
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaProyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
 
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdf
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdfCENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdf
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdf
 
Normas para los aceros basados en ASTM y AISI
Normas para los aceros basados en ASTM y AISINormas para los aceros basados en ASTM y AISI
Normas para los aceros basados en ASTM y AISI
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
 
Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdf
 
sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7
 
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principios
 
Caldera Recuperadora de químicos en celulosa tipos y funcionamiento
Caldera Recuperadora de químicos en celulosa  tipos y funcionamientoCaldera Recuperadora de químicos en celulosa  tipos y funcionamiento
Caldera Recuperadora de químicos en celulosa tipos y funcionamiento
 
clases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdfclases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdf
 
Edificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaEdificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes Granada
 
Diapositiva de Topografía Nivelación simple y compuesta
Diapositiva de Topografía Nivelación simple y compuestaDiapositiva de Topografía Nivelación simple y compuesta
Diapositiva de Topografía Nivelación simple y compuesta
 
Fijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEFijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSE
 

Prog_BasicaJava (1).pptx

  • 1. Programación básica en Java Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria corcuerp@unican.es
  • 2. Objetivos • Describir las partes básicas de un programa en Java. • Presentar los elementos lexicales del lenguaje de programación Java. • Diferenciar entre literales, tipos de datos primitivos, identificadores, tipos de variables, y operadores. • Desarrollar programas simples válidos. 2 Java
  • 3. Índice • Análisis del primer programa Java • Comentarios • Elementos lexicales • Tipos de datos primitivos • Variables • Impresión de variables • Operadores y expresiones 3 Java
  • 4. Análisis del primer programa Java /* ** * Ejemplo HolaMundo Imprime el mensaje "Hola, Mundo!" * / public class 4 Java HolaMundo { main(String[] args) { public static void // Imprime el mensaje "Hola, Mundo!" System.out.println("Hola, Mundo!"); } }
  • 5. Análisis del primer programa Java /* ** * Ejemplo HolaMundo Imprime el mensaje "Hola, Mundo!" */ • Lascuatroprimeraslíneasdelcódigofuenteson comentarios. • Uncomentario: – sirveparadocumentarparte delcódigo. – noespartedel programa, peroseusaconel propósito de documentarlo. – esunabuenaprácticadeprogramación añadir comentariosal código. 5 Java
  • 6. Análisis del primer programa Java /* ** * Ejemplo HolaMundo Imprime el mensaje "Hola, Mundo!" */ public class HolaMundo { • Indicael nombredelaclasequeesHolaMundo. • EnJava,todoel códigodebesercolocadodentrode unadeclaracióndeclase. • El especificador deaccesoalaclasepublic, indica quelaclaseesaccesibledesdeotrasclasesdeotros paquetes(lospaquetessoncoleccionesdeclases). 6 Java
  • 7. Análisis del primer programa Java /* ** * Ejemplo HolaMundo Imprime el mensaje "Hola, Mundo!" */ public class HolaMundo { • Lallaveindicael iniciodeunbloque. • Enestecódigolallavesehacolocadoenlamisma líneaqueladeclaracióndeclase, peropuede ponerseenlasiguientelínea. 7 Java
  • 8. Análisis del primer programa Java public class HolaMundo { public static void main(String[] args) { • Indicael nombredeunmétodoenHolaMundoquees el métodoprincipal. Java. • TodoslosprogramasenJava, exceptolosapplets, empiezanconel métodomain. • Esnecesariocolocar todaladeclaración exactamente. 8 Java
  • 9. Análisis del primer programa Java public class HolaMundo { public static void main(String[] args) { // Imprime el mensaje "Hola, Mundo!" • OtrotipodecomentarioJava. 9 Java
  • 10. Análisis del primer programa Java public class HolaMundo { public static void main(String[] args) { // Imprime el mensaje "Hola, Mundo!" System.out.println("Hola, Mundo!"); • LainstrucciónSystem.out.println()imprimeel texto • System.out serefierealasalidaestándar. • El métodoprintln() imprimesuargumentocomouna cadenadecaracteresconunsaltodelínea final. • Todainstrucciónterminaconun; 10 Java
  • 11. Análisis del primer programa Java /* ** * Ejemplo HolaMundo Imprime el mensaje "Hola, Mundo!" * / public class HolaMundo { main(String[] args) { public static void // Imprime el mensaje "Hola, Mundo!" 11 Java System.out.println("Hola, Mundo!"); } } • Lasdosúltimasllavesseusanparacerrar el bloque correspondiente al método main y la clase principal respectivamente.
  • 12. Directivas de programación • LosficherosdeprogramasJavasiempredeben terminar conlaextensión.java • Losnombresdelosficherosdebencoincidir conel nombredelaclasepública.Porejemplo,silaclase públicaesHolaMundo,sedebeguardarenunfichero HolaMundo.java • Sedebenintroducir comentariosenel código explicandoloquehaceunaclaseométodo. 12 Java
  • 13. Comentarios en Java • Loscomentariossonnotasintroducidasenel código conel propósitodedocumentación. • Eltextodeloscomentariosnoespartedelprograma ynoafectael flujodeejecucióndelprograma. • HaytrestiposdecomentariosenJava: – ComentarioestiloCodepárrafo. – ComentarioestiloC++odelínea. – Comentarioespecial Javadoc. 13 Java
  • 14. Comentarios en Java • ComentarioestiloCodepárrafo: – Selesllama tambiénmultilínea – Todotexto encerrado entre /* y*/ quepuedeestar enuna ovariaslíneassetratacomocomentario. – Ejemplo: /* este es un ejemplo de un comentario estilo C o multilinea */ 14 Java
  • 15. Comentarios en Java • ComentarioestiloC++odelínea: – Empiezancon// yseextiendenhastael final dela línea. – Todoel texto quesigue a// setrata comocomentario. – Ejemplo: // este es un comentario estilo C++ o de linea 15 Java
  • 16. Comentarios en Java • ComentariodocumentaciónJavaoJavadoc: – LoscomentariosJavadocseusanparagenerarla documentaciónenHTMLapartir delosprogramas Java. Seutilizan para documentarclases, camposymétodos. – SepuedencrearcomentariosJavadocempezando la línea con/** yfinalizando con*/. Dela mismaformaque loscomentariosestiloCsepuedenextenderporvarias líneas. Puedeconteneretiquetas paraañadirinformación aloscomentarios – Seusalautilidaddegeneraciónautomática de documentaciónllamada javadoc. 16 Java
  • 17. Javadoc • Lasetiquetasmásutilizadasson: Tag Descripción @author Nombre del desarrollador. @deprecated Indicaqueelmétodooclaseesobsoletoyquenoserecomiendasuuso. @param Definicióndeunparámetrodeunmétodo. @return Describeelvalordevueltodeunmétodo. @see Asocia con otro método o clase. @since Fechaoversiónenqueaparecióporprimeravezla característica. @throws Excepciónlanzadaporelmétodo @version Versión del método o clase. 17 Java
  • 18. Javadoc - ejemplo /** * Clase para representar círculos sobre el plano. * Un círculo se define por su radio y las * coordenadas de su centro. * @version 1.2, 2/09/10 * @author Pedro Corcuera */ public class protected Circulo { double x,y; // coordenadas del centro double r; // radio del círculo 18 Java protected /** * Crea un * @param * @param * @param círculo a partir de su origen y radio. x Coordenada x del centro del círculo. y Coordenada y del centro del círculo. r Radio del círculo. (>= 0). */ public Circulo(double x, double y, double r) { this.x=x; this.y = y; this.r = r; }
  • 19. Javadoc - ejemplo /** * Cálculo del área de este * @return El área (mayor o */ public double area() { círculo. igual que 0) del círculo. return Math.PI*r*r; } /** si un punto está dentro del círculo. px py componente x del punto componente y del punto 19 Java * Indica * @param * @param * @return true si el punto está dentro del círculo o false en otro caso. */ public boolean contiene(double px, double py) { /* Calculamos la distancia de (px,py) al centro del círculo (x,y), que se obtiene como raíz cuadrada de (px-x)^2+(py-y)^2 */ double d = Math.sqrt((px-x)*(px-x)+(py-y)*(py-y)); // el círculo contiene el punto si d es menor o igual al radio return d <= r; } }
  • 20. Javadoc • Paragenerar ladocumentación(formatoHTML) se puedeutilizar: – Modocomando: >javadocCirculo.java – Lamayoríadeentornosdeprogramacióndisponende un menúpara ejecutar javadoc.Porejemplo en NetBeans: 20 Java
  • 21. Instrucciones Java • Instrucción – unaomáslíneas decódigo terminada porunpunto y coma(;). – Ejemplo: System.out.println("Hola, Mundo!"); 21 Java
  • 22. Bloques Java • Bloque – esunaomásinstrucciones encerradas entre llaves ({ }) queagrupalasinstruccionescomounaunidad. – lasinstruccionesdebloquesepuedenanidar indefinidamente. – sepermite cualquier cantidad deespacios enblanco. – Ejemplo: public static void main(String[] args) { // Imprime el mensaje "Hola, Mundo!" System.out.println("Hola, Mundo!"); } 22 Java
  • 23. Directivas de programación • Enlacreacióndebloques, sepuedecolocar lallave deaperturaenlínea conla instrucción.Ejemplo: public static void main(String[] args) { • osepuedecolocar lallaveenlasiguientelínea: public static void main(String[] args) { • Sedebenindentar lasinstruccionesdentrodeun bloqueparamostrarsunivel deprofundidad. public static void main(String[] args) { System.out.println("Hola, Mundo!"); } 23 Java
  • 24. Elementos lexicales – Conjunto de caracteres • LosprogramasenJavaseescribenenUnicode. • Unicodeesunestándar internacional deconjuntosde caracteres(16bits)quecontieneloscódigosde caracteresdela mayoríadelenguajesutilizadosenel mundo. • ElconjuntodecaracteresASCII(7bits)equivalealos primeros128caracteresdeUnicode(ISO-8859-1). 24 Java
  • 25. Elementos lexicales - Identificadores • Losidentificadoresseusanparanombrar clases, métodos, variablesytodoloquerequieraunnombre. • UnidentificadorenJavaempiezaconuna letra (nuncaundígito!)ypuedeestarseguidodeletrasy dígitos. Debeser diferentealaspalabrasreservadas del lenguaje. • En Java letras incluye los caracteres en los alfabetos detodos los lenguajesdeUnicode,el guiónbajo(_) y el signodólar ($). • Javadistingueentremayúsculasyminúsculas. 25 Java
  • 26. Directivas de programación • Paranombresdelasclasesponer enmayúsculala primeraletradelnombredela clase.Ejemplo: EsteEsUnEjemploDeNombreDeClase • Paranombresdemétodosyvariablesponer en minúsculala primeraletradelnombre.Ejemplo: esteEsUnEjemploDeNombreDeMetodo • Encasodeidentificadoresmultipalabraponer en mayúsculasólolaprimeraletradecadapalabra. • Evitar usar guiónbajoal iniciodeunidentificador. 26 Java
  • 27. Palabras reservadas en Java • Laspalabrasreservadassonidentificadores predefinidosreservadospor Javaparaunpropósito específico. • Nosepuedeusar laspalabrasreservadascomo nombresdevariables, clases, métodos,… etc. 27 Java
  • 28. abstract double instanceof static assert else int strictfp boolean enum interface super break extends long switch byte final native synchronize d case finally new this catch float package throw char for private throws class goto* protected transient const* if public try continue implements return void default import short volatile do while Palabras reservadas en Java 28 Java * const y goto no se usan true, false y null son literales
  • 29. Literales en Java • Literalessonsímbolosquenocambian– son constantes. • LosdiferentestiposdeliteralesenJavason: – LiteralesBooleanos (boolean) – LiteralesEnteros(integer) – LiteralesPuntoFlotantes(floatingpoint) – LiteralesCaracter (character) – LiteralesdeCadenas deCaracteres(String) 29 Java
  • 31. Literales enteros • Losliteralesenterospuedenescribirseentres formatos: – decimal (base10): empiezanconundígitodecimal diferente aceroseguidopordígitos decimales (p.e. 30). – hexadecimal(base16): empiezan con0x o0X, seguido dedígitos hexadecimales(p.e. 0x1Ey0XC1E). – octal (base8): empiezacon0, seguidodedígitos octales (p.e. 036). 31 Java
  • 32. Literales punto flotante • Losliteralesenpuntoflotanterepresentandecimales conpartedecimal. • Seescribenconunnúmerodecimalconunaparte exponencialopcional(notacióncientífica): digitos.[digitos][(e|E)Enteroconsigno] • Ejemplos: – 3.1416 – 583.45 32 Java 314.16E-2 5.8345e2
  • 33. Literales caracter • LosliteralescaracterrepresentancaracteresUnicode (16bits). Seescribenentrecomillassimples' ' • LoscaracteresASCII sepuedenescribir directamente, p.e. ′c′. • LoscaracteresnoASCIIsepuedenescribircon códigoshexadecimalesuoctales. – Encódigo hexadecimal, u esseguidoporcuatro dígitos hexadecimales. Ejemplos: ′u00E6′ ′u5496′ ′u03b1′ – Encódigo octal, esseguidoporunootres dígitos octales. Ejemplos: ′377′ ′040′ 33 Java
  • 34. Literales caracter – secuencias de escape • Haycaracteresespeciales, conocidoscomo secuenciasdeescape(escapesequences),quese escriben: Descripción Escape Sequence Unicode Backspace b u0008 Tab t u0009 Linefeed n u000A Carriage return r u000D Form feed f u000C Backslash u005C Single Quote ' u0027 34 Java
  • 35. Literales Cadenas de caracteres • LosliteralescadenasdecaracteresoString representasecuenciasdecaracteres,incluyendolas secuenciasdeescape,encerradasporcomillas dobles. • Ejemplos: Literal String ″Unliteral cadena″ ″″Unanota″ ″ ″u00E6u0027″ 35 Java Valor Unliteral cadena ″Unanota″ æ'
  • 36. Tipos de datos primitivos • El lenguajedeprogramaciónJavadefineochotipos dedatosprimitivos: – boolean(paralógica) – char (paratextos) – byte – short – int – long(integral) – double – float (puntoflotante) 36 Java
  • 37. Tipos de datos primitivos - boolean • Untipodedatobooleanorepresentadosestados: trueyfalse. • Unejemploes: booleanresultado=true; • Elejemploanteriordeclaraunavariableresultado comodetipobooleanyleasignael valor detrue. • Noescompatiblecontiposenteros(comoenC). • Lascondicionesdelasinstruccionesdecontrol(p.e. if, while) seesperanqueseandetipoboolean. 37 Java
  • 38. Tipos de datos primitivos - char • Untipodedatocharrepresentauncaractersimple Unicode(65536símbolos). • Debetenerel literal encerradoentrecomillassimples ''. • Ejemplos: ′a′ letraa ′t′ tabulador ′′′ comillasimple ′″′ comilladoble 38 Java
  • 39. Tipos de datos primitivos - String • Stringno esuntipodedatoprimitivo, esunaclase. • UnStringocadenadecaracteresrepresentauntipo dedatoquecontienevarioscaracteres. • Tienela parteliteralencerradaentrecomillasdobles ″cadena″ • Ejemplo: Stringmensaje=″HolaMundo!″ 39 Java
  • 40. Tipos de datos primitivos - Integer • Lostiposdedatosintegralesoenteros(byte,short, int ylong) enJavarepresentanenterosdediferentes tamaños. • Sepuedeusar tresformas: decimal, octal o hexadecimal parasurepresentación. • El tipodedatointegral por defectoesint. • Sepuededefinir el valor largoañadiendolaletral oL. • Ejemplos: 2 077 0xBAC 10L 40 Java
  • 41. Tipos de datos primitivos – Integer • Tamañoyrangodeenteros: Tipo Tamañ o (bit) Valor Mínimo Valor Máximo byte 8 -128 (-27) 127 (27-1) short 16 -32768 (-215) 32767 (215-1) int 32 -2147483648 (-231) 2147483647 (231-1) long 64 -92233720368854775808 92233720368854775807 (-263) (263-1) 41 Java
  • 42. Tipos de datos primitivos – Punto flotante • Lostiposdedatosdepuntoflotante(float ydouble) enJavarepresentannúmerosengeneral. • Losliteralesenpuntoflotanteincluyenunaparte decimal ounodelossiguientes: – Eoe // valor exponencial – Fof // (float) – Dod // (double) • Eltipodedatopuntoflotantepordefectoesdouble. • Ejemplos: 3.1415 6.02E23 2.718F 123.4E35d 42 Java
  • 43. Tipos de datos primitivos – Punto flotante • Lostiposdedatosdepuntoflotantesealmacenan segúnIEEE-754: – Signo – Exponentedespl. – Mantisa Signo -1 Mantisa 5 Baseexponente 100 Partes de un número en punto flotante -5: • El signousael bit mássignificativo. • Elexponenteempleaunbyteenformatodesplazado. • Lamantisaocupa23bits(float)y52bits(double). 43 Java
  • 44. Tipos de datos primitivos – Punto flotante • Tamañoyrangodetiposreales: Tipo Tamaño (bit) Rango float 32 + / - 3.4 ·1038 double 64 + / - 1.8 ·10308 44 Java
  • 45. Tipos de datos primitivos – Almacenamiento por tipo (bytes) ❑ Integer Types ▪ byte: ▪ short: ▪ int: ▪ long: ❑ Floating Point Types ▪ float: ▪ double: ❑ Other Types ▪ boolean: ▪ char: 45 Java
  • 46. Variables • Unavariableesunaposicióndememoriadondese almacenaunvalor(estadodeunobjeto). • Tieneunnombreparafacilitar el acceso. • Unavariabletieneasociadoun: – Tipo: el tipoindicael tipodevalor quelavariable puede almacenar. – Nombre:elnombredelavariabledebeseguirlasreglas paralos identificadores. • Javasoportadosclasesdetipos:tiposprimitivosy tiposreferencia. 46 Java
  • 47. Variables – declaración e inicialización • Sintaxisparadeclarar unavariable: <tipo> <nombre> [= valor inicial]; – Nota:losvaloresencerradosentre<>sonvalores requeridos, mientras quelos encerradosentre [ ] son opcionales. • Ejemplos: int tanqueN1=6; doubletanqueVolumen=12.0; booleanresultado; char opcion=′c′; 47 Java
  • 48. Variables – Directivas de programación • Usar nombresdescriptivosparalasvariables, empezandosiempreporunaletraenminúscula. • Esrecomendableinicializar lasvariablesenel momentodeladeclaración. Losvaloresinicialespor defectodelosdiferentestiposson: Tipo Valor inicial por defecto Integer 0 Floating-point 0.0 Char u0000 Boolean False Reference null 48 Java
  • 49. Compatibilidad de tipos y conversión • Compatibilidaddetipos: untipoT1escompatible contipoT2siunvalordeltipoT1puedeaparecer dondeseaqueunvalordeltipoT2seesperay viceversa. • Conversión detipos: eslaconversióndevaloresde untipoavaloresdeotrotipo. • Ampliación y estrechamientodetipos numéricos: convertiruntiponuméricoderangopequeñoaun tiponuméricodemayor rangoesampliación. Lo opuestoesestrechamiento. 49 Java
  • 50. Compatibilidad de tipos y conversión • Tamañosyrangosdetiposnuméricosordenadosde menor amayor: byte short int long float double • Laampliacióndetiposserealizademaneraimplícita, mientrasqueelestrechamientopuederesultaren pérdidadeprecisión.Por ello,es necesariorealizar uncast explícito(sinoel compilador produceerror). • Ejemplo: int i =10;longm=10000L;doubled=Math.PI; i =(int) m; m=i; m=(long) d; d=m; 50 Java
  • 51. Impresión simple del valor de variables • Paraimprimir el valor deunavariablesepuedeusar cualquieradelasinstrucciones: System.out.println() Añadeunanuevalíneaal final del datoimpreso System.out.print() Noañadeunanuevalínea al final deldatoimpreso 51 Java
  • 52. Impresión simple del valor de variables - Ejemplos • Código1: System.out.print(″Hola″); System.out.print(″Mundo″); Salida: HolaMundo • Código2: System.out.println(″Hola″); System.out.println(″Mundo″); Salida: Hola Mundo 52 Java
  • 53. Impresión simple del valor de variables - Ejemplo public class ImprimeVariable { public static void main(String[] args) { int valor = 10; char x = ′A′; System.out.println(valor); System.out.println(″Valor de x = ″ + x); 53 Java } } • Resultadoenpantalla: 10 Valor dex=A
  • 54. Impresión con formato de variables • Emulalaimpresiónconformatoprintf()deC. • Sintaxisdel método: System.out.printf(Stringdeformato,Objectos...args) • ElStringdeformatopuedecontenerespecificadores deformatocuyasintaxises: %[argument_index$][flags][width][.precision]conversion_char El carácter deconversiónpuedeser: f parapuntos flotantes oparaoctales gnotación puntoflotante general 54 Java dparaenteros eparanotación científica sparacadenas decaracteres
  • 55. Tipos de formato de impresión • Sepuedeincluir textodentrodelascomillas: System.out.printf(″Precio por litro: %10.2f″, precio); 55 Java
  • 56. Flags para formatos de impresión • Sepuedeusar flagsdeformatosparacambiar lamanera en queel texto ylos valoresnuméricossemuestran: 56 Java
  • 57. Impresión con formato de variables System.out.printf(″%10.2f″, precio); System.out.printf(″%-10s″, ″Total:″); 10 espacios 2 espacios System.out.printf(″%-10s%10.2f″, ″Total:″, precio); 57 Java
  • 58. Impresión con formato de variables - Ejemplo public class PrintfDemo { public static void main(String[] args) { double q = 1.0/3.0; System.out.printf ("1.0/3.0 = %5.3f %n", q); System.out.printf ("1.0/3.0 = %7.5f %n", q); q q q q q = 1.0/2.0; System.out.printf ("1.0/2.0 = %09.3f %n", q); = 1000.0/3.0; System.out.printf ("1000/3.0 = %7.2e %n", q); = 3.0/4567.0; System.out.printf ("3.0/4567.0 = %7.2e %n", q); = -1.0/0.0; System.out.printf ("-1.0/0.0 = %7.2e %n", q); = 0.0/0.0; System.out.printf ("0.0/0.0 = %5.2e %n", q); System.out.printf ("pi = %5.3f, e = %5.4f %n", Math.PI, Math.E); double r = 1.1; System.out.printf ("C = 2 * %1$5.5f * %2$4.1f, "+ "A = %2$4.1f * %2$4.1f * %1$5.5f %n", Math.PI, r); } } 58 Java
  • 59. Impresión con formato de variables – Resultado del Ejemplo • Salida: 1.0/3.0=0,333 1.0/3.0=0,33333 1.0/2.0=00000,500 1000/3.0=3.33e+02 3.0/4567.0=6.57e-04 -1.0/0.0=-Infinity 0.0/0.0= NaN pi =3.142, e=2.7183 C=2* 3.14159* 1.1, A= 1.1* 1.1* 3.14159 • Enlaceaopciones deprintf: http://download-llnw.oracle.com/javase/tutorial/java/data/numberformat.html 59 Java
  • 60. Variables primitivas y variables referencia • Javadisponededostiposdevariablesquese correspondenconlostiposempleadosensu declaración: – Variables primitivas – Variables referencia • Variablesprimitivas: – Variablesdeclaradas contipos dedatosprimitivos. – Almacenanlos datosenla ubicación dela memoria asignadaalavariable. 60 Java
  • 61. Variables primitivas y variables referencia • Lostiposdedatosdereferenciasonclass, interfaceo array. • Variablesreferencia: – Variablesquealmacenan la dirección dememoriadeotro variable:apuntanaotradireccióndememoriadondese encuentralosdatos. – Cuandosedeclaraunavariabledeunaciertaclase, se estádeclarandounavariablereferenciaal objetocon esa clase. • LasreferenciasenJavaseimplementancomo punterosde32bits. 61 Java
  • 62. Variables referencia: diferencia con punteros C y C++ • LasvariablesreferenciaJavasediferenciandelos punterosCyC++en: Cy C++ Java Lospunterossepuedenmodificar mediantecast, aritméticade Javanopermiteestasoperacionesy prohíbelamanipulacióndirectade punterosoasignacióndevalores. 62 Java variablesreferencia Lospunteroshacenreferenciaa segmentosdememoriaquese separandinámicamente.El programadoresresponsablede gestionarlaasignaciónyliberación dememoria. Lasvariablesreferenciaapuntanal espaciodememoriaquees dinámicamenteasignadopor el garbage-collectorheap. Los programadoresestánliberadosdela responsabilidaddegestionarla memoria.
  • 63. Variables primitivas y variables referencia Ejemplo public class TiposVariables { public static void main(String[] args) { int num = 10; // tipo primitivo String name = ″Hola″; // tipo referencia } } 10 : Dirección(2000) : ″Hola″ NombreVariable Dato Dirección Memoria 1001 : 1563 : 2000 num name 63 Java
  • 64. Operadores y expresiones • JavaofreceoperadoressimilaresaC, C++yC#. • Lacombinacióndeoperandos(variables,palabras reservadas,literales,llamadasamétodosycampos) yoperadores permitenformar expresiones. • Unaclasificacióndelosoperadoreses: – Operadoresaritméticos – Operadoresrelacionales – Operadoreslógicos – Operadorescondicionales – Operadoresdeasignación 64 Java
  • 65. Operadores y expresiones • Laevaluacióndeunaexpresióndacomoresultado unvalor deundeterminadotipodedato. • Laprecedenciaindicael ordendeevaluacióncuando hayvariosoperadoresenlamismaexpresiónyla asociatividad cuandotienenlamismaprecedencia. • Todoslosoperadoresbinarios, exceptolosde asignación,seasociandeizquierdaaderecha. • Losoperadoresdeasignaciónseasociandederecha aizquierda. 65 Java
  • 66. Operadores y expresiones: precedencia Precedencia Expresión Tipos de Operand os Descripción 1. exp++ exp−− Numéri co Numéri co Incremento postfijo; resultado es el valor antes Decremento postfijo; resultado es el valor antes 2. ++exp −−exp +exp Numéri co Numéri co Numéri co Incrementoprefijo; resultado esel valor después Decremento prefijo; resultado es el valor desp. Positivo unario −exp ~exp !exp Numérico Integer, boolean Boolean Negativo unario Complemento bits Negación lógica 3. exp1 * exp2 exp1 / exp2 Numéri co Multiplicación División 66 Java
  • 67. Operadores y expresiones: precedencia Precedencia Expresión Tipos de Operand os Descripción 5. exp1 << exp2 exp1 >> exp2 exp1 >>> exp2 Integ er Integ er Integ er Desplazamientoizquierda,rellenode0s Desplazamiento derecha con signo Desplazamiento derecha sin signo, relleno de0s 6. exp1 < exp2 exp1 > exp2 Numéri co Numéri co Menor que Mayor que exp1 <= exp2 exp1 >= exp2 Numéri co Numéri co Menor que o igual a Mayor que o igual a 7. exp1 == exp2 exp1 != exp2 Cualquie ra Cualquie Igual de comparación Diferente 67 Java
  • 68. Operadores y expresiones: precedencia Precedencia Expresión Tipos de Operand os Descripción 12. exp1 || exp2 Boolean O lógico 13. exp1 ? exp2 : exp3 exp1:Boolean exp2/3,:Cualqui era Expresión condicional 14. var = exp Cualquiera Asignación: var += exp Numérico, String var op= exp var −= exp Numérico equivale a: var *= exp Numérico var = (var) op (exp) con la excepción var /= exp Numérico que var se evalúa una sola vez var %= exp Numérico var <<= exp Integer var >>= exp Integer var >>>= exp Integer var &= exp Integer, boolean var ^= exp Integer, boolean var |= exp Integer, boolean 68 Java
  • 69. Operadores aritméticos • Seusanconoperandosdetiposenteroypunto flotante. Operador Uso Descripción * op1 * op2 Multiplicación / op1 / op2 División % op1 % op2 Resto, módulo. Equivalencia x % y == x – (x / y) * y + op1 + op2 + op Suma Signo positivo − op1 − op2 – op Resta Signo negativo 69 Java
  • 70. Operadores aritméticos • Enlasoperacionesdedivisiónymódulo, si ambos operandossonenteroshayquetenercuidadodeno perder “precisión”. int first = 7, second = 4, answer; answer = first / second; // answer es 1 – Elresultado esunentero, sepierdela parte fraccionaria. • Parahallar el restodeladivisiónenteraseusael operador módulo% int first = 7, second = 4, answer, remainder; answer = first / second; remainder = first % second; // remainder es 3 70 Java
  • 71. Operaciones con potencias y raíces • Javanotieneoperadoresparapotenciasyraíces. En sulugar ofrecemétodosdelaclaseMath. Ejemplo: Java • Otrosmétodosson: Método Descripción Math.sin(x) seno de x (en radianes) Math.cos(x) coseno de x (en radianes) Math.tan(x) tangente de x Math.log10(x) logaritmo decimal log10(x), x > 0 Math.abs(x) valor absoluto | x | 71 Java
  • 72. Operaciones aritméticas • Las operaciones conenterosnuncasedesbordan. Si el valor excede el rango desu tipo se extiende por el módulodel rango. • Enexpresiones x/y yx%yseproduceunaexcepción detipoArithmeticExceptioncuandoyes0. • Lasoperacionesconpuntoflotantesiguenlanorma IEEE-754-1985.Unaventajaesquenosegenera unaexcepciónbajoningunacircunstancia(el programanoabortacuandoseproduceunadivisión por cero). 72 Java
  • 73. Operaciones aritméticas • LanormaIEEE-754definedosnúmerosmágicos: InfinityyNaN(not anumber). • Reglasquegobiernanlamultiplicaciónydivisión: – Siningunodelos operandosesNaNel resultado es: x y x / y x * y Finito ±0.0 ±∞ ±0.0 Finito ±∞ ±0.0 ±∞ ±0.0 ±0.0 NaN ±0.0 ±∞ Finito ±∞ ±∞ ±∞ ±∞ NaN ±∞ ±0.0 ±∞ ±0.0 NaN – Sialgún operandoesNaNel resultado esNaN. Java 73
  • 74. Concatenación de cadenas (+) • EltipoString sirveparadeclarareinicializarcadenas decaracteres: String nombre = ″Esteban″ • LaclaseStringdisponedemétodos. Ejemplo: int n = nombre.length(); // n = 7 • Eloperador+tambiénsepuedeusarparaconcatenar doscadenas.Siunodelosoperandosesunacadena yelotroes de otrotipo,ésteúltimose convertiráa unarepresentacióndecadenayseconcatenaráal operandocadena. 74 Java
  • 75. Concatenación de cadenas (+) • ‘Sumar’ unStringal final deotro: String fName = ″Harry″; String lName = ″Morgan″; String name = fName + lName; // HarryMorgan • Añadir unespacioentrelosdos: String name = fName + ″ ″ + lName; // Harry Morgan • ConcatenarunvalornuméricoaunavariableString: String a = ″Agent″; int n = 7; String bond = a + n; // Agent7 • ConcatenarStringsyvaloresnuméricosdentrode println: System.out.println(″El precio total es ″ + total); 75 Java
  • 76. Operadores de incremento/decremento • Seaplicanconoperandosdetiposenteroypunto flotante. Puedenser postfijosoprefijos. Operador Uso Descripción ++ op++ Incrementa op en 1. El valor de la expresión es el valor de op antes del incremento ++ ++op Incrementa op en 1. El valor de la expresión es el valor de op después del incremento − − o p − − Decrementa op en 1. El valor de la expresión esel valor deopantes del decremento − − − − o p Decrementa op en 1. El valor de la expresión esel valor deopdespués del 76 Java
  • 77. Operadores de incremento/decremento • Ejemplos: int i = 10; int j = 3; int k = 0; k = ++j + i; //resultado: k = 4 + 10 = 14 int i = 10; int j = 3; int k = 0; 77 Java k = j++ + i; //resultado: k = 3 + 10 = 13
  • 78. Operadores relacionales • Comparandosvaloresydeterminanlarelaciónentre esosvalores.Elresultadoesboolean(trueofalse). Operador Uso Descripción > op1 > op2 op1 es mayor que op2 >= op1 >= op2 op1 es mayor o igual a op2 < op1 < op2 op1 es menor que op2 <= op1 <= op2 op1 es menor o igual a op2 == op1 == op2 op1 y op2 son iguales != op1 != op2 op1 y op2 no son iguales (diferentes) 78 Java
  • 79. Operadores relacionales • Losoperadores==(igual decomparación) y!= (diferente)sepuedenaplicaracualquiertipode operando. • Losoperadores<, <=, >y>=seaplicansóloatipos numéricos. 79 Java
  • 80. Operadores lógicos • Seaplicanaoperandosdetipoboolean.Elresultado esboolean(trueofalse). x1 x2 x1 && x2 AND x1 || x2 OR !x1 NOT TRUE TRUE TRUE TRUE FALSE TRUE FALSE FALSE TRUE FALSE FALSE TRUE FALSE TRUE TRUE FALSE FALSE FALSE FALSE TRUE 80 Java
  • 81. Operadores lógicos booleanos • Seaplicanaoperandosdetipointegeroboolean. x y ~x complemento x & y AND x | y OR inclusivo x ^ y OR exclusivo TRUE TRUE FALSE TRUE TRUE FALSE TRUE FALSE FALSE FALSE TRUE TRUE FALSE TRUE TRUE FALSE TRUE TRUE FALSE FALSE TRUE FALSE FALSE FALSE 81 Java
  • 82. Operadores lógicos && y & (boolean) 82 Java • LadiferenciaentrelosoperadoreslógicosANDes que&&realizaunaevaluaciónparcialo″corto circuito″ mientrasque&no. • Así enlaexpresiónexp1 && exp2 – &&evaluará la expresión exp1yretorna false deforma inmediatasi exp1esfalse. – Si exp1esfalse, el operador nuncaevaluarála expresiónexp2porqueel resultadodela expresión es false sinimportar el valor deexp2. • Por el contrario, el operador &siempreevaluaráexp1 yexp2antesdedevolver unvalor.
  • 83. Operadores lógicos || y | (boolean) 83 Java • LadiferenciaentrelosoperadoreslógicosOResque || realizaunaevaluaciónparcialo″cortocircuito″ mientrasque| no. • Así enlaexpresiónexp1 || exp2 – || evaluará la expresión exp1yretorna true deforma inmediatasi exp1estrue. – Si exp1estrue, el operador nuncaevaluarála expresión exp2porqueel resultado dela expresión es true sin importar el valor deexp2. • Por el contrario, el operador | y^siempreevaluará exp1yexp2antesdedevolver unvalor.
  • 84. Operadores de desplazamiento bits • Seaplicanaoperandosdetipointeger. Expresión Descripción x << k Desplaza los bits en x k lugares a la izquierda rellenando por la derecha con 0 bits. El resultado es x • 2k x >> k Desplaza los bits en x k lugares a la derecha rellenando por la izquierda con el bit más alto (signo). El resultado es x / 2k x >>> k Desplaza los bits en x k lugares a la derecha rellenando por la izquierda con 0 bits 84 Java
  • 85. Operador condicional ( ? : ) • Eloperadorcondicionalesternarioyporello requiere detresexpresionescomooperandos. • Lasintaxisdeunaexpresiónqueusael operador condicional es: exp1 ? exp2 : exp3 donde:exp1 esunaexpresiónboolean,exp2 y exp3 puedenser decualquier tipo • Resultado:el valordelaexpresióncondicionales exp2 si exp1 estrueyexp3 si exp1esfalse. 85 Java
  • 86. Operador condicional ( ? : ): ejemplo public class OperadorCondicional { String status = public static void main(String[] args) { ""; int grade = 80; // Obtiene el estado de un estudiante status = (grade >= 60)?"Apto":"No apto"; // Imprime status System.out.println(status); } } • Resultado: Apto 86 Java
  • 87. Operadores de asignación • Eloperadordeasignaciónsimplees=ounode: += − = *= /= %= <<= >>= >>>= &= ^= |= • Laexpresióndeasignación: var op= exp esequivalentea: var = (var) op (exp) Conlaexcepciónquevar seevalúaunasolavezen el primer caso. 87 Java
  • 88. Ejemplos • Programasdelastransparencias: http://personales.unican.es/corcuerp/Java/Labs/codigo/HolaMundo.java http://personales.unican.es/corcuerp/Java/Labs/codigo/Circulo.java http://personales.unican.es/corcuerp/Java/Labs/codigo/PrintfDemo.java http://personales.unican.es/corcuerp/Java/Labs/codigo/OperadorCondicional.java • Algunosprogramasparaexperimentar son: http://personales.unican.es/corcuerp/Java/Labs/codigo/Literales.java http://personales.unican.es/corcuerp/Java/Labs/codigo/OperadoresAritmeticos.java http://personales.unican.es/corcuerp/Java/Labs/codigo/OperadoresRelacionales.java http://personales.unican.es/corcuerp/Java/Labs/codigo/OperadoresLogicos.java http://personales.unican.es/corcuerp/Java/Labs/codigo/OperadoresBits.java http://personales.unican.es/corcuerp/Java/Labs/codigo/OperadoresAsignacion.java 88 Java