SlideShare uma empresa Scribd logo
1 de 14
Baixar para ler offline
Programación orientada a
objetos

    Resumen de Temas
    Unidad 4: Sobrecarga
4.1 Conversión de tipos(1)
Conversiones implícitas:
 La conversión entre tipos primitivos se realizan de
 modo automático de un tipo a otro de más
 precisión, por ejemplo de int a long, de float a
 double, etc.

 Estas conversiones se hacen al mezclar variables
 de distintos tipos en expresiones matemáticas o al
 ejecutar sentencias de asignación en las que el
 miembro izquierdo tiene un tipo distinto (más
 amplio) que el resultado de evaluar el miembro
 derecho.
4.1 Conversión de tipos(2)
Conversiones explícitas:
 Las conversiones de un tipo de mayor a otro de menor precisión
 requieren una orden explícita del programador, pues son
 conversiones inseguras que pueden dar lugar a errores (por
 ejemplo, para pasar a short un número almacenado como int,
 hay que estar seguro de que puede ser representado con el
 número de cifras binarias de short).
 A estas conversiones explícitas de tipo se les llama cast. El cast
 se hace poniendo el tipo al que se desea transformar entre
 paréntesis, como por ejemplo:
         long result;
         result = (long) (a/(b+c));
 A diferencia de C/C++, en Java no se puede convertir un tipo
 numérico a boolean.
4.1.1 Conversiones seguras
El tamaño de los tipos que queremos convertir es muy importante. No
todos los tipos se convertirán de forma segura. Por ejemplo, al convertir
un long en un int, el compilador corta los 32 bits superiores del long(de 64
bits), de forma que encajen en los 32 bits del int, con lo que si contienen
información útil, esta se perderá.
Por ello se establece la norma de que "en las conversiones el tipo destino
siempre debe ser igual o mayor que el tipo fuente":
4.1.2 Conversiones entre tipos primitivos y cadenas1
Las clases wrapper contiene útiles métodos y constantes muy
utilizados en conversión de tipos, y para el manejo de sistemas
bases de números, hexadecimal ,octal, binario, etc.

       Operación                                 Sintaxis
boolean to String          String s = theBoolean ? “true”: “false”;
                           String s = “” + TheBoolean;
byte, short, char,int to   String s = Byte.toString(theByte);
String                     String s = Short.toString(theShort);
                           String s = Integer.toString(theNumber);
byte, short, char,         String s = Integer.toString(theNumber, base);
int to String              String s = Integer.toBinaryString(theNumber);
                           String s = Intefer.toOctalString(theNumber);
                           String s = Integer.toHexString(theNumber);
                           String s = String.valueOf(theNumber), Strin s =
                           ""+theNumber;
4.1.2 Conversiones entre tipos primitivos y cadenas2
       Operación                         Sintaxis
long to String      String s = Long.toString(theLong);
                    String s = Long.toString(theLong , base);
                    String s = Long.toBinaryString(theLong);
                    String s = Long.toOctalString(theLong);
                    String s = Long.toHexString(theLong);
                    String s = String.valueOf(theLong);
                    String s = "" + theLong
float to String     String s = Float.toString(theFloat);
                    String s = String.valueOf(theFloat);
                    String s = “”+theFloat;
double to String    String s = Double.toString(theDouble):
                    String s = "" + TheDouble
String to boolean   booelan b= Boolean.getBoolean(theString);
4.1.2 Conversiones entre tipos primitivos y cadenas3
       Operación                         Sintaxis
String to byte     byte b = Byte.parseByte(theString);
                   byte b = Byte.parseByte(theString , base);
String to short    short s = Short.parseShort(theString);
                   short s = Short.parseShort(theString , base);
String to int      int ¡ = Integer.parseInt(theString);
                   int ¡ = Integer.parseInt(theString , base);
String to long     long x= Long.parseLong(theString);
                   long x= Long.parseLong(theString , base);
String to char     char c= (char)integer.parseInt(theString);
                   char c = (char)integer.parseInt(theString , base);
String to float    float f= Float.parseFloat(theString);


