SlideShare una empresa de Scribd logo
1 de 5
Universidad Católica de Salta                                             Subsede Buenos Aires
                                                Lenguajes II

                                         Clases en Java
      Una clase es la agrupación de datos y funciones que permiten manipular esos datos. Los datos
se denominan variables miembro o atributos y las funciones se denominan métodos.

      Un objeto es una instancia, un ejemplar, de una clase. La clase es la definición general y el
objeto es la materialización concreta (en la memoria de la computadora) de una clase.

      Muchas de las clases pertenecen a la biblioteca Java por lo tanto ya están escritas y
compiladas pero otras deberán ser creadas por el programador. Veamos entonces cómo se define
una clase, por ejemplo la clase Fraccion que analizamos cuando vimos tipo abstracto de datos y
cómo se usa.

       La definición de una clase tiene dos partes: encabezamiento y cuerpo. El encabezamiento
tiene el siguiente formato: [modificador] class nombre_de_la_clase

      Ejemplo: public class Fraccion

      En el cuerpo de la clase se declaran las variables miembro y se definen los métodos. Las
variables miembro de una clase pueden ser de tipos primitivos (int, long, boolean, etc.) o
referencias a objetos de otra clase. Las variables miembro de tipo primitivo se inicializan en forma
automática (false para booleanas, cero para las de tipo numérico, etc.), de todas formas lo más
adecuado es inicializarlas en el constructor.

      Ejemplo: private int numerador;
                  private int denominador =1; // valor por defecto del denominador

      En Java, lo que se escribe entre // y el final de la línea es considerado como comentario.

      Los métodos, que constituyen lo que se denomina la interfaz, pueden ser de objeto o
instancia o de clase.

      Los métodos de objeto o instancia se aplican siempre a un objeto de la clase por medio del
operador punto (.), dicho objeto es su argumento implícito o sea que el método utiliza el objeto para
el cual fue llamado. Los métodos pueden además tener otros argumentos explícitos que van entre
paréntesis a continuación del nombre del método. La 1º línea de la definición de un método se llama
declaración o header.

      Ejemplo:           public int fraccionDenominador ( )


               modificador      tipo de valor nombre           lista de argumentos
                                de retorno del método           (puede ser vacía)
                                                                                        C.C. Marta Ferrari
                                                     1
Universidad Católica de Salta                                          Subsede Buenos Aires
                                             Lenguajes II

      El código comprendido ente llaves { } es el cuerpo o body.
      Ejemplo: { return denominador;
               }
      Recordemos que la llamada a los métodos de instancia en Java se realiza utilizando el nombre
del objeto, el operador punto y el nombre del método, por ejemplo:     f1.denominador()



      Un constructor es un método que se llama automáticamente cada vez que se crea un objeto
de la clase. La principal misión del constructor es reservar memoria e inicializar las variables
miembro de la clase.

       Los constructores no tienen valor de retorno y su nombre es el mismo que el de la clase. Una
clase puede tener varios constructores. El constructor es tan importante que si el programador no
prepara ningún constructor para una clase, el compilador crea un constructor por defecto, sin
argumentos, inicializando las variables de los tipos primitivos a su valor por defecto. Si se declaran
constructores entonces el constructor por defecto no se puede usar.

        Ejemplo: public Fraccion (int a, int.) {
                 numerador =a;
                 denominador= b;
                 } // fin del constructor del programador

     Para crear un objeto de una clase se debe llamar al constructor de la clase utilizando el
operador new.

        Ejemplo: f1= new Fraccion ( ) ;       // invoca al constructor por defecto
                 f1 = new Fraccion (3,4);     // invoca al constructor del programador

      Los métodos de clase o static no actúan sobre objetos. Pueden recibir objetos de su clase
como argumentos explícitos pero no tienen argumento implícito. Se crean utilizando como
modificador de acceso la palabra static.

       Ejemplo:        static Fraccion fraccionSumar (Fraccion f1, Fraccion f2)

      Para llamarlos se utiliza el nombre de la clase en lugar del nombre de un objeto de la clase,
