MÓDULO 3INTRODUCCIÓN A JAVA3.5 CREANDO CLASES40 HORASJesús Muñozjesus@iluego.com
Contenidos tema 3 – Introducción a JavaComenzamosBases del lenguaje JavaProgramación Orientada a Objetos (OOP)Clases y objetosCreando clasesPaquetes y java classpathJavabeansHerenciaClases abstractas e interfacesPolimorfismoClases internasExcepcionesLoggingNetworking2
3Contenidos de este temaClases y objetosDefiniendo clases propiasVariables instancia vs. claseVariables instanciaVariables claseDeclaración de métodosGetters y settersMúltiples returnsMétodos staticSobrecarga de métodosConstructoresConstructor thisReferencia thisModificadores de acceso
Conceptos básicos4Clases y objetosDefiniendo clases propiasVariables instancia vs. claseVariables instanciaVariables claseDeclaración de métodosGetters y settersMúltiples returnsMétodos staticSobrecarga de métodosConstructoresConstructor thisReferencia thisModificadores de acceso
5Definiendo clases propiaspublic class StudentRecord {//código…}
Conceptos básicos6Clases y objetosDefiniendo clases propiasVariables instancia vs. claseVariables instanciaVariables claseDeclaración de métodosGetters y settersMúltiples returnsMétodos staticSobrecarga de métodosConstructoresConstructor thisReferencia thisModificadores de acceso
7Variables instancia vs. claseVariables instanciaPertenece a la instanciaEl valor de la variable es diferente de una instancia a otraVariables clase (static variables)Pertenece a la claseEsto significa que el comparte el valor para todas las instancias de la misma clase
Conceptos básicos8Clases y objetosDefiniendo clases propiasVariables instancia vs. claseVariables instanciaVariables claseDeclaración de métodosGetters y settersMúltiples returnsMétodos staticSobrecarga de métodosConstructoresConstructor thisReferencia thisModificadores de acceso
9Variables instanciaDeclarar cada variable en una líneaLas variables de instancia, como otras variables, deben comenzar con letra minúsculaUsar un tipo de datos apropiado para cada variable declaradaDeclarar las variables como privadas, de tal forma que sólo los métodos de la instancia puedan acceder a ellasEncapsulación
Conceptos básicos10Clases y objetosDefiniendo clases propiasVariables instancia vs. claseVariables instanciaVariables claseDeclaración de métodosGetters y settersMúltiples returnsMétodos staticSobrecarga de métodosConstructoresConstructor thisReferencia thisModificadores de acceso
11Variables clasepublic class StudentRecord {//static variables we have declaredprivate static int studentCount;//we'll add more code here later}Usamos la palabra reservada static
Conceptos básicos12Clases y objetosDefiniendo clases propiasVariables instancia vs. claseVariables instanciaVariables claseDeclaración de métodosGetters y settersMúltiples returnsMétodos staticSobrecarga de métodosConstructoresConstructor thisReferencia thisModificadores de acceso
13Declaración de MÉTODOSpublic class StudentRecord {private String name;// some code// An example in which the business logic is// used to return a value on an accessor methodpublic double getAverage(){double result = 0;result=(mathGrade+englishGrade+scienceGrade)/3;return result;}}
14Declaración de MÉTODOSLos métodos deben:Comenzar con letra minúsculaDeben ser verbosAñadir documentación suficiente antes de la declaración del método. Javadoc style.
Conceptos básicos15Clases y objetosDefiniendo clases propiasVariables instancia vs. claseVariables instanciaVariables claseDeclaración de métodosGetters y settersMúltiples returnsMétodos staticSobrecarga de métodosConstructoresConstructor thisReferencia thisModificadores de acceso
16Getters y SettersSon métodos que ofrecen acceso de lectura (get) y escritura (set) a las propiedades de la instancia o de la clase.
Conceptos básicos17Clases y objetosDefiniendo clases propiasVariables instancia vs. claseVariables instanciaVariables claseDeclaración de métodosGetters y settersMúltiples returnsMétodos staticSobrecarga de métodosConstructoresConstructor thisReferencia thisModificadores de acceso
18Múltiples RETURNSEn un método se pueden tener múltiples sentencias de returnpublic String getNumberInWords( int num ){String defaultNum = "zero";if( num == 1 ){return "one"; //return a constant}else if( num == 2){return "two"; //return a constant}//return a variablereturn defaultNum;}
Conceptos básicos19Clases y objetosDefiniendo clases propiasVariables instancia vs. claseVariables instanciaVariables claseDeclaración de métodosGetters y settersMúltiples returnsMétodos staticSobrecarga de métodosConstructoresConstructor thisReferencia thisModificadores de acceso
20Métodos STATICpublic class StudentRecord {private static int studentCount;public static int getStudentCount(){return studentCount;}}
Conceptos básicos21Clases y objetosDefiniendo clases propiasVariables instancia vs. claseVariables instanciaVariables claseDeclaración de métodosGetters y settersMúltiples returnsMétodos staticSobrecarga de métodosConstructoresConstructor thisReferencia thisModificadores de acceso
22Sobrecarga de métodosSobrecarga de métodos:Permite varios métodos con el mismo nombre aunque con diferente implementacion y diferentes tipos de valoresPuede ser usado cuando la misma operación tiene diferentes implementacionesRecordar siempre que los métodos sobrecargados tienen las siguientes propiedades:Mismo nombre de métodoDiferentes parámetros o diferente número de parámetrosTipos de datos de retorno distintos o iguales
23Sobrecarga de métodosSobrecarga de métodos:Permite varios métodos con el mismo nombre aunque con diferente implementacion y diferentes tipos de valoresPuede ser usado cuando la misma operación tiene diferentes implementacionesRecordar siempre que los métodos sobrecargados tienen las siguientes propiedades:Mismo nombre de métodoDiferentes parámetros o diferente número de parámetrosTipos de datos de retorno distintos o iguales
24Sobrecarga de métodospublic void print ( String temp ){System.out.println("Name:" + name);System.out.println("Address:" + address);System.out.println("Age:" + age);}public void print (double eGrade, double mGrade,double sGrade)System.out.println("Name:" + name);System.out.println("Math Grade:" + mGrade);System.out.println("English Grade:" + eGrade);System.out.println("Science Grade:" + sGrade);}
25Sobrecarga de métodospublic static void main( String[] args ){StudentRecord annaRecord = new StudentRecord();annaRecord.setName("Anna");annaRecord.setAddress("Philippines");annaRecord.setAge(15);annaRecord.setMathGrade(80);annaRecord.setEnglishGrade(95.5);annaRecord.setScienceGrade(100);//overloaded methodsannaRecord.print( annaRecord.getName() );annaRecord.print( annaRecord.getEnglishGrade(),annaRecord.getMathGrade(),annaRecord.getScienceGrade());}
Conceptos básicos26Clases y objetosDefiniendo clases propiasVariables instancia vs. claseVariables instanciaVariables claseDeclaración de métodosGetters y settersMúltiples returnsMétodos staticSobrecarga de métodosConstructoresConstructor thisReferencia thisModificadores de acceso
27ConstructoresLos constructores son importantes en la instanciación de objetos. Es un método especial en el cual se definen las inicializaciones.Características de un constructor:Los constructores tienen el mismo nombre de claseUn constructor es como un método ordinario, sin embargo sólo se puede definir lo siguiente en la cabecera del constructor:Scope de accesibilidad (public, protected, private)Parámetros si hayLos constructores no pueden retornar ningún valorNo se puede llamar a un constructor directamente, sólo puede ser llamado mediante el uso del operador new durante la instanciaciónSe puede sobrecargar
Conceptos básicos28Clases y objetosDefiniendo clases propiasVariables instancia vs. claseVariables instanciaVariables claseDeclaración de métodosGetters y settersMúltiples returnsMétodos staticSobrecarga de métodosConstructoresConstructor thisReferencia thisModificadores de acceso
29Constructor THISLas llamadas al constructor pueden ser encadenadas, es decir, desde un constructor se puede llamar a otroUsamos this() para esta llamadaHay varias cosas a recordar cuando usamos el constructor this():Ha de ser la primera sentencia del constructorSólo puede usarse en la definición de un constructor. Esta llamada puede ir seguida de otras llamadas más o menos relevantes.
Conceptos básicos30Clases y objetosDefiniendo clases propiasVariables instancia vs. claseVariables instanciaVariables claseDeclaración de métodosGetters y settersMúltiples returnsMétodos staticSobrecarga de métodosConstructoresConstructor thisReferencia thisModificadores de acceso
31Referencia THISLa referencia this:Referencia la instancia de objeto actualUsado para el acceso a las variables de la instancia para diferenciarlas de los parámetrosPara usar la referencia a this, usamos:this.<nombreDeLaInstancia>Sólo se pueden referenciar las instancias, pero no las clases estáticas
Conceptos básicos32Clases y objetosDefiniendo clases propiasVariables instancia vs. claseVariables instanciaVariables claseDeclaración de métodosGetters y settersMúltiples returnsMétodos staticSobrecarga de métodosConstructoresConstructor thisReferencia thisModificadores de acceso
33Modificadores de accesoHay 4 tipos diferentes de modificadores de acceso:public (menos restrictivo)protectedprivate (más restrictivo), defaultLos 3 modificadores de acceso son escritos explícitamente en el código para indicar los tipos de acceso. Private es el que se usa por defecto si no se pone nada.
34Modificadores de accesoHay 4 tipos diferentes de modificadores de acceso:public (menos restrictivo)protectedprivate (más restrictivo), defaultLos 3 modificadores de acceso son escritos explícitamente en el código para indicar los tipos de acceso. Private es el que se usa por defecto si no se pone nada.
Es importante que recordeis…“Si haces todos los días lo mismo no llegarás más lejos de lo que otras veces has llegado”Adelante!!!Jesús Muñozjesus@iluego.com

05 Creando Clases

  • 1.
    MÓDULO 3INTRODUCCIÓN AJAVA3.5 CREANDO CLASES40 HORASJesús Muñozjesus@iluego.com
  • 2.
    Contenidos tema 3– Introducción a JavaComenzamosBases del lenguaje JavaProgramación Orientada a Objetos (OOP)Clases y objetosCreando clasesPaquetes y java classpathJavabeansHerenciaClases abstractas e interfacesPolimorfismoClases internasExcepcionesLoggingNetworking2
  • 3.
    3Contenidos de estetemaClases y objetosDefiniendo clases propiasVariables instancia vs. claseVariables instanciaVariables claseDeclaración de métodosGetters y settersMúltiples returnsMétodos staticSobrecarga de métodosConstructoresConstructor thisReferencia thisModificadores de acceso
  • 4.
    Conceptos básicos4Clases yobjetosDefiniendo clases propiasVariables instancia vs. claseVariables instanciaVariables claseDeclaración de métodosGetters y settersMúltiples returnsMétodos staticSobrecarga de métodosConstructoresConstructor thisReferencia thisModificadores de acceso
  • 5.
    5Definiendo clases propiaspublicclass StudentRecord {//código…}
  • 6.
    Conceptos básicos6Clases yobjetosDefiniendo clases propiasVariables instancia vs. claseVariables instanciaVariables claseDeclaración de métodosGetters y settersMúltiples returnsMétodos staticSobrecarga de métodosConstructoresConstructor thisReferencia thisModificadores de acceso
  • 7.
    7Variables instancia vs.claseVariables instanciaPertenece a la instanciaEl valor de la variable es diferente de una instancia a otraVariables clase (static variables)Pertenece a la claseEsto significa que el comparte el valor para todas las instancias de la misma clase
  • 8.
    Conceptos básicos8Clases yobjetosDefiniendo clases propiasVariables instancia vs. claseVariables instanciaVariables claseDeclaración de métodosGetters y settersMúltiples returnsMétodos staticSobrecarga de métodosConstructoresConstructor thisReferencia thisModificadores de acceso
  • 9.
    9Variables instanciaDeclarar cadavariable en una líneaLas variables de instancia, como otras variables, deben comenzar con letra minúsculaUsar un tipo de datos apropiado para cada variable declaradaDeclarar las variables como privadas, de tal forma que sólo los métodos de la instancia puedan acceder a ellasEncapsulación
  • 10.
    Conceptos básicos10Clases yobjetosDefiniendo clases propiasVariables instancia vs. claseVariables instanciaVariables claseDeclaración de métodosGetters y settersMúltiples returnsMétodos staticSobrecarga de métodosConstructoresConstructor thisReferencia thisModificadores de acceso
  • 11.
    11Variables clasepublic classStudentRecord {//static variables we have declaredprivate static int studentCount;//we'll add more code here later}Usamos la palabra reservada static
  • 12.
    Conceptos básicos12Clases yobjetosDefiniendo clases propiasVariables instancia vs. claseVariables instanciaVariables claseDeclaración de métodosGetters y settersMúltiples returnsMétodos staticSobrecarga de métodosConstructoresConstructor thisReferencia thisModificadores de acceso
  • 13.
    13Declaración de MÉTODOSpublicclass StudentRecord {private String name;// some code// An example in which the business logic is// used to return a value on an accessor methodpublic double getAverage(){double result = 0;result=(mathGrade+englishGrade+scienceGrade)/3;return result;}}
  • 14.
    14Declaración de MÉTODOSLosmétodos deben:Comenzar con letra minúsculaDeben ser verbosAñadir documentación suficiente antes de la declaración del método. Javadoc style.
  • 15.
    Conceptos básicos15Clases yobjetosDefiniendo clases propiasVariables instancia vs. claseVariables instanciaVariables claseDeclaración de métodosGetters y settersMúltiples returnsMétodos staticSobrecarga de métodosConstructoresConstructor thisReferencia thisModificadores de acceso
  • 16.
    16Getters y SettersSonmétodos que ofrecen acceso de lectura (get) y escritura (set) a las propiedades de la instancia o de la clase.
  • 17.
    Conceptos básicos17Clases yobjetosDefiniendo clases propiasVariables instancia vs. claseVariables instanciaVariables claseDeclaración de métodosGetters y settersMúltiples returnsMétodos staticSobrecarga de métodosConstructoresConstructor thisReferencia thisModificadores de acceso
  • 18.
    18Múltiples RETURNSEn unmétodo se pueden tener múltiples sentencias de returnpublic String getNumberInWords( int num ){String defaultNum = "zero";if( num == 1 ){return "one"; //return a constant}else if( num == 2){return "two"; //return a constant}//return a variablereturn defaultNum;}
  • 19.
    Conceptos básicos19Clases yobjetosDefiniendo clases propiasVariables instancia vs. claseVariables instanciaVariables claseDeclaración de métodosGetters y settersMúltiples returnsMétodos staticSobrecarga de métodosConstructoresConstructor thisReferencia thisModificadores de acceso
  • 20.
    20Métodos STATICpublic classStudentRecord {private static int studentCount;public static int getStudentCount(){return studentCount;}}
  • 21.
    Conceptos básicos21Clases yobjetosDefiniendo clases propiasVariables instancia vs. claseVariables instanciaVariables claseDeclaración de métodosGetters y settersMúltiples returnsMétodos staticSobrecarga de métodosConstructoresConstructor thisReferencia thisModificadores de acceso
  • 22.
    22Sobrecarga de métodosSobrecargade métodos:Permite varios métodos con el mismo nombre aunque con diferente implementacion y diferentes tipos de valoresPuede ser usado cuando la misma operación tiene diferentes implementacionesRecordar siempre que los métodos sobrecargados tienen las siguientes propiedades:Mismo nombre de métodoDiferentes parámetros o diferente número de parámetrosTipos de datos de retorno distintos o iguales
  • 23.
    23Sobrecarga de métodosSobrecargade métodos:Permite varios métodos con el mismo nombre aunque con diferente implementacion y diferentes tipos de valoresPuede ser usado cuando la misma operación tiene diferentes implementacionesRecordar siempre que los métodos sobrecargados tienen las siguientes propiedades:Mismo nombre de métodoDiferentes parámetros o diferente número de parámetrosTipos de datos de retorno distintos o iguales
  • 24.
    24Sobrecarga de métodospublicvoid print ( String temp ){System.out.println("Name:" + name);System.out.println("Address:" + address);System.out.println("Age:" + age);}public void print (double eGrade, double mGrade,double sGrade)System.out.println("Name:" + name);System.out.println("Math Grade:" + mGrade);System.out.println("English Grade:" + eGrade);System.out.println("Science Grade:" + sGrade);}
  • 25.
    25Sobrecarga de métodospublicstatic void main( String[] args ){StudentRecord annaRecord = new StudentRecord();annaRecord.setName("Anna");annaRecord.setAddress("Philippines");annaRecord.setAge(15);annaRecord.setMathGrade(80);annaRecord.setEnglishGrade(95.5);annaRecord.setScienceGrade(100);//overloaded methodsannaRecord.print( annaRecord.getName() );annaRecord.print( annaRecord.getEnglishGrade(),annaRecord.getMathGrade(),annaRecord.getScienceGrade());}
  • 26.
    Conceptos básicos26Clases yobjetosDefiniendo clases propiasVariables instancia vs. claseVariables instanciaVariables claseDeclaración de métodosGetters y settersMúltiples returnsMétodos staticSobrecarga de métodosConstructoresConstructor thisReferencia thisModificadores de acceso
  • 27.
    27ConstructoresLos constructores sonimportantes en la instanciación de objetos. Es un método especial en el cual se definen las inicializaciones.Características de un constructor:Los constructores tienen el mismo nombre de claseUn constructor es como un método ordinario, sin embargo sólo se puede definir lo siguiente en la cabecera del constructor:Scope de accesibilidad (public, protected, private)Parámetros si hayLos constructores no pueden retornar ningún valorNo se puede llamar a un constructor directamente, sólo puede ser llamado mediante el uso del operador new durante la instanciaciónSe puede sobrecargar
  • 28.
    Conceptos básicos28Clases yobjetosDefiniendo clases propiasVariables instancia vs. claseVariables instanciaVariables claseDeclaración de métodosGetters y settersMúltiples returnsMétodos staticSobrecarga de métodosConstructoresConstructor thisReferencia thisModificadores de acceso
  • 29.
    29Constructor THISLas llamadasal constructor pueden ser encadenadas, es decir, desde un constructor se puede llamar a otroUsamos this() para esta llamadaHay varias cosas a recordar cuando usamos el constructor this():Ha de ser la primera sentencia del constructorSólo puede usarse en la definición de un constructor. Esta llamada puede ir seguida de otras llamadas más o menos relevantes.
  • 30.
    Conceptos básicos30Clases yobjetosDefiniendo clases propiasVariables instancia vs. claseVariables instanciaVariables claseDeclaración de métodosGetters y settersMúltiples returnsMétodos staticSobrecarga de métodosConstructoresConstructor thisReferencia thisModificadores de acceso
  • 31.
    31Referencia THISLa referenciathis:Referencia la instancia de objeto actualUsado para el acceso a las variables de la instancia para diferenciarlas de los parámetrosPara usar la referencia a this, usamos:this.<nombreDeLaInstancia>Sólo se pueden referenciar las instancias, pero no las clases estáticas
  • 32.
    Conceptos básicos32Clases yobjetosDefiniendo clases propiasVariables instancia vs. claseVariables instanciaVariables claseDeclaración de métodosGetters y settersMúltiples returnsMétodos staticSobrecarga de métodosConstructoresConstructor thisReferencia thisModificadores de acceso
  • 33.
    33Modificadores de accesoHay4 tipos diferentes de modificadores de acceso:public (menos restrictivo)protectedprivate (más restrictivo), defaultLos 3 modificadores de acceso son escritos explícitamente en el código para indicar los tipos de acceso. Private es el que se usa por defecto si no se pone nada.
  • 34.
    34Modificadores de accesoHay4 tipos diferentes de modificadores de acceso:public (menos restrictivo)protectedprivate (más restrictivo), defaultLos 3 modificadores de acceso son escritos explícitamente en el código para indicar los tipos de acceso. Private es el que se usa por defecto si no se pone nada.
  • 35.
    Es importante querecordeis…“Si haces todos los días lo mismo no llegarás más lejos de lo que otras veces has llegado”Adelante!!!Jesús Muñozjesus@iluego.com