Sei sulla pagina 1di 15

CINFO - UNMSM Clase 2: Lenguaje Java Sintaxis Parte I 1. 2. *. ,. 0. 4. 6. I enti!

!i"a #res $aria%les &L#"ales' Mie(%r#) +(%it# e $aria%les &M# i!i"a #res) -i.#s e /at#s Organi1a"i2n Pa3uetes C#nversi2n 5ntre -i.#s (Casting) O.era #res &7rit(8ti"#s' 9ela"i2nales' L2gi"#s' :it' 7signa"i2n ; C#n"atena"i2n) <. Pre"e en"ia =. C#nstantes L5N>U7J5 J7$7 - SIN-7?IS 1.- I/5N-IFIC7/O95S Los identificadores sirven para nombrar variables, propiedades, mtodos, clases, objetos, interfaces y cualquier otra entidad que sea necesario identificar para poder usar. En Java, un nombre de identificador debe empezar con una letra, un smbolo de subrayado (_ o un smbolo d!lar (" . El resto de los caracteres empleados pueden ser letras o n#meros. $o e%iste una lon&itud m'%ima y se distin&uen las may#sculas de las min#sculas. 2.- $79I7:L5S (na variable es un nombre que contiene un valor que puede cambiar a lo lar&o del pro&rama es decir representan direcciones de memoria en las que podemos alojar temporalmente la informaci!n que necesitemos, y por otro, nos ofrecen la facilidad de referirnos a ellas mediante un nombre. (na declaraci!n de variable se compone de dos partes) su tipo y su nombre. *dicionalmente puede indicarse un valor para su inicializaci!n. El tipo de la variable determina los valores que puede contener y las operaciones que se podr'n realizar con ella. +e&#n el tipo de informaci!n que contienen pueden ser variables de tipos primitivos o variables de referencia. ,esde el punto de vista del papel que desempe-an, las variables pueden ser) $aria%le (ie(%r# e una "lase: +e definen dentro de la clase y fuera de cualquier mtodo. $aria%les l#"ales: +e definen dentro de un mtodo o, m's en &eneral, dentro de cualquier bloque entre llaves (@ A . +e crean dentro del bloque y se destruyen al finalizar dic.o bloque.

E%iste una serie de palabras reservadas las cuales tienen un si&nificado especial para Java y por lo tanto no se pueden utilizar como nombres de variables. ,ic.as palabras son) abstract c.ar double for int pac/a&e boolean class else &oto0 interface private brea/ const0 e%tends if lon& protected byte continue final implements native public case default finally import ne1 return catc. do float instanceof null s.ort

Ing. Carl#s 5. /uran

Fl#res

J7$7 :7SICO

CINFO - UNMSM static t.ro1s super transient s1itc. try sync.ronized void t.is volatile t.ro1 1.ile