por ejemplo: Fraccion.fraccionSumar ( f1 , f2 )

      Un ejemplo típico de métodos de clase o static son los métodos matemáticos de la clase
java.lang.Math (sin (), cos (), exp (), etc.), el argumento de estos métodos será de un tipo primitivo
y se le pasará como argumento explícito.

      Para completar lo dicho de métodos de clase y métodos de instancia veamos la multiplicación
de 2 fracciones implementada con ambos métodos, fraccionSumar y fraccionSumar2.

                                                                                     C.C. Marta Ferrari
                                                  2
Universidad Católica de Salta                                       Subsede Buenos Aires
                                             Lenguajes II

    a. Método de clase
       Se usa el modificador static
       Reciben objetos de la clase como argumentos
       Para llamarlos se usa el nombre de la clase

    Definición:
       // suma 2 fracciones que recibe como parámetros y retorna la fraccion resultado
       public static Fraccion fraccionSumar (Fraccion f1, Fraccion f2) {
       int num = f1.numerador * f2.denominador + f1.denominador * f2.numerador;
       int den = f1.denominador * f2.denominador;
       Fraccion aux = new Fraccion (num, den);
       return aux;
       }
    Llamado:
       f3 = fraccionSumar (f1, f2)


    b. Método de instancia
       Se aplican a un objeto de la clase
       Para llamarlos se usa el nombre del objeto

    Definición:
       // suma 2 fracciones, recibe una de ellas como parámetro y retorna la fraccion resultado
       public Fraccion fraccionSumar2 ( Fraccion f2) {
       int num = numerador * f2.denominador + denominador * f2.numerador;
       int den = denominador * f2.denominador;
       Fraccion aux = new Fraccion (num, den);
       return aux;
       }
       Numerador y denominador son valores del objeto para el cual fue llamada la función, por
       eso el nombre del objeto no aparece. Para referirse a los valores del objeto recibido como
       parámetro se usa el nombre completo, f2.numerador por ejemplo.
    Llamado:

        f3= f1.fraccionSumar2(f2)



Clases Utilitarias

      La clase java.lang.Math mencionada anteriormente es una clase utilitaria, o sea, son clases
que tienen métodos estáticos (métodos de clase) y su objetivo es agrupar funciones de la misma
naturaleza.

          Ejemplo: int min=Math.min(a, b);    double log=Math.log(a);    double seno=Math.sin(a);
Vemos que en ningún caso necesitamos instanciar (declarar objetos) la clase Math. Simplemente
utilizamos sus métodos haciendo referencia al nombre de la clase.



                                                                                  C.C. Marta Ferrari
                                                  3
Universidad Católica de Salta                                           Subsede Buenos Aires
                                              Lenguajes II



Bibliotecas en Java

      En el lenguaje C existen "bibliotecas de funciones" que están disponibles para ser utilizadas
en los programas con el único requisito de incluirlas con un # include (por ejemplo: # include
stdio.h). En el entorno de desarrollo JDK (Java Development Kit) además del compilador y el
intérprete se incluye una serie de bibliotecas de clases que permiten comenzar rápidamente a
producir programas. Estas bibliotecas son:

java.awt: proporciona facilidades para interfaces gráficas
java.applet: proporciona clases útiles para incorporar contenidos dinámicos como sonidos y
animaciones.
java.io: contiene clases que soportan la lectura y escritura en streams, archivos y pipes.
java.lang: clases que soportan las clases y tipos de datos básicos. Se importa implícitamente sin
necesidad de una sentencia import
java.net: soporta la programación en red
java.util: clases de propósito general para el manejo de las estructuras de datos más comunes.
      Es común distribuir junto con las bibliotecas una documentación que llamamos API
(Application Programming Interface). Así, conocer la funcionalidad provista por una biblioteca es
sinónimo de conocer su API.
La API del lenguaje de programación Java se encuentra publicada en esta dirección:
http://java.sun.com/j2se/1.4.2/docs/api/

      Para cualquier librería que vayamos a utilizar necesitaremos consultar su API ya que allí se
detallan todas las clases con sus correspondientes métodos.



Clase Fraccion completa

