Lenguajes_2 java

20
Java II Clases, objetos….

description

Lenguajes_2 java

Transcript of Lenguajes_2 java

Page 1: Lenguajes_2 java

Java II

Clases, objetos….

Page 2: Lenguajes_2 java

Contenido

Clases– Modificadores de acceso a la clase – Atributos

Modificadores de acceso– Métodos

Modificadores de accesoTipo de retornoArgumentosConstructores

Objetos– Declaración– Inicialización– Operador punto

Page 3: Lenguajes_2 java

Clase

El elemento básico de la programación orientada a objetos en Java es una clase. Las acciones de los programas se colocan dentro del bloque de una clase. Las clases típicas tienen:

– variables de instancia (campos o atributos) y – métodos (funciones miembro)

Los métodos de instancia definen la interfaz funcional de los objetos (comportamiento de los objetos). (Qué puede hacer el objeto)Las variables de instancia (atributos) determinan el estado de un objeto. (Características del objeto). Cada clase Java deriva, directa o indirectamente, de la clase Object.

Page 4: Lenguajes_2 java

Clase

Sintaxis

Modificadores de acceso a la clase class Nombre de la clase [extendssuperclase de la que hereda][implements interfaz que implementa]

Ejemplos:

public class NuevaClase extends ClaseAnterior implements ClaseInterfaz{}

public class Cuadrado extends Figuras{}

public class VentanaWindows implements Ventana{}

El nombre debe ser un identificador válido. Por convención, se empieza el nombre de las clases con una letra mayúscula.

Page 5: Lenguajes_2 java