String to double   double d = Double.parseDouble(theString)
4.1.3 Literales
En Java hay una forma de especificar un valor determinado a una variable o
constante, mediante una literal, que es una expresión constante utilizada para
expresar un valor:
                                         Notaciones literales
 Tipo      Formato
 int       Decimal dígitos 0-9 ejemplo: (1234)
           Octal cero (0) seguido de los dígitos 0-7 ejemplo: (01234)
           Hexadecimal 0x o 0X seguido de los dígitos 0-9, A-F ejemplo: (0x1234)
 long      Añade l o L al final del término literal int ejemplo: 0xDECADAL
 float     Añade f o F al final del término literal double y sustituye a d/D en caso de existir por
              ejemplo: 3.14f , 3.14E+15F
 double    Notación científica como en 1.345e+10, donde el exponente puede expresarse con una e o
               una E; puede encontrarse una d o D al final del elemento literal double

 char      Un único caracter o secuencia de escape entre comillas sencillas, por ejemplo: 'X', 'r'.
 String    Varios caracteres o secuencias de escape entre comillas dobles. .
 boolean   verdadero, falso

 Null      nulo
4.1.4 Secuencias de escape de caracter
Son caracteres que pueden utilizarse en los flujos o en el método
System.out.println() para control de la salida que el programador desea, y siempre
tienen como prefijo la diagonal invertida o back slash:
    Escape     Significado
    n         nueva línea
    t         tabulador
    b         espacio en blanco
    r         retorno de carro
    f         formfeed
             back slash, para comentarios
    '         comilla simple
    "         comillas
    ddd       número en octal (ejemplo: 231 )
    xdd       número en hexadecimal (ejemplo: x12 )
    udddd     caracter UNICODE (ejemplo: u1914 )
4.1.5 Valores por defecto
Cuando datos de tipo primitivo son miembros de una clase, se garantiza que por
omisión toman estos valores de inicialización:




Cuando las variables son referencias a un objeto y no son instanciadas, se
garantiza que su valor tendrá un valor constante Null ( nulo ).
4.2 Sobrecarga de métodos
 Java permite métodos sobrecargados (overloaded), es
 decir, métodos distintos que tienen el mismo nombre,
 pero que se diferencian por el número y/o tipo de los
 argumentos.
 Se pueden sobrecargar los constructores de una clase
 al igual que otros métodos.
 Se puede llamar a un constructor desde otro
 constructor usando la palabra this.
 Diferente de la sobrecarga de métodos es la
 redefinición. Una clase puede redefinir(override) un
 método heredado de una superclase. Redefinir un
 método es dar una nueva definición. En este caso el
 método debe tener exactamente los mismos
 argumentos en tipo y número que el método
 redefinido.
4.2.1 Proceso en la llamada de un método sobrecargado
1.   Si existe el método cuyos argumentos se ajustan
     exactamente al tipo de los argumentos de la llamada
     (argumentos actuales), se llama ese método.
2.   Si no existe un método que se ajuste exactamente, se intenta
     promover los argumentos actuales al tipo inmediatamente
     superior (por ejemplo char a int, int a long, float a double,etc.)
     y se llama el método correspondiente.
3.   Si sólo existen métodos con argumentos de un tipo más
     restringido (por ejemplo, int en vez de long), el programador
     debe hacer un cast explícito en la llamada,
     responsabilizándose de esta manera de lo que pueda ocurrir.
4.   El valor de retorno no influye en la elección del método
     sobrecargado. En realidad es imposible saber desde el
     propio método lo que se va a hacer con él. No es posible
     crear dos métodos sobrecargados, es decir con el mismo
     nombre, que sólo difieran en el valor de retorno.
4.2.3 Ejemplo de sobrecarga de métodos
public class Circulo {
    static int numCirculos = 0;                                               Propiedades
    public static final double PI=3.14159265358979323846;
    public double x, y, r;
    public Circulo(double x, double y, double r) {
           this.x=x; this.y=y; this.r=r;
           numCirculos++; }
    public Circulo(double r) { this(0.0, 0.0, r); }                      Sobrecarga de
    public Circulo(Circulo c) { this(c.x, c.y, c.r); }                    constructores
    public Circulo() { this(0.0, 0.0, 1.0); }
    public double perimetro() { return 2.0 * PI * r; }
    public double area() { return PI * r * r; }                   Sobrecarga de Métodos
    // método de objeto para comparar círculos
    public Circulo elMayor(Circulo c) {if (this.r>=c.r) return this; else return c;}
      // método de clase para comparar círculos
      public static Circulo elMayor(Circulo c, Circulo d) {
           if (c.r>=d.r) return c; else return d;}
} // fin de la clase Circulo
4.3 Sobrecarga de operadores
 La sobrecarga de operadores a diferencia
 de C++ en JAVA No existe.

 Solo en los objetos String el operador + y
 += se permiten para la concatenación de
 cadenas.