public class Fraccion

{   private int numerador;        // variables miembro
    private int denominador;

     // constructor
     public Fraccion (int a, int b) {
          numerador =a;
         denominador= b;
     }

     // muestra la fraccion por la pantalla
     public void fraccionMostrar () {

                                                                                      C.C. Marta Ferrari
                                                   4
Universidad Católica de Salta                                           Subsede Buenos Aires
                                               Lenguajes II

          System.out.println(numerador + “/” + denominador);
     }

     // obtiene el denominador de la fraccion
     public int fraccionDenominador () {
         return denominador;
     }

     // suma 2 fracciones que recibe como parámetros y retorna la fraccion resultado
      public static Fraccion fraccionSumar (Fraccion f1, Fraccion f2) {
         int num = f1.numerador * f2.denominador + f1.denominador * f2.numerador;
         int den = f1.denominador * f2.denominador;
         Fraccion aux = new Fraccion (num, den );
         return aux;
       }

          // suma 2 fracciones, recibe una de ellas como parámetro y retorna la fraccion resultado
         public Fraccion fraccionSumar2 ( Fraccion f2) {
          int num = numerador * f2.denominador + denominador * f2.numerador;
          int den = denominador * f2.denominador;
          Fraccion aux = new Fraccion (num, den);
          return aux;
          }


         // determina si una fraccion es decimal o no
          public boolean fraccionEsDecimal () {
           if (denominador % 10 == 0 )
                   return true;
          else
                   return false;
           }
}

Aclaraciones

         Los modificadores permiten al creador de una clase determinar quien accede a los datos y
métodos de la clase. El modificador private que precede a las variables miembro numerador y
denominador indica que sólo se puede acceder a ellas desde métodos de la clase. El modificador
public que aparece en el encabezamiento de la clase y en todos sus métodos indica que la clase y
los métodos pueden ser usados por todo el mundo, o sea, que es accesible desde cualquier otra
clase en cualquier otro paquete.




                                                                                      C.C. Marta Ferrari
                                                    5

Más contenido relacionado

La actualidad más candente

Trabajo tutorial de visual C++
Trabajo tutorial de visual C++Trabajo tutorial de visual C++
Trabajo tutorial de visual C++Bryangio2002
 
2) introduccion al lenguaje java
2) introduccion al lenguaje java2) introduccion al lenguaje java
2) introduccion al lenguaje javaMargarita Romero
 
Programación ii presentación tema 5
Programación ii presentación tema 5Programación ii presentación tema 5
Programación ii presentación tema 5Joel Mieses
 
11 Curso de POO en java - métodos constructores y toString()
11 Curso de POO en java - métodos constructores y toString()11 Curso de POO en java - métodos constructores y toString()
11 Curso de POO en java - métodos constructores y toString()Clara Patricia Avella Ibañez
 
Introducción a la Programaciónen Java
Introducción a la Programaciónen JavaIntroducción a la Programaciónen Java
Introducción a la Programaciónen Javasantosisidrorivera
 
Cuestionario java
Cuestionario javaCuestionario java
Cuestionario javajaky9727
 
.NET UY Meetup 6 - Integrando con C/C++ por medio de P/Invoke by Juan Ramirez
.NET UY Meetup 6 - Integrando con C/C++ por medio de P/Invoke by Juan Ramirez.NET UY Meetup 6 - Integrando con C/C++ por medio de P/Invoke by Juan Ramirez
.NET UY Meetup 6 - Integrando con C/C++ por medio de P/Invoke by Juan Ramirez.NET UY Meetup
 
1 1 3 Api De Java
1 1 3 Api De Java1 1 3 Api De Java
1 1 3 Api De JavaUVM
 
02 python Programación orientada a objetos y funcional
02 python Programación orientada a objetos y funcional02 python Programación orientada a objetos y funcional
02 python Programación orientada a objetos y funcionalJuan Rodríguez
 

La actualidad más candente (17)

Trabajo tutorial de visual C++
Trabajo tutorial de visual C++Trabajo tutorial de visual C++
Trabajo tutorial de visual C++
 