(0 +on palabras reservadas, pero no se utilizan en la actual implementaci!n del len&uaje Java. *.- +M:I-O /5 $79I7:L5S +e denomina visi%ili a , B(%it# o al"an"e de una variable, a la parte de una aplicaci!n en la que dic.a variable es accesible. En otras palabras, la parte en la cual puede usarse dic.a variable. C#(# n#r(a general' .# e(#s e"ir 3ue las varia%les e"lara as entr# e un %l#3ue &entre llaves) s#n visi%les ; existen entr# e ese %l#3ue. 2or ejemplo, las variables declaradas al principio de una funci!n e%isten mientras se ejecute la funci!n, las declaradas dentro de un bloque 3if4 s!lo ser'n accesibles y v'lidas dentro de dic.o bloque y las variables miembro de una clase son v'lidas mientras e%iste el objeto. Las variables miembro de una clase declarada como p#blica (public , ser'n accesibles mediante una referencia a un objeto de dic.a clase usando el operador punto. 2or su parte, las declaradas como privadas (private no son accesibles desde otras clases. Las funciones miembro de una clase tienen acceso directo a todas las variables miembro de la clase sin necesidad de anteponer el nombre de un objeto de la clase. +in embar&o, las funciones miembro de una clase 354 derivada de otra 3*4, tienen acceso a todas las variables miembro de 3*4 declaradas como p#blicas o prote&idas (protected , pero no a las declaradas como privadas. (na clase .ija s!lo puede acceder directamente a las variables y funci!n miembro de su clase padre declaradas como p#blicas o prote&idas. 6tra caracterstica del len&uaje Java consiste en que es .#si%le e"larar una varia%le entr# e un %l#3ue "#n el (is(# n#(%re 3ue una varia%le (ie(%r#' .er# n# "#n el n#(%re e #tra varia%le l#"al 3ue ;a existiera. La varia%le e"lara a entr# el %l#3ue #"ulta a la varia%le (ie(%r# en ese %l#3ue. Para a""e er a la varia%le (ie(%r# #"ulta serCa ne"esari# 3ue usBra(#s el #.era #r tDis. Sintaxis: 7modificador8 9nombre,e:ipo; 9nombre,e<ariable; 7= 9inicializador;8> *dicionalmente a las declaraciones de *cceso, las variables pueden ser declaradas como) Stati". <ariable de clase. (+olo e%iste una copia por clase con acceso compartido entre todas las instancias de la misma. . Este calificador indica que el objeto no necesita de un objeto para poder utilizarlo sino que se le utiliza directamente a travs de la clase. Final. ,eclara la variable como constante. Este calificador indica que el elemento no podr' ser modificado por nada, solo podr' ser utilizada.

En caso de que sea una variable de tipo primitivo indica que el valor no podr' ser cambiado. 2ara objetos, la referencia del mismo no podr' apuntar a un nuevo objeto, pero el objeto aun es capaz de ser modificado. MO/IFIC7/O95S &Niveles e 7""es#)

Pu%li". El campo es accesible de forma &eneral sin restricciones. Es decir indica que el elemento puede ser utilizado dentro de la clase, dentro de las clases descendientes y desde cualquier objeto de la clase. Pr#te"te . El campo es accesible desde cualquier subclase (tanto dentro como fuera del paquete y a todo mtodo dentro del paquete. Es decir indica que el Fl#res 2 J7$7 :7SICO

Ing. Carl#s 5. /uran

CINFO - UNMSM elemento puede ser utilizado dentro de la clase, dentro de las clases descendientes, mas no desde un objeto de la clase. /e!ault &Pa"Eage # ta(%ien en#(ina # Frien l;). El campo es accesible a todos los mtodos dentro del paquete. Es el acceso por defecto. Private. El campo es restrin&ido a la clase que lo declara.

,.- -IPOS /5 /7-OS P9IMI-I$OS ,eclarar un variable de tipo primitiva reserva de por si el espacio de memoria necesario. 5yte +.ort @nt Lon& ?.ar Aloat ,ouble 5oolean <oid Entero muy peque-o. Entero ?orto. Entero normal. Entero lar&o. ?ar'cter. $#mero real de precisi!n simple. $#mero real de doble precisi!n. <alor l!&ico. :ipo <aci!.

,e no asi&narse un valor de inicio, el compilador por defecto asi&nar' uno. -i.#s 5yte +.ort @nt Lon& ?.ar Aloat ,ouble 5oolean 0.- O9>7NIF7CIGN Pa3uetes &Pa"Eages): son un &rupo o librera de clases desarrolladas en java que se utilizan para al&o especfico. Las .rin"i.ales "lases de java son las si&uientes (incluidas en el J,L ) o java.a..let: ?reado para soportar la creaci!n de applet Java, el paquete java.applet permite a las aplicaciones ser descar&adas sobre una red y ejecutarse dentro de una sandbo%.. o java.aHt: La *bstract Mindo1 :ool/it contiene rutinas para soportar operaciones b'sicas N(@ y utiliza ventanas b'sicas desde el sistema nativo subyacente. o java.aHt.event: +oporte y procesamiento de eventos para controles a1t. o java.i#: El paquete java.io contiene clases que soportan entradaOsalida. Las clases del paquete son principalmente streams> sin embar&o, se incluye una clase para fic.eros de acceso aleatorio. o java.lang: El paquete Java java.lan& contiene clases fundamentales e interfaces fuertemente relacionadas con el len&uaje y el sistema runtime. Esto incluye las clases raz que forman la jerarqua de clases, tipos relacionados con la definici!n del len&uaje, e%cepciones b'sicas, funciones matem'ticas, Pilos, funciones de se&uridad, as como tambin al&una informaci!n sobre el sistema nativo subyacente. Pre"isi2n B bits DE bits FG bits EH bits DE bits FG bits EH bits K $al#r P#r /e!e"t# C C C C IuCCCC JC.Cf JC.Cd false

Ing. Carl#s 5. /uran

Fl#res

J7$7 :7SICO

CINFO - UNMSM java.net: El paquete java.net suminista rutinas especiales @6 para redes, permitiendo las peticiones P::2, as como tambin otras transacciones comunes. java.util: Las estructuras de datos que a&re&an objetos son el foco del paquete java.util. En el paquete est' incluida la *2@ ?ollections, una jerarqua or&anizada de estructura de datos influenciada fuertemente por consideraciones de patrones de dise-o. javax.sHing: +1in& es una colecci!n de rutinas que se construyen sobre java.a1t para suministrar un tool/it de 1id&ets independiente de plataforma. javax.sHing.event: +oporte y procesamiento de eventos para controles s1in&. java.(atD: El paquete java.mat. soporta aritmtica multiprecision (incluyendo operaciones aritmticas modulares y suministra &eneradores de n#meros primos multiprecision usados para la &eneraci!n de claves cripto&r'ficas.

o o o

INS-9UCCIGN IMPO9Pay c!di&o que se puede utilizar en los pro&ramas que realicemos en Java. +e importan clases de objetos que est'n contenidas, a su vez, en paquetes est'ndares. 2or ejemplo la clase ,ate es una de las m's utilizadas, sirve para manipular fec.as. +i al&uien quisiera utilizar en su c!di&o objetos de esta clase, necesita incluir una instrucci!n que permita utilizar esta clase. La sinta%is de esta instrucci!n es) i(.#rt .a3uete.su%.a3uete.su%su%a.3uete...."lase Esta instrucci!n se coloca arriba del todo en el c!di&o. 2ara la clase ,ate sera) i(.#rt java.util./ate Lo que si&nifica, importar en el c!di&o la clase ,ate que se encuentra dentro del paquete util que, a su vez, est' dentro del &ran paquete llamado java. :ambin se puede utilizar el asterisco en esta forma) i(.#rt java.util.I Esto si&nifica que se va a incluir en el c!di&o todas las clases que est'n dentro del paquete util de java. COM5N-79IOS En java al i&ual que en otros len&uajes e%isten los comentarios que son) OO O0 0O O00 0 0 0 0O ?omentario de una lnea. ?omentario de <arias lneas. ?omentario de ,ocumentaci!n Esta aplicaci!n realiza lo si&uiente) Q Rautor ?arlos ,urand Alores Rversion D.C

5je(.l#

Ing. Carl#s 5. /uran

Fl#res

J7$7 :7SICO

CINFO - UNMSM OO JCCF.java = dibuja G circunferencias import java.a1t.0> import java.a1t.event.0> class JCCF e%tends Arame S public JCCF( S set:itle(T,os circunferenciasT > U public static void main(+trin& 78 ar&s S Arame f=ne1 JCCF( > f.addMindo1Listener(ne1 Mindo1*dapter( S public void 1indo1?losin&(Mindo1Event e S +ystem.e%it(C > U U > f.set+ize(FCC,GCC > f.set<isible(true > U public void paint(Nrap.ics & S &.set?olor(?olor.red > &.dra16val(DC,FC,FC,FC > &.set?olor(?olor.blue > &.dra16val(FV,FC,FC,FC > &.dra1+trin&(T,os circunferenciasT,HC,DCC > U U !.setSi1e&4JJ',JJ) ,etermina el tama-o de la ventana) DW coordenada = ECC = anc.ura en p%els, GW coordenada = HCC = altura en p%els. g.setC#l#r&C#l#r're ) Establece el rojo como color de dibujo. g. raHOval&1J'*J'*J'*J) ,ibuja una circunferencia cuyo 3vrtice4 superior izquierdo se encuentra en el punto DC,FC. La tercera coordenada es el diametro .orizontal y la cuarta el di'metro vertical. ?omo los dos di'metros son i&uales, resulta una circunferencia. +i fueran distintos, seria una elipse. g. raHString&K/#s "ir"un!eren"iasL',J'1JJ) 3,ibuja4 el te%to que .ay entre comillas en el punto de coordenadas HC,DCC (DW coordenada= dist'ncia .orizontal desde el borde izquierdo, GW coordenada = dist'ncia vertical desde el borde superior . 4.- CON$59SIGN 5N-95 -IPOS (CASTING) Pay veces en las que se desear' realizar al&o como) int a>%;te b=DG> a=b> La duda est' en si esto se puede realizar. La respuesta es que s. + porque un dato byte es m's peque-o que uno int y Java le convertir' de forma implcita. +in embar&o en) int a=D> %;te b> b=a>

Ing. Carl#s 5. /uran

Fl#res

J7$7 :7SICO

CINFO - UNMSM El compilador devolver' error aunque el n#mero D sea v'lido para un dato byte. 2ara ello .ay que .acer un casting. Eso si&nifica poner el tipo deseado entre parntesis delante de la e%presi!n. int a=D> %;te b> bM &%;te) a> OO$o da error En el si&uiente ejemplo) %;te nD=DCC, nG=DCC, nF> nF= nD 0 nG ODCC> *unque el resultado es DCC, y ese resultado es v'lido para un tipo byte> lo que ocurrir' en realidad es que ocurrir' un error. Eso es debido a que primero multiplica DCC 0 DCC y como eso da DCCCC, no tiene m's remedio el compilador que pasarlo a entero y as quedar' aunque se vuelva a dividir. La soluci!n correcta sera) nF = (%;te (nD 0 nG O DCC > X's ejemplos de ?*+:@$N int a = GH> byte b = (byte a> s.ort c = (s.ort a> lon& d = (lon& a> 6.- OP597/O95S OPERADORES ARITMETICOS

Pay que tener en cuenta que el resultado de estos operadores vara notablemente si usamos enteros o si usamos n#meros de coma flotante. 2or ejemplo) #u%le resultadoD, dD=DH, dG=V> int resultadoG, iD=DH, iG=V> resultadoD= dD O dG> resultadoG= iD O iG> resultado1 valdr' G.B mientras que resultado2 valdr' G. Es m's incluso) #u%le resultado> int iD=Y,iG=G> resultado=iDOiG> //Resultado valdr 3 resultado=( #u%le iDO( #u%le iG> //Resultado valdr 3.5

Ing. Carl#s 5. /uran

Fl#res

J7$7 :7SICO

CINFO - UNMSM El operador del m!dulo (Z para calcular el resto de una divisi!n entera. Ejemplo) int resultado, iD=DH, iG=V> resultado = iD Z iG> OOEl resultado ser' H OPERADORES RELACIONALES +irven para comparar valores. +iempre devuelven valores booleanos. +on)

OPERADORES LOGICOS :ambin devuelven valores booleanos.

Los operadores l!&icos (*$,, 6[ y $6: , sirven para evaluar condiciones complejas. $6: sirve para ne&ar una condici!n. Ejemplo) %##lean mayor,eEdad, menor,eEdad> int edad = GD> mayor,eEdad = edad ;= DB> OOmayor,eEdad ser' true menor,eEdad = \mayor,eEdad> OOmenor,eEdad ser' false El operador ]] (*$, sirve para evaluar dos e%presiones de modo que si ambas son ciertas, el resultado ser' true sino el resultado ser' !alse. Ejemplo) %##lean carnet?onducir=true> int edad=GC> %##lean puede?onducir= (edad;=DB ]] carnet?onducir> OO+i la edad es de al menos DB a-os y carnet?onducir es OOtrue, puede?onducir es true El operador ^^ (6[ sirve tambin para evaluar dos e%presiones. El resultado ser' trae si al menos uno de las e%presiones es true. Ejemplo) %##lean nieva =true, llueve=!alse, &raniza=!alse> %##lean mal:iempo= nieva ^^ llueve ^^ &raniza> OPERADORES DE IT Xanipulan los bits de los n#meros. +on)

Ing. Carl#s 5. /uran

Fl#res

J7$7 :7SICO

CINFO - UNMSM

OPERADORES DE ASIGNACI!N 2ermiten asi&nar valores a una variable. El fundamental es 3=4. 2ero sin embar&o se pueden usar e%presiones m's complejas como) x NM *O En el ejemplo anterior lo que se .ace es sumar F a la % (es lo mismo %J=F, que %=%JF . Eso se puede .acer tambin con todos estos operadores)

:ambin se pueden concatenar asi&naciones) x1 M x2 M x* M 0O 6tros operadores de asi&naci!n son 3JJ4 (incremento y 3K K3 (decremento . Ejemplo) xNNO PPest# es xMxN1O x--O PPest# es xMx-1O 2ero .ay dos formas de utilizar el incremento y el decremento. +e puede usar por ejemplo %JJ o JJ%. La diferencia estriba en el modo en el que se comporta la asi&naci!n. Ejemplo) int %=V, y=V, z> z=%JJ> OOz vale 5, x vale 6 z=JJy> OOz vale 6, y vale 6 OPERADOR " Este operador (conocido como i! de una lnea permite ejecutar una instrucci!n u otra se&#n el valor de la e%presi!n. +inta%is) e#presi$nl$gi%aQval$rSi&erdader$'val$rSi(als$) Ejemplo) .agaM&e a R1<)Q4JJJ:*JJJO En este caso si la variable edad es mayor de DB, la pa&a ser' de ECCC, sino ser' de FCCC.

Ing. Carl#s 5. /uran

Fl#res

<

J7$7 :7SICO

CINFO - UNMSM +e eval#a una condici!n y se&#n es cierta o no se devuelve un valor u otro. $!tese que esta funci!n .a de devolver un valor y no una e%presi!n correcta. Es decir, no funcionara) &e a R1<)Q .agaM4JJJ: .agaM*JJJO *ERROR++++ OPERADOR ENTERO DE CONCATENACI!N DE CADENAS ?uando una cadena de te%to y una e%presi!n que no sea de tipo cadena se combinan usando el operador de concatenaci!n de cadenas (N , el resultado es una nueva cadena. ,ependiendo de la e%presi!n y de su contenido, podremos obtener los si&uientes resultados) +i la e%presi!n es un tipo de referencia con valor null, se obtendr' una nueva cadena i&ual a la cadena ori&inal m's la cadena 3null4. +i la e%presi!n es un tipo de referencia con valor distinto de null, se obtendr' una cadena i&ual a la ori&inal m's el valor devuelto por el mtodo to+trin&( del tipo de referencia. +i la e%presi!n es un tipo primitivo, se obtendr' una cadena i&ual a la ori&inal m's el valor del tipo primitivo representado como cadena.

<eamos unos ejemplos sobre las posibles concatenaciones e%puestas) +trin& inicial = 3*5?4> +trin& nulo = null> +trin& nonulo = 3def4> byte numero = GF> +trin& casoD = inicial J nulo> OO +e asi&na a la variable el valor 3*5?null4 +trin& casoG = inicial J nonulo> OO +e asi&na a la variable el valor 3*5?def4 +trin& casoF = inicial J numero> OO +e asi&na a la variable el valor 3*5?GF4 <.- P95C5/5NCI7 * veces .ay e%presiones con operadores que resultan confusas. 2or ejemplo en) resultado = B J H O G> Es difcil saber el resultado. _?u'l es` _+eis o diez` La respuesta es DC y la raz!n es que el operador de divisi!n siempre precede en el orden de ejecuci!n al de la suma. Es decir, siempre se ejecuta antes la divisi!n que la suma. +iempre se pueden usar parntesis para forzar el orden deseado) resultado = (B J H O G> *.ora no .ay duda, el resultado es seis. $o obstante el orden de precedencia de los operadores Java es)

Ing. Carl#s 5. /uran

Fl#res

J7$7 :7SICO

CINFO - UNMSM

En la tabla anterior los operadores con mayor precedencia est' en la parte superior, los de menor precedencia en la parte inferior. ,e izquierda a derec.a la precedencia es la misma. Es decir, tiene la misma precedencia el operador de suma que el de resta. Esto #ltimo provoca conflictos, por ejemplo en) resultado = a O F 0 F> El resultado podra ser uno ! nueve. En este caso el resultado es nueve, porque la divisi!n y el producto tienen la misma precedencia> por ello el compilador de Java realiza primero la operaci!n que este m's a la izquierda, que en este caso es la divisi!n. (na vez m's los parntesis podran evitar estos conflictos. LA CLASE MAT, +e ec.an de menos operadores matem'ticos m's potentes en Java. 2or ello se .a incluido una clase especial llamada MatD dentro del paquete java.lang 2ara poder utilizar esta clase, se debe incluir esta instrucci!n) i(.#rt java.lang.MatDO Esta clase posee mtodos muy interesantes para realizar c'lculos matem'ticos complejos. 2or ejemplo) #u%le %= MatD.po1(F,F O OO% es FF MatD posee dos constantes, que son)

2or otro lado posee numerosos mtodos que son)

Ing. Carl#s 5. /uran

Fl#res

1J

J7$7 :7SICO

CINFO - UNMSM

Ing. Carl#s 5. /uran

Fl#res

11

J7$7 :7SICO

CINFO - UNMSM

OPERADORES DE RE(ERENCIAS +e trata de operadores que operan sobre valores de tipo de referencia, esto es, sobre referencias a objetos, interfaces y arrays. E%isten distintas cate&oras y vamos a verlas detalladamente a continuaci!n. OPERADORES DE RE(ERENCIAS PARA ACCESO A CAMPOS El acceso a los campos se realiza mediante el operador .unt# (. , por ello esta notaci!n tambin recibe el nombre de n#ta"i2n e .unt#. En este tipo de e%presiones, el elemento que est' a la izquierda del punto identifica a la clase, objeto o interfaz a la que pertenece el elemento que est' a la derec.a del punto. 2or ejemplo, para referirnos a la constante 3X*b_<*L(E4 de la clase 3Aloat4 lo .aramos con la si&uiente e%presi!n) 3Aloat.X*b_<*L(E4. E%isten dos calificadores especiales que se pueden utilizar para acceder a los campos desde el interior de un objeto. Estos calificadores son las palabras tDis y su.er. La primera .ace referencia al objeto al que est' asociado el mtodo. La se&unda se utiliza para .acer referencia a los campos de la clase padre. OPERADORES DE RE(ERENCIAS PARA IN&OCACI!N DE M-TODOS La invocaci!n de mtodos, al i&ual que para el acceso a campos, se realiza mediante el operador .unt#. :ambin pueden usarse los calificadores tDis y su.er. *mbos ofrecen la misma funcionalidad que tienen los correspondientes para el acceso a campos.

Ing. Carl#s 5. /uran

Fl#res

12

J7$7 :7SICO

CINFO - UNMSM OPERADORES DE CON&ERSI!N DE TIPOS DE RE(ERENCIA Las operaciones de conversi!n de tipos se utilizan para convertir una referencia de objeto a un cierto tipo. 2ero e%isten ciertos requisitos para permitir la conversi!n. El tipo de un objeto s!lo puede convertirse al de su propia clase, al de una de sus superclases, al de una interfaz que sea implementada por su propia clase o al de una interfaz que sea implementada por al&una de sus superclases. Los tipos de referencia se convierten usando como operador el nombre entre parntesis de la clase a la cual se quiere convertir y anteponindolo a la e%presi!n a convertir. En el si&uiente ejemplo se supone la e%istencia de dos clases) 3Ai&uraNeometrica4 y 3[ectan&ulo4, donde la se&unda es descendiente de la primera. Ai&uraNeometrica fi&ura = ne1 [ectan&ulo ( > [ectan&ulo rectan&ulo = ([ectan&ulo fi&ura> OPERADOR DE TIPO DE RE(ERENCIA En Java es sumamente importante la clase a la que pertenece un tipo de referencia. 2uesto que se permite la conversi!n entre tipos, se .ace necesario que podamos comprobar desde el c!di&o si una determinada conversi!n puede realizarse. 2ara determinar si un objeto es una instancia de una clase concreta, disponemos del operador instan"e#! que devuelve un valor booleano o &enera una e%cepci!n. El primer operando debe ser un tipo de referencia y el se&undo debe ser un nombre de clase. <amos a ver en la si&uiente relaci!n los posibles casos) +i el primer operando es null (si&nificara que no apunta a nin&#n objeto instanciado , el resultado es false. +i el primer operando es distinto de null y es posible convertirlo a la clase que especifica el se&undo operando, el resultado ser' true. +i el primer operando es distinto de null y no es un descendiente del tipo especificado por el se&undo operando, la instrucci!n es ile&al y causara un error de ejecuci!n.

En el si&uiente ejemplo se resumen los comportamientos que se acaban de describir) +trin& sD = 3te%to4> +trin& sG = null> boolean bD = sD instanceof +trin&> OO 3bD4 toma el valor true boolean bG = sG instanceof +trin&> OO 3bG4 toma el valor false

Ing. Carl#s 5. /uran

Fl#res

1*

J7$7 :7SICO

CINFO - UNMSM =.- CONS-7N-5S CONS-7N-5S LI-597L5S 2or su parte, las "#nstantes literales son representaciones literales de datos en el c!di&o fuente. Estos valores se emplean para inicializar variables o para usarlas en e%presiones en las que se requieren valores constantes. Las constantes literales pueden usarse para referirse e%plcitamente a uno de los tipos si&uientes) int, lon&, float, double, boolean, c.ar, +trin& y null. En caso de que necesit'ramos representar un tipo primitivo distinto de los indicados, podramos .acer una conversi!n e%plcita al tipo deseado. 2or otra parte, los objetos no pueden ser representados mediante estas constantes, y por tanto, no e%isten constantes literales de tipo de referencia. CONS-7N-5S 5N-597S Las constantes enteras se representan por un valor que est' formado s!lo por d&itos numricos y no tienen la coma decimal. +i el n#mero no comienza por cero, representa un n#mero decimal (en base DC . 2ara representar constantes de tipo 3lon&4 se emplea el mismo mtodo pero a-adiendo al final la letra 3L4. Est' permitido el empleo de la letra 3L4 en min#sculas, pero no debe usarse ya que puede confundirse con el n#mero uno. *dem's de representaciones en formato decimal, se pueden representar constantes en los formatos octal y .e%adecimal. Las constantes octales se representan anteponiendo un cero al propio n#mero, que adem's, s!lo podr' estar formado por los d&itos del C al Y. 2or su parte, las constantes .e%adecimales se representan anteponiendo C% o Cb y permitiendo que los d&itos del n#mero puedan ser del C al a y las letras de la * a la A (en may#sculas o min#sculas . Las constantes octales y .e%adecimales son de tipo entero a menos que estn se&uidas por la letra 3L4, en cuyo caso seran de tipo lon&. int a = DCCG> OO :ipo int lon& b = DCCGL> OO :ipo lon& int c = CVF> OO :ipo int en octal int d = CVFL> OO :ipo lon& en octal int e = CbCCG5 > OO :ipo int en .e%adecimal int f = CbCCG5L> OO :ipo lon& en .e%adecimal El tipo c.ar es un tipo entero, no obstante se trata de un tipo especial pensado para almacenar caracteres (nicode. Estos #ltimos son similares a los caracteres *+?@@ en que est'n pensados para almacenar smbolos, n#meros y caracteres. +in embar&o, el ran&o del tipo c.ar es muc.o mayor porque permite representar caracteres de casi todos los idiomas del mundo. Las constantes literales de tipo c.ar pueden representarse de dos formas distintas) Encerrando un #nico car'cter entre comillas simples. (tilizando una secuencia de escape, que es muy #til para representar caracteres que no pueden escribirse mediante el teclado. La secuencia de escape se representa por una barra inclinada inversa (S se&uida de un n#mero octal de tres d&itos, o bien por la barra se&uida de la letra 3u4 y de un n#mero .e%adecimal de cuatro d&itos. La secuencia de escape tambin debe ir encerrada entre comillas simples. :ambin e%iste una serie de secuencias de escape especiales que se utilizan para representar al&unos de los caracteres *+?@@ m's comunes. En la si&uiente tabla se relacionan todos.

Ing. Carl#s 5. /uran

Fl#res

1,

J7$7 :7SICO

CINFO - UNMSM

CONS-7N-5S /5 COM7 FLO-7N-5 +e e%presan mediante un valor numrico que incluya al menos una posici!n decimal. * menos que se indique otra cosa, las constantes de coma flotante ser'n de tipo double. 2ara denotar que la constante sea de tipo float es necesario posponer la letra 3f4 o 3A4. 2or claridad, tambin pueden e%presarse las constantes de tipo double posponiendo la letra 3d4 o 3,4 al n#mero. Este tipo de constantes tambin pueden e%presarse mediante la notaci!n e%ponencial, que define un n#mero en dos partes) la mantisa y el e%ponente. La mantisa es un n#mero en coma flotante con un d&ito si&nificativo y cierto n#mero de decimales. El e%ponente es un n#mero que representa la potencia de DC que multiplica a la mantisa. Entre la mantisa y el e%ponente se debe poner la letra 3e4 o 3E4. double a = DGF.H> OO :ipo double float b = DGF.HA> OO :ipo float double c = H.VCGeKDG> OO :ipo double en notaci!n e%ponencial. CONS-7N-5S /5 C7/5N7 Las constantes de cadena se representan por una secuencia de caracteres encerrados entre comillas dobles. ,entro de ellas se pueden incluir las secuencias de escape que antes mencionamos. <eamos al&unos ejemplos) +trin& a = 3:e%to simple4> OO :e%to simple +trin& b = 3Esta es la letra IuCCHD4> OO (sando una secuencia de escape para representar la letra 3*4 +trin& c = 3El proceso .a terminado.In2ulse una tecla4> OO :e%to en dos lneas CONS-7N-5S :OOL57N7S E%isten dos) true y !alse. *l contrario que en otros len&uajes de pro&ramaci!n, nin&una de estas constantes puede ser representada mediante un valor entero usando como criterio la i&ualdad a cero. CONS-7N-5 KNULLL E%iste una constante nula (null que podemos usarla para representar el valor null.

Ing. Carl#s 5. /uran

Fl#res

10

J7$7 :7SICO

Potrebbero piacerti anche