LA PROGRAMACIÓN ORIENTADA A OBJETOS Y JAVA La Programación Orientada a Objetos o POO se trata de un modelo de programación en el que en lugar de utilizar procedimientos y datos como ocurre en los lenguajes corrientes basados en un modelo orientado hacia los datos, se emplean en su lugar objetos los cuales corresponden a entidades con atributos específicos o propiedades y un conjunto de acciones para realizar sobre ellos mismos o que permiten enviar mensajes a otros objetos, dichas acciones se conocen como métodos. Existen muchos lenguajes que emplean la metodología orientada a objetos, algunos de ellos puros y otros han adoptado ésta técnica. Dentro de los lenguajes orientados a objetos puros se encuentra Java. El lenguaje Java en un inicio correspondía a un lenguaje de programación para dispositivos electrónicos teniendo por lo tanto que ser muy pequeño, portable, facil y eficiente. El lenguaje, desarrollado por Sun MicroSystems en 1991, es un lenguaje de programación orientado a objetos basado en C++ y acondicionado a equipos de computo para ser portátil a través de las distintas plataformas y sistemas operativos (plataformas de Hardware y de Software diferentes) tanto a nivel de código fuente como en binario o más exactamente en ByteCode (Código Java) permite entre otras realizar los siguientes tipos de implementaciones: • Aplicaciones (Aplicaciones StandAlone - Compiladas) • Applets (Compilados) • Servlets (Compilados) • Scripts (Sublenguaje JS - Es Interpretado. Su implementación es diferente) Aunque Java posee gran parte de la sintaxis y estructura de orientación a objetos heredada de C++ y por consiguiente de C, excluye muchos procesos complejos que se realizan en estos lenguajes por lo que se hace más fácil su aprendizaje (una vez se comprende su metodología y características). Entre las principales diferencias con los lenguajes mencionados se encuentran: • No existen apuntadores ni las bases aritméticas de estos. • Para el manejo de cadenas y arreglos se emplean Objetos reales. • La administración de la memoria es automática. • La herencia es Sencilla, no dispone de herencia múltiple pero se pueden implementar Interfaces para suplir esta “deficiencia”. Las aplicaciones Java se desarrollan inicialmente en cualquier editor de texto teniendo como nombre el de la clase que implementan (Aunque no necesariamente) y como extensión .java respetando las minúsculas y sin agregar espacios no indicados, también se pueden emplear Procesadores de Palabras como Word u otros pero especificando en el momento de almacenar el archivo que se trata de uno de Tipo
Luis F. Niño O.
-
1
Texto y teniendo cuidado de que el nombre total del archivo termine en .java y no en .java.txt ya que en dicho caso el archivo será reconocido por el sistema como un archivo de texto (al observar el listado de ficheros con el explorador de windows el ícono del archivo será como el de una libreta de apuntes, propio de los archivos .txt) y al intentar compilarlo se producirá un error al no encontrar java el archivo .java Una vez se ha digitado el código fuente y con éste se a creado el archivo .java se debe compilar el programa desde el indicador del sistema (y estando en la carpeta en donde se ha almacenado el archivo .java), para esto se emplea la siguiente instrucción: javac nombre_archivo_fuente.java Una vez se pulsa la tecla Enter el compilador java empieza a actuar realizando acciones como: • Revizar la integridad de la implementación realizada • Confirmar la sintaxis y el correcto uso de las clases y métodos • Analizar la estructura de la implementación realizada • Generar el archivo de clase .class con el código java correspondiente al Código fuente de la implementación. Para emplear la clase se pueden crear instancias de clase o añadirle un método main() a ésta . Al compilar la clase sin el método main() arroja un error indicando éste hecho. Una aplicación java StandAlone se ejecuta directamente desde el indicador del sistema una vez se ha creado su archivo de clase con el ByteCode correspondiente empleando la siguiente instrucción: java nombre_archivo_class_principal Param1 Param3 “P a r a m 3” ParamN La anterior instrucción incluye el nombre de la clase ejecutable sin la extensión del archivo ni su separador (.), seguido todo de los distintos parámetros que se deseen pasar a la aplicación, restringidos en número y longitud por el sistema operativo según la versión del mismo. El nombre de la aplicación debe ser escrito teniendo en cuenta las mayúsculas y minúsculas empleadas al definir la clase dentro del código fuente para lo que se puede emplear el comando DIR del sistema DOS con el fin de listar el contenido de la carpeta o directorio actual de trabajo y confirmar el nombre. NOTA: El ByteCode es una forma de código similar al lenguaje de máquina, pero que a diferencia de éste último, no es exclusivo para algún tipo específico de procesador o máquina real sino que es como un Pseudolenguaje aplicable a la Máquina Virtual de Java.
Luis F. Niño O.
-
2
Si se ha creado una clase perteneciente a un Applet se debe crear la correspondiente página Web que lo contendrá la cual debe ser grabada con la extensión .html o .htm, ésta página puede ser creada desde cualquier editor de texto conteniendo en su cuerpo la etiqueta APPLET con los atributos requeridos para el adecuado llamado y correcta carga del Applet, así como las etiquetas PARAM y sus atributos para el paso de argumentos. Una vez creada la página Web que cargará el Applet se debe visualizar desde cualquier navegador que soporte java o se puede emplear la siguiente instrucción desde el indicador del sistema: AppletViewer Nombre_archivo_web.Extensión_empleada El Nombre_archivo_web se refiere al nombre que se le asigno a la página en el momento de grabarla y .Extensión_empleada se refiere a la extensión .htm o .html según la que se haya utilizado para grabar la página web (preferiblemente emplee .html siempre). Cuando se visualiza un applet empleando el AppletViewer solamente se visualiza el Applet contenido en la página web referenciada por lo que no se podrá sino analizar su aspecto específico y funcionamiento más no su aspecto general en la página web. Tenga en cuenta que a diferencia de las Aplicaciones, los Applets tienen ciertas limitaciones con el fin de garantizar la seguridad e integridad del equipo cliente ya que por tratarse de una aplicación podrían emplearse los applets de forma inadecuada disfrazando su verdadera función. Dentro de sus limitaciones se encuentran: • • •
No pueden leer o escribir en el disco de un sistema local No pueden ejecutar ningun programa en el sistema local No pueden conectarse a otra máquina Web diferente a la del servidor de origen
Los Applets tienen una gran ventaja o característica que consiste en su capacidad para aprovechar el entorno y estructura del visualizador desde el cual se ejecutan, aunque las aplicaciones pueden crear dicho ambiente y por lo tanto hacer ésto también pero no de forma tan automática. Además de las características generales de Java es importante conocer los procesos automáticos que se generan y el orden en que se presentan cuando se crea o ejecuta un programa para así tratar de aprovechar al máximo los recursos con que cuenta éste lenguaje de programación y realizar aplicaciones con un menor nivel de complejidad, más eficientes, mejor estructuradas y menos voluminosas, para éste fin a continuación se describe de forma general las principales y más comunes etapas involucradas en la creación de un programa Java.
Luis F. Niño O.
-
3
GENERACIÓN Y UTILIZACIÓN DE UN PROGRAMA Código Fuente
Compilador Código Interprete de Generador Ejecución Java Binario ByteCode de Código Real del (ByteCode) de Máquina Programa
CICLO DE VIDA DE UNA APLICACIÓN JAVA main()
Instancia de Clase
Contructor
Métodos
Limpieza del Recolección Objeto del Objeto o (Finalizador) Destrucción
CICLO DE VIDA DE UN APPLET Inicialización
init()
Pintura o Dibujo
Arranque Detención start() stop()
paint(Graphics g)
“Destrucción”
repaint(); update()
y
destroy()
Luis F. Niño O.
-
4
CLASES DE VARIABLES • •
•
De Instancia: Empleadas para definir el atributo o el estado de un objeto en particular. Se definen fuera del bloque de los métodos. De Clase: Como las de instancia pero afectan a la clase y a sus instancias de clase. • static tipo Nombre; • static final tipo Nombre = valor; Locales: Se declaran y utilizan dentro de definiciones de método o dentro de bloques como variables temporales.
TIPOS DE VARIABLES Uno de los ocho (8) tipos primitivos (integrados al sistema) los cuales no son objetos: Enteros: Números que no tienen parte decimal. byte 8 B - 128 a 127 short 16 B - 32768 a 32767 int 32 B - 2.147’483.648 a 2.147’483.647 long 64 B - 9’223.372’036.854’775.808 a 9’223.372’036.854’775.807 Reales o de Punto Flotante: Números con parte entera y decimal. float 32 B Presición sencilla double 64 B Doble presición Caracter: Conjunto de caracteres Unicode. char 16 B No tiene signo Lógicas boolean solo admite true o false como valores El nombre de una Clase o Interfáz como: Integer, String Font Button Random Math Point Date OvalShape, Polygon Un Arreglo: tipo[ ] nombre; tipo nombre[ ]; (nombre.length;)
Luis F. Niño O.
-
5
COMENTARIOS /* Bloque */ // Hasta fin de línea /** Bloque */ También para generar la documentación API
ESTRUCTURA GLOBAL DE UNA APLICACIÓN JAVA import biblioteca.paquete.Clase; //Permite el acceso a las clases JDK class NOMBRE { declaración de variables; declaración de objetos o instancias de clases; NOMBRE(tipos y parametos del constructor) { inicialización de variables y objetos; } retorno método1(tipo parámetro) { Sentencia1; return this; } retorno método2() { Sentencias; } } class NOMBRE2 extends NOMBRE { declaración de variables; declaración de objetos; NOMBRE2(tipos parámetros del constructor) { super(parámetros del constructor); this.Método(); } retorno método() { super.métodoS(); sentencias; return this; } public static void main(String Params[]) { NOMBRE2 Objeto=new NOMBRE2(tipos y parámetros de inicialización); Sentencias... ; Objeto.método(parámetros,,); Sentencias...; } }
Luis F. Niño O.
-
6
GESTIÓN DE ARREGLOS (Listas de Elementos) • Tipo Identificador[ ]; • Tipo[ ] Identificador; Tipo[ ] Identificador = new Tipo[ # ]; Tipo[ ] Identificador = { Elem1, Elem2, Elem3, ..., ElemN } → Tipo Identificador[ ][ ] = new Tipo[ #f ][ #c ]; Identificador.length(); Devuelve el tamaño del arreglo.
SENTENCIAS DE CONTROL CONDICIONALES • TOMAS DE DECISIÓN if(condición) sentencia; else sentencia; if(condición) { sentencias...; } else { sentencias...; } Las sentencias pueden ser otros if anidados por lo que se pueden crear estructuras de tomas de decisión complejas. •
OPERADOR CONDICIONAL O TERNARIO Condición ? Valor_true : Valor_false;
• LISTA DE SELECCIÓN Se aplica solamente a variables numéricas que tengan una capacidad menor o igual al tipo int (32 B) o a variables tipo char (16 B). switch(variable) { case valor1: Sentencias...; break; ... default: Sentencias...; } Luis F. Niño O.
-
7
CICLOS • FOR for(Inicialización; Evaluación o Condición; Operación o Incremento/Decremento) { Sentencias; ... } • WHILE while(condición) { Sentencias; ... } • DO .. WHILE do { Sentencias; ... } while(condición);
ETIQUETAS DE CONTROL • BREAK break; break Etiqueta_de_Bloque; • CONTINUE continue; continue Etiqueta_de_Bloque; Tanto en los Condicionales como en los Ciclos se pueden emplear las etiquetas de control break y continue en sus distintas formas. El break obliga a salir del bloque donde fue definido o del que se haya especificado, mientras que el continue salta al inicio del bloque donde fue definido o del que se haya especificado.
Luis F. Niño O.
-
8
MÉTODOS Los métodos son rutinas pertenecientes a una clase y permiten establecer el comportamiento de la misma dándole “vida” a los objetos creados a partir de ésta. Se pueden crear tantos métodos como comportamientos se quieran tener para una clase de objetos a la vez que se pueden tener métodos con el mismo nombre o con distinto identificadores según realicen o no la misma función. Los métodos son análogos a las funciones en otros lenguajes, siendo los procedimientos o funciones para las aplicaciones lo que son los métodos para las clases. Los métodos (al igual que las variables, propiedades o atributos) se heredan en las clases derivadas (subclases) de otras (superclases). • Métodos Ordinarios: Corresponden a bloques de rutinas de programa que se identifican con un nombre, pueden recibir o tomar uno o más argumentos o parámetros de entrada relacionados con un tipo de dato específico (cada argumentos) y que al finalizar retornan un tipo de dato concreto así sea vacio o void. • Métodos Constructores: Son funciones especiales que permiten establecer cómo se inicializa un objeto respecto a sus variables y demás objetos involucrados en el mismo momento en que se instancia el objeto principal. Si no se definen argumentos para el método constructor quiere decir que al invocar el método constructor en la definición de la variable de instancia del objeto no hay que pasar ningún argumento, contrario a cuando si se definen argumentos de entrada en la definición de dicho método. Los métodos constructores reciben el mismo nombre que el de la clase del objeto al que se refieren y no devuelven o retornan ningún valor, ni siquiera vacio o void. Cuando explícitamente no se ha definido ningún método constructor para la clase que se cree, Java automáticamente (en tiempo de ejecución) crea un método constructor dinámico que se encarga de inicializar el nuevo objeto con opciones por defecto así: Reserva y asignación de espacio en memoria para el objeto (lo que incluye sus componentes como otros objetos y variables ya que son parte integral de un objeto). Inicialización de las variables de instancia con 0 para variables numéricas Inicialización con \0 para variables de caracteres Inicialización con false para variables boleanas Inicialización con null para objetos
Luis F. Niño O.
-
9
Los valores indicados son asignados en caso de no haber especificado un valor inicial para las variables en la definición de las mismas dentro de la clase. • Sobrecarga de Métodos: Consiste en la capacidad que tiene Java de permitir para una clase la definición de varios métodos con el mismo nombre siempre y cuando el número y/o tipo de argumentos sea distinto para poder identificar cual de los métodos sobrecargados debe ejecutarse en un momento dado. La ventaja de sobrecargar métodos es que no hay necesidad de emplear identificadores distintos para funciones que en esencia hacen lo mismo aunque con o sobre otros tipos de elementos. Se pueden sobrecargar tanto métodos ordinarios como métodos constructores. La Sobrecarga de Métodos se conoce (dentro de la terminología de la POO) como Polimorfismo Funcional o de Sobrecarga. • Sobreposición de Métodos: (Métodos Sobrepuestos) Consisten en métodos de subclases que tienen el mismo nombre, valor de retorno e iguales argumentos que los métodos definidos en la superclase y que aprovechando el orden y prioridad que Java emplea para la ejecución de métodos oculta la definición del método original ya que Java busca primero en la última subclase y va subiendo de nivel hasta llegar a la primer superclase o hasta que encuentre el método invocado. Si en una subclase se define con distintos valores de retorno o distintos argumentos de los que tiene un método con el mismo nombre de identificador en su superclase en el momento de compilarse la aplicación se generará un error por ésta causa. • Sobreposición de Métodos con Sustitución: Ocurre cuando al sobreponer un método se define por completo su comportamiento dentro de la subclase y por lo tanto se oculta por completo el método original. • Sobreposición de Métodos con Redefinición: Si al sobreponer un método se invoca desde dentro de éste al método original se estará dotando de nuevas capacidades a dicho método, aunque solo en la subclase, por lo que su comportamiento será más completo en la clase derivada.
CREACIÓN O DEFINICIÓN DE MÉTODOS • • • • •
Tipo de objeto o dato que regresa Nombre del método Lista de parámetros indicando tipo y nombre_identificador Cuerpo del método En caso de retornar valor return valor; antes de cerrar el cuerpo del método.
Luis F. Niño O.
-
10
Clase Nombre_Clase { metodo1() { } metodo2() { } main() { } } Al pasar una variable de un tipo de dato primitivo a un método (o función) se pasa por valor, pero si el argumento que se pasa es un objeto éste paso de argumentos se hace por referencia para el objeto que involucra. Para emplear un método primero se crea una nueva instancia de la clase que contiene el método y luego se emplea el objeto creado para acceder al método: Clase VarObj = new Clase(tipos y argumentos); ... VarObj.métodoX(Parametros); Se puede emplear la palabra clave this para hacer referencia al objeto actual. Ésta palabra clave se emplea en los métodos tanto públicos como privados de la clase: this.variable=valor; this.método(); Si se desea hacer referencia a un método de la superclase se puede emplear la palabra clave super para acceder a él: super.método(); También se puede invocar el método constructor de una Superclase empleando la palabra reservada super como función, así: super(argumentos);
Luis F. Niño O.
-
11
CLASES Y MÉTODOS ASOCIADOS new : Invoca el método constructor de una clase. • Objeto1 == Objeto2 : Verdadero si ambos hacen referencia al mismo objeto. • Objeto instanceOf Clase : Determina si el Objeto es una instancia de una Clase específica. ♦ java.applet.AudioClip • AudioClip Objeto_sonido = getAudioClip(getCodeBase(),”archivo.au”); • AudioClip Objeto_sonido = getAudioClip(getDocumentBase(),”archivo.au”); • getAudioClip: Recupera un archivo de audio según los argumentos empleados. → .play() → .stop() → .loop()
♦ java.applet.Applet • getBackground() • getForeground() • getCodeBase(); Retorna un Objeto URL que indica la ruta de localización donde se encuentra el Applet. • getDocumentBase(); Retorna un Objeto URL indicando la ruta de localización del documento HTML que contiene el applet. • play(Objeto URL con el nombre del archivo y extensión .au) • play (Objeto URL solo con ruta base, “Archivo.au”) • play (Objeto_URL_ ruta_base, “SubDirectorio(s)/Archivo.au”) Con los 3 métodos anteriores si el archivo de sonido .au indicado no se encuentra en la ruta especificada simplemente no se reproducira el sonido grabado en él pero no arrojará ningún error. awt(Abstract Windowing Toolkit o Kit de Herramientas para Ventanas Abstractas) ♦ java.awt.Component • setBackground(Color.color u Objeto_color) • setForeground(Color.color u Objeto_color) ♦ java.awt.Color • Color Identificador = new Color(int/float, int/float, int/float) • Colores: RGB (en decimal) RGB (en Hexadecimal) . Color.white 255,255,255 #FFFFFF Color.black 0,0,0 #000000 Color.lighGray 192,192,192 #C0C0C0 Color.gray 128,128,128 #808080 Luis F. Niño O.
-
12
Color.darkGray Color.red Color.green Color.blue Color.yellow Color.magenta Color.cyan Color.pink Color.orange •
64,64,64 255,0,0 0,255,0 0,0,255 255,255,0 255,0,255 0,255,255 255,175,175 255,200,0
#404040 #FF0000 #00FF00 #0000FF #FFFF00 #FF00FF #00FFFF #FFAFAF #FFC800
Color.getHSBColor((float)Tinte, (float)Saturación, (float)Brillo)
♦ java.awt.Font • Font Objeto = new Font(“Familia_Fuente”, Estilo, Tamaño_Puntos) • Estilo: Font.PLAIN, Font.BOLD[+Font.ITALIC], Font.ITALIC → .getName() → .getSize() → .getStyle() → .isPlain() → .isBold() → .isItalic() ♦ java.awt.FontMetrics • FontMetrics Objeto = getFontMetrics(Objeto_Font) • stringWidth(ObjString) • charWidth(VarChar) → .getAscent() → .getDescent() → .getLeading() → .getHeight() ♦ java.awt.Graphics • Polygon Objeto_Polygon = new Polygon(ACoordX, ACoordY, TotalPuntos) → .setFont(Objeto_Font) → .getFont() → .setColor(Color.variable u Objeto_Color) → .getColor() → .drawChar(Arreglo_de_Caracteres, Sub_indice_inicio, #x, #y) → .drawString(“Cadena de Caracteres”, Límite_Izquierdo, Línea_Base) → .drawImage(Imagen, x, y, this) //Dibuja imagen con sus dimensiones originales → .drawImage(Imagen, x, y, Ancho, Alto, this) //Dibuja imagen escalandola → .drawLine(x1,y1,x2,y2) → .drawRect(x,y,Ancho,Alto) Luis F. Niño O.
-
13
→ → → → → → → → → → → → → → → → → →
.fillRect(x,y,Ancho,Alto) .drawRoundRect(x,y,Ancho,Alto, AnguloH, AnguloV) .fillRoundRect(x,y,Ancho,Alto, AnguloH, AnguloV) .draw3DRect(x, y, Ancho, Alto, true/false) .fill3DRect(x, y, Ancho, Alto true/false) .drawPolygon(ArregloCoordX, ArregloCoordY, TotalPuntos) .fillPolygon(ArregloCoordX, ArregloCoordY, TotalPuntos) Objeto_Polygon.addPoint(Xn+1, Yn+1) .drawPolygon(Objeto_Polygon) .fillPolygon(Objeto_Polygon) .drawOval(x, y, Ancho, Alto) .fillOval(x, y, Ancho, Alto) .drawArc(x, y, Ancho, Alto, Angulo_Inicio, +/ - Cuantos_Grados_Recorre) .fillArc(x, y, Ancho, Alto Angulo_Inicio, +/ - Cuantos_Grados_Recorre) .clipRect(x,y,Ancho,Alto) .copyArea(x,y,Ancho,Alto, Columnas_distancia, Filas_distancia) .clearRect(x,y,Ancho,Alto) g.clearRect(0,0,this.size().width, size().height()); el método size() devuelve un objeto Dimension
♦ java.awt.Image • Image Objeto_Imagen = getImage... de una de las tres formas siguientes... • getImage(Objeto URL con el nombre y extensión del archivo) • getImage(Objeto URL solo con ruta base, “Archivo .gif o .jpeg”) • getImage(Objeto_URL_ ruta_base, “SubDirectorio(s)/Archivo .gif o .jpeg”) Con los 3 métodos anteriores si el archivo gráfico indicado no se encuentra en la ruta especificada se retorna un archivo de imagen nula con el cual no se puede hacer nada “null.drawImage()”. → .getWidth(Instancia de ImageObserver) o .getWidth(this); Ancho en pixeles → .getHeight(Instancia de ImageObserver) o .getHeight(this): Alto en pixeles El argumento tipo ImageObserver es un objeto que implementa una Interfaz llamada igual y el cual es elencargado de monitorear el proceso de carga de una imagen. La clase Applet contienen un comportamiento predeterminado que hace también ésto. ♦ java.util.Date – Esta clase está obsoleta pues ahora se emplea Calendar. • Date Obj_date = new Date(); donde Date() puede ser... • Date() : Datos actuales del sistema • Date(int año, int mes, int dia_mes) • Date(int año, int mes, int dia_mes, int horas, int minutos) • Date(int año, int mes, int dia_mes, int horas, int minutos, int segundos) • Date(String Fecha_y_Hora) → .getYear() Luis F. Niño O.
-
14
→ → → → → → → → → → → → → → → →
.getMonth() .getDate() : Día del mes .getDay() : Día de la semana .getHours() .getMinutes() .getSeconds .setYear() .setMonth() .setDate() .setDay() .setHours() .setMinutes() .setSeconds .before(Objeto_fecha) .after(Objeto_fecha) .equals(Objeto_fecha)
Math • Math.sin(duble x) : Seno del ángulo x en radianes • Math.cos(double x) : Coseno del ángulo x en radianes • Math.tan(double x) : Tangente del ángulo x en radianes • Math.asin(double x) : Arco seno del parámetro en radianes... • Math.acos(double x) • Math.atan(double x) • Math.atan2(double x, double y) : Arco tangente de x/y • Math.pow(double x, double y) : Devuelve x elevado a la potencia y • Math.exp(double x) : Devuelve e elevado a x • Math.log(double x) : Logaritmo natural de x • Math.sqrt(double x) : Raíz cuadrada de x • Math.max(valor1, valor2) : Determina que valor es mayor • Math.min(valor1, valor2) : Determina que valor es menor • Math.ceil(double x) : Número entero más pequeño > o = que x • Math.floor(double x) : Número entero más grande < o = que x • Math.round(float x) : Redondea x al int más próximo • Math.round(double x) : Redondea x al long más próximo • Math.abs(x) : Valor absoluto de x • Math.random()
Integer • Integer Objeto = new Integer(objeto o valor entero) • Integer.parseInt(“Cadena Numérica”) : Devuelve el dato_valor entero • Integer.parseInt(“Cadena Numérica”, base_numérica) : Dato_valor entero
Luis F. Niño O.
-
15
• •
Integer.toString(int_Valor) Integer.toString(int_valor, int_base)
Character • Character Objeto = new Character(objeto o valor_char) • Character.isLowerCase(caracter) • Character.isUpperCase(caracter) • Character.isDigit(caracter) • Character.isSpace(caracter) • Character.toLowercase(caracter) • Character.toUppercase(caracter)
String • String Objeto = new String(objeto o cadena) • String.valueOf(elemento) : Valor de la cadena del elemento • Objeto.getClass().getName() : Devuelve una cadena con el Nombre de la clase • Objeto.toString() : Devuelve la cadena equivalente del valor del objeto • ObjCad1.equals(ObjCad2) : true si las dos cadenas de los objetos son iguales → .charAt(#) : Caracter en la posición # → .indexOf(‘c’) : Posición del caracter c → .indexOf(“Cadena”) : Posición de inicio de la Cadena → .length() → .substring(#i, #f) : Subcadena desde el Caracter #i hasta el #f → .toUpperCase() : Devuelve toda la cadena en mayúscula
Métodos de la superClase abstracta común Number .doubleValue() .floatValue() .intValue() .longValue() Interfaz: Colección de nombre de métodos sin definiciones reales. Paquetes: Agrupación de clase e interfaces relacionadas. El único al que se tiene acceso de forma automática es lang de la biblioteca java (java.lang). Llamados o Referencias a Métodos o Clases Paquete.subpaquete.método Paquete.subpaquete.Clase
Luis F. Niño O.
-
16