2) introduccion al lenguaje java
2) introduccion al lenguaje java2) introduccion al lenguaje java
2) introduccion al lenguaje java
 
Datos Previos
Datos PreviosDatos Previos
Datos Previos
 
Datos Previos
Datos PreviosDatos Previos
Datos Previos
 
Clase 4 JAVA 2012
Clase 4 JAVA 2012Clase 4 JAVA 2012
Clase 4 JAVA 2012
 
Programación ii presentación tema 5
Programación ii presentación tema 5Programación ii presentación tema 5
Programación ii presentación tema 5
 
Poo 1
Poo 1Poo 1
Poo 1
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
11 Curso de POO en java - métodos constructores y toString()
11 Curso de POO en java - métodos constructores y toString()11 Curso de POO en java - métodos constructores y toString()
11 Curso de POO en java - métodos constructores y toString()
 
Introducción a la Programaciónen Java
Introducción a la Programaciónen JavaIntroducción a la Programaciónen Java
Introducción a la Programaciónen Java
 
Cuestionario java
Cuestionario javaCuestionario java
Cuestionario java
 
.NET UY Meetup 6 - Integrando con C/C++ por medio de P/Invoke by Juan Ramirez
.NET UY Meetup 6 - Integrando con C/C++ por medio de P/Invoke by Juan Ramirez.NET UY Meetup 6 - Integrando con C/C++ por medio de P/Invoke by Juan Ramirez
.NET UY Meetup 6 - Integrando con C/C++ por medio de P/Invoke by Juan Ramirez
 
1 1 3 Api De Java
1 1 3 Api De Java1 1 3 Api De Java
1 1 3 Api De Java
 
generalidades java
generalidades javageneralidades java
generalidades java
 
Apoo v
Apoo vApoo v
Apoo v
 
C2 clases en java
C2 clases en javaC2 clases en java
C2 clases en java
 
02 python Programación orientada a objetos y funcional
02 python Programación orientada a objetos y funcional02 python Programación orientada a objetos y funcional
02 python Programación orientada a objetos y funcional
 

Destacado

Tugas lan individu fifi
Tugas lan individu fifiTugas lan individu fifi
Tugas lan individu fififififlusubun
 
La organización espacial
La organización espacialLa organización espacial
La organización espacialatorija
 
Sistemas operativos andrea y maialen
Sistemas operativos andrea y maialenSistemas operativos andrea y maialen
Sistemas operativos andrea y maialenMaialen2861996
 
Musguide, la gran col·lecció d'exposicions i rutes culturals que no pot falta...
Musguide, la gran col·lecció d'exposicions i rutes culturals que no pot falta...Musguide, la gran col·lecció d'exposicions i rutes culturals que no pot falta...
Musguide, la gran col·lecció d'exposicions i rutes culturals que no pot falta...musguide
 
Confidentiality
ConfidentialityConfidentiality
Confidentialityridley27
 
Exposicion de telefonia
Exposicion de telefoniaExposicion de telefonia
Exposicion de telefonianoeuniv
 
Android Presentacion
Android PresentacionAndroid Presentacion
Android PresentacionJesu Puënt
 
M A T E R I A L E S P A R A E L A B O R A R U N I D A D E S D I D A C T I...
M A T E R I A L E S  P A R A  E L A B O R A R  U N I D A D E S  D I D A C T I...M A T E R I A L E S  P A R A  E L A B O R A R  U N I D A D E S  D I D A C T I...
M A T E R I A L E S P A R A E L A B O R A R U N I D A D E S D I D A C T I...joan11
 

Destacado (20)

Presentacion blog
Presentacion blogPresentacion blog
Presentacion blog
 
Tugas lan individu fifi
Tugas lan individu fifiTugas lan individu fifi
Tugas lan individu fifi
 
Lampiran 3
Lampiran 3Lampiran 3
Lampiran 3
 
La organización espacial
La organización espacialLa organización espacial
La organización espacial
 
Sistemas operativos andrea y maialen
Sistemas operativos andrea y maialenSistemas operativos andrea y maialen
Sistemas operativos andrea y maialen
 