NombreDeLaClase {// declaración de los campos// metodosConsructores () {

// cuerpo }//metodosDeLaClase() {

// cuerpo }//metodoPrincipal(){

// cuerpo }}

Estructura de la clase

Page 6: Lenguajes_2 java

public class Circulo{private float radio; private String color;public Circulo(float r, String c){

radio = r;color=c;System.out.println("El radio del círculo es "+ radio+" y su color es "+ color);

}public float diametro(){

return 2*radio; }public double area(){

return Math.pow(radio,2)*Math.PI; }public static void main(String[] args){

Circulo c1=new Circulo(5.0f,”azul”);System.out.println("El area del circulo es " + c1.area());

} }

Page 7: Lenguajes_2 java

Modificadores de la clase

public. Significa que la clase estará disponible para el resto de las clases.abstract. Una clase abstracta se considera incompleta y no se pueden crear instancias de dicha clase (no se pueden crear objetos). Esto sucede porque la clase contiene métodos abstract que deben ser implementados por una subclase (el método está definido en la clase pero no implementado). final. Una clase final no admite subclases.

Se pueden utilizar varios modificadores para la declaración de una clase. Ninguna clase puede ser final y abstract.

Page 8: Lenguajes_2 java

Atributos o campos

Variables que se declaran dentro de la clase y fuera de un método concreto.El conjunto de todas las variables de instancia (atributos) de un objeto determinan su estado.

SintaxisModificadores_de_atributos Tipo_de_dato Nombre_de_la variable [=valor];

Ejemplosclass Punto {

public int x, y;}

public class Circulo{private float radio; public float diametro(){return 2*radio;

}}

Page 9: Lenguajes_2 java

Modificadores de atributos

Modificadores de acceso: – predeterminado. Accesibles desde las clases del paquete – private. Accesibles en la propia clase – protected. Accesibles en las subclases de la clase y en la propia

clase. – public. Accesible donde la clase sea accesible.

static. Conocidas como variables de clase. Sólo existe una copia de ese campo, independientemente del número de instancias de la clase que se creen (objetos). Un atributo static puede ser referido directamente dentro de su propia clase, pero cuando se accede a él externamente, hay que utilizar el nombre de la clase. final. El valor no puede cambiar después de ser inicializado.

Ejemplo: private static final double PI=3.14159;

Page 10: Lenguajes_2 java

Métodos de la clase

Pueden entenderse como funciones.El conjunto de todos los métodos representa el comportamiento de un objeto.Se invocan dentro de la propia clase o por otras clases que tengan acceso.La implementación de un método consta de dos partes:

– declaración y – cuerpo

La declaración indica todas las características del método:– nombre, – modificadores, – tipo de retorno y – parámetros de entrada.

El cuerpo es la implementación del método.

SintaxisModificador_del_método Tipo_de_retorno nombreDelMétodo(lista de parámetros) {cuerpo_del_método;}

Page 11: Lenguajes_2 java

Modificadores de los métodos

Acceso: – predeterminado. Accesibles desde las clases del paquete. – private. Accesibles en la propia clase en la que se declara. – protected. Accesibles en las subclases de la clase y en la propia

clase. – public. Son accesible donde la clase sea accesible.

abstract. Carece de implementación. Una subclase será la responsable de proporcionar la implementación del método. static. Un método declarado static no necesita de un objeto para ser invocado, se puede llamar directamente desde la clase que lo implementa. El método estático más común es main. También en las clases Float o Math se pueden encontrar métodos estáticos como FloattoString o Math.abs. final. No puede ser modificado por ninguna subclase.

Page 12: Lenguajes_2 java

Tipo de retorno

Es necesario que en la declaración de un método, se indique el tipo de dato que ha de devolver. Es posible devolver un tipo primitivo o una referencia (otro objeto). Si el método no devuelve ningún valor, se indicará el tipo voidcomo retorno.

Ejemplo:

public static void main(String[] args)public float getRadio()private static double pideDouble(String mensaje)

Page 13: Lenguajes_2 java

Nombre del método

Identificador válido en Java. Por convención la primera letra es minúscula y lassiguientes primeras letras de las palabras queformen el nombre son mayúsculas.

Ejemplo:getColor()getNombreCliente()setTelefonoClientePromotora()

Page 14: Lenguajes_2 java

Parámetros de entrada

Se utilizan para pasar información al método y son opcionales. Pueden ser tipos de datos primitivos u objetos. Cada parámetro tiene asociado un nombre y un tipo de dato. En la invocación del método se deben incluir los parámetros en el mismo orden que están declarados.Ejemplo:

public int vehiculo(String p, String m, float v)

Page 15: Lenguajes_2 java

Métodos constructores

Tipo específico de métodos tienen el mismo nombre que la clase. Estos métodos controlan cómo se crea e inicializa un objeto. Gracias a la sobrecarga se pueden definir diversos constructores (Mismo nombre distintos parámetros).Si no hay constructor -> constructor por defecto que inicializa cada atributo usando los valores por defecto (los tipos primitivos se inicializan a 0 y los tipos referencia se inicializan a null).El nombre del constructor igual al de la clase. Puede recibir cualquier argumento No devuelve ningún valor (ni siquiera se declara void).

Page 16: Lenguajes_2 java

Otras características de los métodos

Sobrecarga varios métodos pueden tener el mismo nombre y declararse en el mismo ámbito mientras sus declaraciones (los parámetros de entrada del método) sean diferentes.El compilador puede deducir cuál es el método que se pretende aplicar en base a la lista de parámetros actuales.

Ejemplo: float suma(float a, float b)int suma(int a, int b, int c)

Anulación. (Overriding). Una subclase puede sobreescribir el método heredado de una superclase

Page 17: Lenguajes_2 java

Objetos

Instancia de una clase.Es una referencia. Una referencia es una variable que guarda la dirección de memoria en la que se almacena un objeto. Valor por omisión null, no referencia a ningún objeto. Cada objeto tiene un estado y un funcionamiento.

– Estado-> variables de instancia (atributos), – Funcionamiento -> determinado por sus métodos. – Identidad->Object ID.

El funcionamiento del objeto se activa invocando a sus métodos.Los métodos pueden cambiar el estado del objeto.Los objetos cumplen con los contratos de la clase. Las operaciones permitidas para los tipos referencia son las asignaciones (=) y las comparaciones (==, !=).

Page 18: Lenguajes_2 java

Declaración

En la declaración de un objeto se asigna un nombre para referenciar al objeto, pero no se crea el objeto propiamente dicho.

Sintaxis:NombreDeClase nombredelavariable;

Ejemplos:

Circulo c2;Circulo c1, c3;

Page 19: Lenguajes_2 java

null y new

null. Indica que no se ha asignado ningún espacio para el objeto. new. Construye un nuevo objeto.

Ejemplo: Circulo c1=new Circulo();Figura fig;fig=new Figura();

Se pueden crear múltiples referencias (variables) al mismo objeto.

Ejemplo:Circulo c1=new Circulo();Circulo c2=c1;

Page 20: Lenguajes_2 java

Operador punto (.)

Se utiliza para acceder a las variables de instancia (atributos) y los métodos contenidos en un objeto.

Sintaxis: nombre_del_objeto.atributo;

nombre_a_objeto es una referencia a un objeto y atributo es el nombre del atributo contenido en el objeto al que se desea acceder.

Ejemplo:

c1.radio=56,4;System.out.println("El radio de c1 es " + c1.radio);