Mais conteúdo relacionado

Mais procurados

Argentina Programa Apendix parte 3.pdf
Argentina Programa Apendix parte 3.pdfArgentina Programa Apendix parte 3.pdf
Argentina Programa Apendix parte 3.pdfenzo935311
 
Matrices Y Punteros - Sergio Cabello
Matrices Y Punteros - Sergio CabelloMatrices Y Punteros - Sergio Cabello
Matrices Y Punteros - Sergio Cabellosergiocabello
 
2685008 taller-java
2685008 taller-java2685008 taller-java
2685008 taller-javajairjulian
 
Encriptacion
EncriptacionEncriptacion
EncriptacionDavid
 
C curso intr
C curso intr C curso intr
C curso intr leo24012
 
Instrucciones(raptor, java, c#)
Instrucciones(raptor, java, c#)Instrucciones(raptor, java, c#)
Instrucciones(raptor, java, c#)Markoos Riveroo
 
1ra parte elementos basicos del lenguaje
1ra parte elementos basicos del lenguaje1ra parte elementos basicos del lenguaje
1ra parte elementos basicos del lenguajeyuli02
 
BúSqueda Primero En Anchura
BúSqueda Primero En AnchuraBúSqueda Primero En Anchura
BúSqueda Primero En Anchuramapaz91
 
comandos
comandoscomandos
comandosarecerv
 
Lenguajesdeprogramacion c nivel1-unidad1_1
Lenguajesdeprogramacion c nivel1-unidad1_1Lenguajesdeprogramacion c nivel1-unidad1_1
Lenguajesdeprogramacion c nivel1-unidad1_1Facebook
 
Unidad1
Unidad1Unidad1
Unidad1chembe
 
Lenguajesdeprogramacion c nivel1-unidad1_1
Lenguajesdeprogramacion c nivel1-unidad1_1Lenguajesdeprogramacion c nivel1-unidad1_1
Lenguajesdeprogramacion c nivel1-unidad1_1Joaquin1418
 
Elementos Basicos del Lenguaje C++
Elementos Basicos del Lenguaje C++Elementos Basicos del Lenguaje C++
Elementos Basicos del Lenguaje C++yesid19
 

Mais procurados (19)

Argentina Programa Apendix parte 3.pdf
Argentina Programa Apendix parte 3.pdfArgentina Programa Apendix parte 3.pdf
Argentina Programa Apendix parte 3.pdf
 
Matrices Y Punteros - Sergio Cabello
Matrices Y Punteros - Sergio CabelloMatrices Y Punteros - Sergio Cabello
Matrices Y Punteros - Sergio Cabello
 
Módulo 5 (sin estilo)
Módulo 5 (sin estilo)Módulo 5 (sin estilo)
Módulo 5 (sin estilo)
 
6 excepciones
6 excepciones6 excepciones
6 excepciones
 
Tipos de Datos Abstractos.
Tipos de Datos Abstractos.Tipos de Datos Abstractos.
Tipos de Datos Abstractos.
 
2685008 taller-java
2685008 taller-java2685008 taller-java
2685008 taller-java
 
Encriptacion
EncriptacionEncriptacion
Encriptacion
 
C curso intr
C curso intr C curso intr
C curso intr
 
Lenguaje c++
Lenguaje c++Lenguaje c++
Lenguaje c++
 
Notacion hungara
Notacion hungaraNotacion hungara
Notacion hungara
 
Instrucciones(raptor, java, c#)
Instrucciones(raptor, java, c#)Instrucciones(raptor, java, c#)
Instrucciones(raptor, java, c#)
 
1ra parte elementos basicos del lenguaje
1ra parte elementos basicos del lenguaje1ra parte elementos basicos del lenguaje
1ra parte elementos basicos del lenguaje
 
BúSqueda Primero En Anchura
BúSqueda Primero En AnchuraBúSqueda Primero En Anchura
BúSqueda Primero En Anchura
 
Notacion Hungara
Notacion HungaraNotacion Hungara
Notacion Hungara
 
comandos
comandoscomandos
comandos
 
Lenguajesdeprogramacion c nivel1-unidad1_1
Lenguajesdeprogramacion c nivel1-unidad1_1Lenguajesdeprogramacion c nivel1-unidad1_1
Lenguajesdeprogramacion c nivel1-unidad1_1
 
Unidad1
Unidad1Unidad1
Unidad1
 
Lenguajesdeprogramacion c nivel1-unidad1_1
Lenguajesdeprogramacion c nivel1-unidad1_1Lenguajesdeprogramacion c nivel1-unidad1_1
Lenguajesdeprogramacion c nivel1-unidad1_1
 
Elementos Basicos del Lenguaje C++
Elementos Basicos del Lenguaje C++Elementos Basicos del Lenguaje C++
Elementos Basicos del Lenguaje C++
 

Destaque (20)

Poss0502 slides
Poss0502 slidesPoss0502 slides
Poss0502 slides
 
Oracle
OracleOracle
Oracle
 
Lto tema1
Lto tema1Lto tema1
Lto tema1
 
Tema2 programacion i_ib
Tema2 programacion i_ibTema2 programacion i_ib
Tema2 programacion i_ib
 
Diablada Bellavista Revista Pdf
Diablada Bellavista Revista PdfDiablada Bellavista Revista Pdf
Diablada Bellavista Revista Pdf
 
Poo 01
Poo 01Poo 01
Poo 01
 
Poo 03
Poo 03Poo 03
Poo 03
 
Lp13
Lp13Lp13
Lp13
 
Poo transpa
Poo transpaPoo transpa
Poo transpa
 
prenatal unapuno
prenatal unapunoprenatal unapuno
prenatal unapuno
 
Transp objetos
Transp objetosTransp objetos
Transp objetos
 
Met2 07 01-introduccion_poo
Met2 07 01-introduccion_pooMet2 07 01-introduccion_poo
Met2 07 01-introduccion_poo
 
Tema3
Tema3Tema3
Tema3
 
Web 3.0 educacion aldo zanabria
Web 3.0 educacion aldo zanabriaWeb 3.0 educacion aldo zanabria
Web 3.0 educacion aldo zanabria
 
Desarrollo De Sistemas De Informaci N
Desarrollo De  Sistemas De  Informaci NDesarrollo De  Sistemas De  Informaci N
Desarrollo De Sistemas De Informaci N
 
obstruccion intestinal
obstruccion intestinalobstruccion intestinal
obstruccion intestinal
 
marketing digital
marketing digitalmarketing digital
marketing digital
 
Memoria dinamica
Memoria dinamicaMemoria dinamica
Memoria dinamica
 
AdministracióN De Proceso De ImplantacióN Del Sistema
AdministracióN De Proceso De ImplantacióN Del SistemaAdministracióN De Proceso De ImplantacióN Del Sistema
AdministracióN De Proceso De ImplantacióN Del Sistema
 
Sistemas de información distribuidos
Sistemas de información distribuidosSistemas de información distribuidos
Sistemas de información distribuidos
 

Semelhante a Poo4

Java - Sintaxis Básica 2015
Java - Sintaxis Básica 2015Java - Sintaxis Básica 2015
Java - Sintaxis Básica 2015Renny Batista
 
Estructura sintactica de los lenguajes de programacion
Estructura sintactica de los lenguajes de programacionEstructura sintactica de los lenguajes de programacion
Estructura sintactica de los lenguajes de programacionandreinagracielarojasadam
 
Lenguaje de programación c
Lenguaje de programación cLenguaje de programación c
Lenguaje de programación cvictdiazm
 
Introduccion al lenguaje c
Introduccion al lenguaje cIntroduccion al lenguaje c
Introduccion al lenguaje cMaylin25
 
Jyoc java-cap06 la clase string
Jyoc java-cap06 la clase stringJyoc java-cap06 la clase string
Jyoc java-cap06 la clase stringJyoc X
 
Diapositivas curso programación orientada a objetos en Java
Diapositivas curso programación orientada a objetos en JavaDiapositivas curso programación orientada a objetos en Java
Diapositivas curso programación orientada a objetos en JavaJose Perez
 
Fundamentos de programacion en java
Fundamentos de programacion en javaFundamentos de programacion en java
Fundamentos de programacion en javaJefferson Sarmiento
 
Programacion en java_inicio apeuntes para ems
Programacion en java_inicio apeuntes para emsProgramacion en java_inicio apeuntes para ems
Programacion en java_inicio apeuntes para emsCBTis
 
Tipos de datos usados en lenguaje C
Tipos de datos usados en lenguaje CTipos de datos usados en lenguaje C
Tipos de datos usados en lenguaje Cefrenpedro92
 
Tipos de datos usados en c
Tipos de datos usados en cTipos de datos usados en c
Tipos de datos usados en clagq
 
programación Milton.pptx
programación Milton.pptxprogramación Milton.pptx
programación Milton.pptxMundoGamerHD
 
Lenguaje latino
Lenguaje latinoLenguaje latino
Lenguaje latinoReneSergio
 

Semelhante a Poo4 (20)

Java - Sintaxis Básica 2015
Java - Sintaxis Básica 2015Java - Sintaxis Básica 2015
Java - Sintaxis Básica 2015
 
Estructura sintactica de los lenguajes de programacion
Estructura sintactica de los lenguajes de programacionEstructura sintactica de los lenguajes de programacion
Estructura sintactica de los lenguajes de programacion
 
LibreríAs De Java
LibreríAs De JavaLibreríAs De Java
LibreríAs De Java
 
Lenguaje de programación c
Lenguaje de programación cLenguaje de programación c
Lenguaje de programación c
 
3. lenguaje c-
3. lenguaje c-3. lenguaje c-
3. lenguaje c-
 
Introduccion al lenguaje c
Introduccion al lenguaje cIntroduccion al lenguaje c
Introduccion al lenguaje c
 
Jyoc java-cap06 la clase string
Jyoc java-cap06 la clase stringJyoc java-cap06 la clase string
Jyoc java-cap06 la clase string
 
Diapositivas curso programación orientada a objetos en Java
Diapositivas curso programación orientada a objetos en JavaDiapositivas curso programación orientada a objetos en Java
Diapositivas curso programación orientada a objetos en Java
 
Introduccions a java
Introduccions a javaIntroduccions a java
Introduccions a java
 
Fundamentos de programacion en java
Fundamentos de programacion en javaFundamentos de programacion en java
Fundamentos de programacion en java
 
Java y xml
Java y xmlJava y xml
Java y xml
 
8 tipos variables constantes
8 tipos variables constantes8 tipos variables constantes
8 tipos variables constantes
 
Programacion en java_inicio apeuntes para ems
Programacion en java_inicio apeuntes para emsProgramacion en java_inicio apeuntes para ems
Programacion en java_inicio apeuntes para ems
 
Tipos de datos usados en lenguaje C
Tipos de datos usados en lenguaje CTipos de datos usados en lenguaje C
Tipos de datos usados en lenguaje C
 
Tipos de datos usados en c
Tipos de datos usados en cTipos de datos usados en c
Tipos de datos usados en c
 
programación Milton.pptx
programación Milton.pptxprogramación Milton.pptx
programación Milton.pptx
 
Manual de c c++
Manual de c c++Manual de c c++
Manual de c c++
 
Lenguaje latino
Lenguaje latinoLenguaje latino
Lenguaje latino
 
Repaso c
Repaso cRepaso c
Repaso c
 
Cap I
Cap ICap I
Cap I
 

Mais de Aldo Hernán Zanabria Gálvez

“PERSPECTIVAS DEL DESARROLLO ECONÓMICO REGIONAL EN EL CONTEXTO DEL CAMBIO CLI...
“PERSPECTIVAS DEL DESARROLLO ECONÓMICO REGIONAL EN EL CONTEXTO DEL CAMBIO CLI...“PERSPECTIVAS DEL DESARROLLO ECONÓMICO REGIONAL EN EL CONTEXTO DEL CAMBIO CLI...
“PERSPECTIVAS DEL DESARROLLO ECONÓMICO REGIONAL EN EL CONTEXTO DEL CAMBIO CLI...Aldo Hernán Zanabria Gálvez
 
Organizadores visuales sobre las corrientes contemporaneas aldo zanabria ga...
Organizadores visuales sobre las corrientes contemporaneas   aldo zanabria ga...Organizadores visuales sobre las corrientes contemporaneas   aldo zanabria ga...
Organizadores visuales sobre las corrientes contemporaneas aldo zanabria ga...Aldo Hernán Zanabria Gálvez
 
Resumen final - Seminario Taller TIC Emprede Turismo
Resumen final - Seminario Taller TIC Emprede TurismoResumen final - Seminario Taller TIC Emprede Turismo
Resumen final - Seminario Taller TIC Emprede TurismoAldo Hernán Zanabria Gálvez
 
Clase de Tecnologías de la Información y Comunicaciones
Clase de Tecnologías de la Información y ComunicacionesClase de Tecnologías de la Información y Comunicaciones
Clase de Tecnologías de la Información y ComunicacionesAldo Hernán Zanabria Gálvez
 

Mais de Aldo Hernán Zanabria Gálvez (20)

“PERSPECTIVAS DEL DESARROLLO ECONÓMICO REGIONAL EN EL CONTEXTO DEL CAMBIO CLI...
“PERSPECTIVAS DEL DESARROLLO ECONÓMICO REGIONAL EN EL CONTEXTO DEL CAMBIO CLI...“PERSPECTIVAS DEL DESARROLLO ECONÓMICO REGIONAL EN EL CONTEXTO DEL CAMBIO CLI...
“PERSPECTIVAS DEL DESARROLLO ECONÓMICO REGIONAL EN EL CONTEXTO DEL CAMBIO CLI...
 
mejorando la web guia de html 5
mejorando la web guia de html 5mejorando la web guia de html 5
mejorando la web guia de html 5
 
Guía de Prácticas word beta.pdf
Guía de Prácticas word beta.pdfGuía de Prácticas word beta.pdf
Guía de Prácticas word beta.pdf
 
emprendimiento en la era del conocimiento.pptx
emprendimiento en la era del conocimiento.pptxemprendimiento en la era del conocimiento.pptx
emprendimiento en la era del conocimiento.pptx
 
Fundamentos de Programación
Fundamentos de ProgramaciónFundamentos de Programación
Fundamentos de Programación
 
Organizadores visuales sobre las corrientes contemporaneas aldo zanabria ga...
Organizadores visuales sobre las corrientes contemporaneas   aldo zanabria ga...Organizadores visuales sobre las corrientes contemporaneas   aldo zanabria ga...
Organizadores visuales sobre las corrientes contemporaneas aldo zanabria ga...
 
didactica
didacticadidactica
didactica
 
Tarea1 aldo zanabria
Tarea1 aldo zanabriaTarea1 aldo zanabria
Tarea1 aldo zanabria
 
Tarea 2 aldo zanabria
Tarea 2 aldo zanabriaTarea 2 aldo zanabria
Tarea 2 aldo zanabria
 
Carolinos del milenio pasado - Puno
Carolinos del milenio pasado - PunoCarolinos del milenio pasado - Puno
Carolinos del milenio pasado - Puno
 
ingenieria de sistemas
ingenieria de sistemasingenieria de sistemas
ingenieria de sistemas
 
Electricidad con recursos renovables
Electricidad con recursos renovablesElectricidad con recursos renovables
Electricidad con recursos renovables
 
Variables
VariablesVariables
Variables
 
Estructura y modelo organizacional estatal
Estructura y modelo organizacional estatal Estructura y modelo organizacional estatal
Estructura y modelo organizacional estatal
 
Calidad de Agua
Calidad de AguaCalidad de Agua
Calidad de Agua
 
Resumen final - Seminario Taller TIC Emprede Turismo
Resumen final - Seminario Taller TIC Emprede TurismoResumen final - Seminario Taller TIC Emprede Turismo
Resumen final - Seminario Taller TIC Emprede Turismo
 
Clase de Tecnologías de la Información y Comunicaciones
Clase de Tecnologías de la Información y ComunicacionesClase de Tecnologías de la Información y Comunicaciones
Clase de Tecnologías de la Información y Comunicaciones
 
Plan de Trabajo Integración de la Mujer
Plan de Trabajo Integración de la MujerPlan de Trabajo Integración de la Mujer
Plan de Trabajo Integración de la Mujer
 
peritaciones y tasación puno
peritaciones y tasación punoperitaciones y tasación puno
peritaciones y tasación puno
 
producción en la empresa turística
producción en la empresa turísticaproducción en la empresa turística
producción en la empresa turística
 

Poo4

  • 1. Programación orientada a objetos Resumen de Temas Unidad 4: Sobrecarga
  • 2. 4.1 Conversión de tipos(1) Conversiones implícitas: La conversión entre tipos primitivos se realizan de modo automático de un tipo a otro de más precisión, por ejemplo de int a long, de float a double, etc. Estas conversiones se hacen al mezclar variables de distintos tipos en expresiones matemáticas o al ejecutar sentencias de asignación en las que el miembro izquierdo tiene un tipo distinto (más amplio) que el resultado de evaluar el miembro derecho.
  • 3. 4.1 Conversión de tipos(2) Conversiones explícitas: Las conversiones de un tipo de mayor a otro de menor precisión requieren una orden explícita del programador, pues son conversiones inseguras que pueden dar lugar a errores (por ejemplo, para pasar a short un número almacenado como int, hay que estar seguro de que puede ser representado con el número de cifras binarias de short). A estas conversiones explícitas de tipo se les llama cast. El cast se hace poniendo el tipo al que se desea transformar entre paréntesis, como por ejemplo: long result; result = (long) (a/(b+c)); A diferencia de C/C++, en Java no se puede convertir un tipo numérico a boolean.
  • 4. 4.1.1 Conversiones seguras El tamaño de los tipos que queremos convertir es muy importante. No todos los tipos se convertirán de forma segura. Por ejemplo, al convertir un long en un int, el compilador corta los 32 bits superiores del long(de 64 bits), de forma que encajen en los 32 bits del int, con lo que si contienen información útil, esta se perderá. Por ello se establece la norma de que "en las conversiones el tipo destino siempre debe ser igual o mayor que el tipo fuente":
  • 5. 4.1.2 Conversiones entre tipos primitivos y cadenas1 Las clases wrapper contiene útiles métodos y constantes muy utilizados en conversión de tipos, y para el manejo de sistemas bases de números, hexadecimal ,octal, binario, etc. Operación Sintaxis boolean to String String s = theBoolean ? “true”: “false”; String s = “” + TheBoolean; byte, short, char,int to String s = Byte.toString(theByte); String String s = Short.toString(theShort); String s = Integer.toString(theNumber); byte, short, char, String s = Integer.toString(theNumber, base); int to String String s = Integer.toBinaryString(theNumber); String s = Intefer.toOctalString(theNumber); String s = Integer.toHexString(theNumber); String s = String.valueOf(theNumber), Strin s = ""+theNumber;
  • 6. 4.1.2 Conversiones entre tipos primitivos y cadenas2 Operación Sintaxis long to String String s = Long.toString(theLong); String s = Long.toString(theLong , base); String s = Long.toBinaryString(theLong); String s = Long.toOctalString(theLong); String s = Long.toHexString(theLong); String s = String.valueOf(theLong); String s = "" + theLong float to String String s = Float.toString(theFloat); String s = String.valueOf(theFloat); String s = “”+theFloat; double to String String s = Double.toString(theDouble): String s = "" + TheDouble String to boolean booelan b= Boolean.getBoolean(theString);
  • 7. 4.1.2 Conversiones entre tipos primitivos y cadenas3 Operación Sintaxis String to byte byte b = Byte.parseByte(theString); byte b = Byte.parseByte(theString , base); String to short short s = Short.parseShort(theString); short s = Short.parseShort(theString , base); String to int int ¡ = Integer.parseInt(theString); int ¡ = Integer.parseInt(theString , base); String to long long x= Long.parseLong(theString); long x= Long.parseLong(theString , base); String to char char c= (char)integer.parseInt(theString); char c = (char)integer.parseInt(theString , base); String to float float f= Float.parseFloat(theString); String to double double d = Double.parseDouble(theString)
  • 8. 4.1.3 Literales En Java hay una forma de especificar un valor determinado a una variable o constante, mediante una literal, que es una expresión constante utilizada para expresar un valor: Notaciones literales Tipo Formato int Decimal dígitos 0-9 ejemplo: (1234) Octal cero (0) seguido de los dígitos 0-7 ejemplo: (01234) Hexadecimal 0x o 0X seguido de los dígitos 0-9, A-F ejemplo: (0x1234) long Añade l o L al final del término literal int ejemplo: 0xDECADAL float Añade f o F al final del término literal double y sustituye a d/D en caso de existir por ejemplo: 3.14f , 3.14E+15F double Notación científica como en 1.345e+10, donde el exponente puede expresarse con una e o una E; puede encontrarse una d o D al final del elemento literal double char Un único caracter o secuencia de escape entre comillas sencillas, por ejemplo: 'X', 'r'. String Varios caracteres o secuencias de escape entre comillas dobles. . boolean verdadero, falso Null nulo
  • 9. 4.1.4 Secuencias de escape de caracter Son caracteres que pueden utilizarse en los flujos o en el método System.out.println() para control de la salida que el programador desea, y siempre tienen como prefijo la diagonal invertida o back slash: Escape Significado n nueva línea t tabulador b espacio en blanco r retorno de carro f formfeed back slash, para comentarios ' comilla simple " comillas ddd número en octal (ejemplo: 231 ) xdd número en hexadecimal (ejemplo: x12 ) udddd caracter UNICODE (ejemplo: u1914 )
  • 10. 4.1.5 Valores por defecto Cuando datos de tipo primitivo son miembros de una clase, se garantiza que por omisión toman estos valores de inicialización: Cuando las variables son referencias a un objeto y no son instanciadas, se garantiza que su valor tendrá un valor constante Null ( nulo ).
  • 11. 4.2 Sobrecarga de métodos Java permite métodos sobrecargados (overloaded), es decir, métodos distintos que tienen el mismo nombre, pero que se diferencian por el número y/o tipo de los argumentos. Se pueden sobrecargar los constructores de una clase al igual que otros métodos. Se puede llamar a un constructor desde otro constructor usando la palabra this. Diferente de la sobrecarga de métodos es la redefinición. Una clase puede redefinir(override) un método heredado de una superclase. Redefinir un método es dar una nueva definición. En este caso el método debe tener exactamente los mismos argumentos en tipo y número que el método redefinido.
  • 12. 4.2.1 Proceso en la llamada de un método sobrecargado 1. Si existe el método cuyos argumentos se ajustan exactamente al tipo de los argumentos de la llamada (argumentos actuales), se llama ese método. 2. Si no existe un método que se ajuste exactamente, se intenta promover los argumentos actuales al tipo inmediatamente superior (por ejemplo char a int, int a long, float a double,etc.) y se llama el método correspondiente. 3. Si sólo existen métodos con argumentos de un tipo más restringido (por ejemplo, int en vez de long), el programador debe hacer un cast explícito en la llamada, responsabilizándose de esta manera de lo que pueda ocurrir. 4. El valor de retorno no influye en la elección del método sobrecargado. En realidad es imposible saber desde el propio método lo que se va a hacer con él. No es posible crear dos métodos sobrecargados, es decir con el mismo nombre, que sólo difieran en el valor de retorno.
  • 13. 4.2.3 Ejemplo de sobrecarga de métodos public class Circulo { static int numCirculos = 0; Propiedades public static final double PI=3.14159265358979323846; public double x, y, r; public Circulo(double x, double y, double r) { this.x=x; this.y=y; this.r=r; numCirculos++; } public Circulo(double r) { this(0.0, 0.0, r); } Sobrecarga de public Circulo(Circulo c) { this(c.x, c.y, c.r); } constructores public Circulo() { this(0.0, 0.0, 1.0); } public double perimetro() { return 2.0 * PI * r; } public double area() { return PI * r * r; } Sobrecarga de Métodos // método de objeto para comparar círculos public Circulo elMayor(Circulo c) {if (this.r>=c.r) return this; else return c;} // método de clase para comparar círculos public static Circulo elMayor(Circulo c, Circulo d) { if (c.r>=d.r) return c; else return d;} } // fin de la clase Circulo
  • 14. 4.3 Sobrecarga de operadores La sobrecarga de operadores a diferencia de C++ en JAVA No existe. Solo en los objetos String el operador + y += se permiten para la concatenación de cadenas.