Musguide, la gran col·lecció d'exposicions i rutes culturals que no pot falta...
Musguide, la gran col·lecció d'exposicions i rutes culturals que no pot falta...Musguide, la gran col·lecció d'exposicions i rutes culturals que no pot falta...
Musguide, la gran col·lecció d'exposicions i rutes culturals que no pot falta...
 
Apel Voluntari It Ian 2010
Apel Voluntari It   Ian 2010Apel Voluntari It   Ian 2010
Apel Voluntari It Ian 2010
 
Google drvie
Google drvieGoogle drvie
Google drvie
 
SuspensióN
SuspensióNSuspensióN
SuspensióN
 
Confidentiality
ConfidentialityConfidentiality
Confidentiality
 
Materia de matematicas herman gallegos macas
Materia de matematicas herman gallegos macasMateria de matematicas herman gallegos macas
Materia de matematicas herman gallegos macas
 
Exposicion de telefonia
Exposicion de telefoniaExposicion de telefonia
Exposicion de telefonia
 
Marie Curie
Marie CurieMarie Curie
Marie Curie
 
Lalalalalal
LalalalalalLalalalalal
Lalalalalal
 
Final powerpoint
Final powerpointFinal powerpoint
Final powerpoint
 
Android Presentacion
Android PresentacionAndroid Presentacion
Android Presentacion
 
Library
LibraryLibrary
Library
 
Ficha cspc 2011
Ficha cspc 2011Ficha cspc 2011
Ficha cspc 2011
 
M A T E R I A L E S P A R A E L A B O R A R U N I D A D E S D I D A C T I...
M A T E R I A L E S  P A R A  E L A B O R A R  U N I D A D E S  D I D A C T I...M A T E R I A L E S  P A R A  E L A B O R A R  U N I D A D E S  D I D A C T I...
M A T E R I A L E S P A R A E L A B O R A R U N I D A D E S D I D A C T I...
 
Presentacion melendi
Presentacion melendiPresentacion melendi
Presentacion melendi
 

Similar a Clases en java

Memch clases lep ii
Memch   clases lep iiMemch   clases lep ii
Memch clases lep iidani Safres
 
El lenguaje C++ (1).ppt
El lenguaje C++ (1).pptEl lenguaje C++ (1).ppt
El lenguaje C++ (1).pptJOSECASHUUG
 
Elementos de una clase
Elementos de una claseElementos de una clase
Elementos de una claseIsaias Toledo
 
Contructores en java(grupo 8)
Contructores en java(grupo 8)Contructores en java(grupo 8)
Contructores en java(grupo 8)Manuel Ch.
 
Constructor Y Destructor
Constructor Y DestructorConstructor Y Destructor
Constructor Y DestructorTecnologico
 
secme-23192.pdf
secme-23192.pdfsecme-23192.pdf
secme-23192.pdf202100941c
 
2introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate022introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate02Krizztiina Pacheko
 
DAW - Desarrollo de clases
DAW - Desarrollo de clasesDAW - Desarrollo de clases
DAW - Desarrollo de clasesvay82
 
Proyecto en android completado
Proyecto en android completadoProyecto en android completado
Proyecto en android completadoKai Exo
 
modularidad de programación 2da parte (3) (1).pptx
modularidad de programación 2da parte (3) (1).pptxmodularidad de programación 2da parte (3) (1).pptx
modularidad de programación 2da parte (3) (1).pptxjavierccallo
 
Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02
Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02
Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02Kositha Jimhiz G
 
Mapa conceptual del contenido de la unidad 4
Mapa conceptual del contenido de la unidad 4Mapa conceptual del contenido de la unidad 4
Mapa conceptual del contenido de la unidad 4K Manuel TN
 

Similar a Clases en java (20)

Memch clases lep ii
Memch   clases lep iiMemch   clases lep ii
Memch clases lep ii
 
El lenguaje C++ (1).ppt
El lenguaje C++ (1).pptEl lenguaje C++ (1).ppt
El lenguaje C++ (1).ppt
 
El lenguaje C++.ppt
El lenguaje C++.pptEl lenguaje C++.ppt
El lenguaje C++.ppt
 
Elementos de una clase
Elementos de una claseElementos de una clase
Elementos de una clase
 
Programacion
ProgramacionProgramacion
Programacion
 
Benita ppp unidad 1
Benita ppp unidad 1Benita ppp unidad 1
Benita ppp unidad 1
 
Contructores en java(grupo 8)
Contructores en java(grupo 8)Contructores en java(grupo 8)
Contructores en java(grupo 8)
 
Clases y objetos
Clases y objetosClases y objetos
Clases y objetos
 
Clases
ClasesClases
Clases
 
Constructor Y Destructor
Constructor Y DestructorConstructor Y Destructor
Constructor Y Destructor
 
secme-23192.pdf
secme-23192.pdfsecme-23192.pdf
secme-23192.pdf
 
Datos previos
Datos previosDatos previos
Datos previos
 
2introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate022introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate02
 
INTRODUCCION LENGUAJE JAVA
INTRODUCCION LENGUAJE JAVAINTRODUCCION LENGUAJE JAVA
INTRODUCCION LENGUAJE JAVA
 
DAW - Desarrollo de clases
DAW - Desarrollo de clasesDAW - Desarrollo de clases
DAW - Desarrollo de clases
 
Proyecto en android completado
Proyecto en android completadoProyecto en android completado
Proyecto en android completado
 
modularidad de programación 2da parte (3) (1).pptx
modularidad de programación 2da parte (3) (1).pptxmodularidad de programación 2da parte (3) (1).pptx
modularidad de programación 2da parte (3) (1).pptx
 
Unidad 3 CLASES, OBJETOS E INTSANCIAS
Unidad 3 CLASES, OBJETOS E INTSANCIASUnidad 3 CLASES, OBJETOS E INTSANCIAS
Unidad 3 CLASES, OBJETOS E INTSANCIAS
 
Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02
Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02
Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02
 
Mapa conceptual del contenido de la unidad 4
Mapa conceptual del contenido de la unidad 4Mapa conceptual del contenido de la unidad 4
Mapa conceptual del contenido de la unidad 4
 

Más de martaferrari

Más de martaferrari (10)

Clases y subclases
Clases y subclasesClases y subclases
Clases y subclases
 
Eclipse para novatos java
Eclipse para novatos javaEclipse para novatos java
Eclipse para novatos java
 
Primer programa en java
Primer programa en javaPrimer programa en java
Primer programa en java
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
Tad
TadTad
Tad
 
Clase 5pdf
Clase 5pdfClase 5pdf
Clase 5pdf
 
Clase 4pdf
Clase 4pdfClase 4pdf
Clase 4pdf
 
Clase 3pdf
Clase 3pdfClase 3pdf
Clase 3pdf
 
Clase 2pdf
Clase 2pdfClase 2pdf
Clase 2pdf
 
Clase 1pdf
Clase 1pdfClase 1pdf
Clase 1pdf
 

Clases en java

  • 1. Universidad Católica de Salta Subsede Buenos Aires Lenguajes II Clases en Java Una clase es la agrupación de datos y funciones que permiten manipular esos datos. Los datos se denominan variables miembro o atributos y las funciones se denominan métodos. Un objeto es una instancia, un ejemplar, de una clase. La clase es la definición general y el objeto es la materialización concreta (en la memoria de la computadora) de una clase. Muchas de las clases pertenecen a la biblioteca Java por lo tanto ya están escritas y compiladas pero otras deberán ser creadas por el programador. Veamos entonces cómo se define una clase, por ejemplo la clase Fraccion que analizamos cuando vimos tipo abstracto de datos y cómo se usa. La definición de una clase tiene dos partes: encabezamiento y cuerpo. El encabezamiento tiene el siguiente formato: [modificador] class nombre_de_la_clase Ejemplo: public class Fraccion En el cuerpo de la clase se declaran las variables miembro y se definen los métodos. Las variables miembro de una clase pueden ser de tipos primitivos (int, long, boolean, etc.) o referencias a objetos de otra clase. Las variables miembro de tipo primitivo se inicializan en forma automática (false para booleanas, cero para las de tipo numérico, etc.), de todas formas lo más adecuado es inicializarlas en el constructor. Ejemplo: private int numerador; private int denominador =1; // valor por defecto del denominador En Java, lo que se escribe entre // y el final de la línea es considerado como comentario. Los métodos, que constituyen lo que se denomina la interfaz, pueden ser de objeto o instancia o de clase. Los métodos de objeto o instancia se aplican siempre a un objeto de la clase por medio del operador punto (.), dicho objeto es su argumento implícito o sea que el método utiliza el objeto para el cual fue llamado. Los métodos pueden además tener otros argumentos explícitos que van entre paréntesis a continuación del nombre del método. La 1º línea de la definición de un método se llama declaración o header. Ejemplo: public int fraccionDenominador ( ) modificador tipo de valor nombre lista de argumentos de retorno del método (puede ser vacía) C.C. Marta Ferrari 1
  • 2. Universidad Católica de Salta Subsede Buenos Aires Lenguajes II El código comprendido ente llaves { } es el cuerpo o body. Ejemplo: { return denominador; } Recordemos que la llamada a los métodos de instancia en Java se realiza utilizando el nombre del objeto, el operador punto y el nombre del método, por ejemplo: f1.denominador() Un constructor es un método que se llama automáticamente cada vez que se crea un objeto de la clase. La principal misión del constructor es reservar memoria e inicializar las variables miembro de la clase. Los constructores no tienen valor de retorno y su nombre es el mismo que el de la clase. Una clase puede tener varios constructores. El constructor es tan importante que si el programador no prepara ningún constructor para una clase, el compilador crea un constructor por defecto, sin argumentos, inicializando las variables de los tipos primitivos a su valor por defecto. Si se declaran constructores entonces el constructor por defecto no se puede usar. Ejemplo: public Fraccion (int a, int.) { numerador =a; denominador= b; } // fin del constructor del programador Para crear un objeto de una clase se debe llamar al constructor de la clase utilizando el operador new. Ejemplo: f1= new Fraccion ( ) ; // invoca al constructor por defecto f1 = new Fraccion (3,4); // invoca al constructor del programador Los métodos de clase o static no actúan sobre objetos. Pueden recibir objetos de su clase como argumentos explícitos pero no tienen argumento implícito. Se crean utilizando como modificador de acceso la palabra static. Ejemplo: static Fraccion fraccionSumar (Fraccion f1, Fraccion f2) Para llamarlos se utiliza el nombre de la clase en lugar del nombre de un objeto de la clase, por ejemplo: Fraccion.fraccionSumar ( f1 , f2 ) Un ejemplo típico de métodos de clase o static son los métodos matemáticos de la clase java.lang.Math (sin (), cos (), exp (), etc.), el argumento de estos métodos será de un tipo primitivo y se le pasará como argumento explícito. Para completar lo dicho de métodos de clase y métodos de instancia veamos la multiplicación de 2 fracciones implementada con ambos métodos, fraccionSumar y fraccionSumar2. C.C. Marta Ferrari 2
  • 3. Universidad Católica de Salta Subsede Buenos Aires Lenguajes II a. Método de clase  Se usa el modificador static  Reciben objetos de la clase como argumentos  Para llamarlos se usa el nombre de la clase Definición: // suma 2 fracciones que recibe como parámetros y retorna la fraccion resultado public static Fraccion fraccionSumar (Fraccion f1, Fraccion f2) { int num = f1.numerador * f2.denominador + f1.denominador * f2.numerador; int den = f1.denominador * f2.denominador; Fraccion aux = new Fraccion (num, den); return aux; } Llamado: f3 = fraccionSumar (f1, f2) b. Método de instancia  Se aplican a un objeto de la clase  Para llamarlos se usa el nombre del objeto Definición: // suma 2 fracciones, recibe una de ellas como parámetro y retorna la fraccion resultado public Fraccion fraccionSumar2 ( Fraccion f2) { int num = numerador * f2.denominador + denominador * f2.numerador; int den = denominador * f2.denominador; Fraccion aux = new Fraccion (num, den); return aux; } Numerador y denominador son valores del objeto para el cual fue llamada la función, por eso el nombre del objeto no aparece. Para referirse a los valores del objeto recibido como parámetro se usa el nombre completo, f2.numerador por ejemplo. Llamado: f3= f1.fraccionSumar2(f2) Clases Utilitarias La clase java.lang.Math mencionada anteriormente es una clase utilitaria, o sea, son clases que tienen métodos estáticos (métodos de clase) y su objetivo es agrupar funciones de la misma naturaleza. Ejemplo: int min=Math.min(a, b); double log=Math.log(a); double seno=Math.sin(a); Vemos que en ningún caso necesitamos instanciar (declarar objetos) la clase Math. Simplemente utilizamos sus métodos haciendo referencia al nombre de la clase. C.C. Marta Ferrari 3
  • 4. Universidad Católica de Salta Subsede Buenos Aires Lenguajes II Bibliotecas en Java En el lenguaje C existen "bibliotecas de funciones" que están disponibles para ser utilizadas en los programas con el único requisito de incluirlas con un # include (por ejemplo: # include stdio.h). En el entorno de desarrollo JDK (Java Development Kit) además del compilador y el intérprete se incluye una serie de bibliotecas de clases que permiten comenzar rápidamente a producir programas. Estas bibliotecas son: java.awt: proporciona facilidades para interfaces gráficas java.applet: proporciona clases útiles para incorporar contenidos dinámicos como sonidos y animaciones. java.io: contiene clases que soportan la lectura y escritura en streams, archivos y pipes. java.lang: clases que soportan las clases y tipos de datos básicos. Se importa implícitamente sin necesidad de una sentencia import java.net: soporta la programación en red java.util: clases de propósito general para el manejo de las estructuras de datos más comunes. Es común distribuir junto con las bibliotecas una documentación que llamamos API (Application Programming Interface). Así, conocer la funcionalidad provista por una biblioteca es sinónimo de conocer su API. La API del lenguaje de programación Java se encuentra publicada en esta dirección: http://java.sun.com/j2se/1.4.2/docs/api/ Para cualquier librería que vayamos a utilizar necesitaremos consultar su API ya que allí se detallan todas las clases con sus correspondientes métodos. Clase Fraccion completa public class Fraccion { private int numerador; // variables miembro private int denominador; // constructor public Fraccion (int a, int b) { numerador =a; denominador= b; } // muestra la fraccion por la pantalla public void fraccionMostrar () { C.C. Marta Ferrari 4
  • 5. Universidad Católica de Salta Subsede Buenos Aires Lenguajes II System.out.println(numerador + “/” + denominador); } // obtiene el denominador de la fraccion public int fraccionDenominador () { return denominador; } // suma 2 fracciones que recibe como parámetros y retorna la fraccion resultado public static Fraccion fraccionSumar (Fraccion f1, Fraccion f2) { int num = f1.numerador * f2.denominador + f1.denominador * f2.numerador; int den = f1.denominador * f2.denominador; Fraccion aux = new Fraccion (num, den ); return aux; } // suma 2 fracciones, recibe una de ellas como parámetro y retorna la fraccion resultado public Fraccion fraccionSumar2 ( Fraccion f2) { int num = numerador * f2.denominador + denominador * f2.numerador; int den = denominador * f2.denominador; Fraccion aux = new Fraccion (num, den); return aux; } // determina si una fraccion es decimal o no public boolean fraccionEsDecimal () { if (denominador % 10 == 0 ) return true; else return false; } } Aclaraciones Los modificadores permiten al creador de una clase determinar quien accede a los datos y métodos de la clase. El modificador private que precede a las variables miembro numerador y denominador indica que sólo se puede acceder a ellas desde métodos de la clase. El modificador public que aparece en el encabezamiento de la clase y en todos sus métodos indica que la clase y los métodos pueden ser usados por todo el mundo, o sea, que es accesible desde cualquier otra clase en cualquier otro paquete. C.C. Marta Ferrari 5