Está en la página 1de 4

ING1310 - Introducción a la Computación Segundo semestre de 2013

Clase 5 - Programación orientada a objetos en Java Clases
Una clase en Java se declara con la palabra reservada class seguida del identificador (o nombre) de la clase1 y por último un par de llaves que delimitan el cuerpo de la clase. Adicionalmente, las clases pueden tener un modificador de accesibilidad, indicando si son públicas o privadas, mediante las palabras reservadas public y private respectivamente. En este curso todas las clases serán públicas. Por ejemplo: public class Transbordador { // Contenido de la clase } Todo archivo de código en Java debe contener una clase y el nombre del archivo .java debe ser idéntico al nombre de la clase.

Atributos
Los atributos de una clase se declaran dentro del cuerpo de esta, indicando su tipo y su nombre de la misma forma en que se declara una variable cualquiera. Al igual que las clases, pueden tener un modificador de accesibilidad, indicando si son públicos o privados, mediante las palabras reservadas public y private respectivamente. En este curso todos los atributos serán privados. Por ejemplo: public class Transbordador { // Atributos private String nombre; private int cargaMaxima; // En toneladas private int cargaUtilizada; private String estado; }
1

Este nombre debe seguir las mismas reglas que tienen los nombres de las variables.

1

String o cualquier otro que nosotros queramos) del valor que el método entregará como respuesta. } } 2 También existe el modificador protected. public String obtenerNombre() { return nombre. pero no lo veremos en este curso. Para retornar un valor se utiliza la palabra reservada return seguida de la expresión (que puede ser una constante. Siguiendo con nuestro ejemplo. aplicable a atributos y métodos. Por último. La declaración de un método contiene los siguientes elementos: <accesibilidad> <tipo de retorno> <nombre> (<tipo y nombre de sus parámetros>) { } Al igual que las clases y atributos. una clase puede tener varios métodos con el mismo nombre si y solo si estos tienen una cantidad o tipo de parámetros distinta.Métodos Los métodos se declaran dentro del cuerpo de la clase. El nombre de un método debe seguir las mismas reglas que los identificadores de clases y variables. } return false. la clase Transbordador se podría ampliar de la siguiente manera: public class Transbordador { private String nombre. El tipo de retorno indica el tipo de dato (int. En el caso de los métodos de tipo void. el modificador de accesibilidad puede ser public o private2 para indicar si el método se puede utilizar solamente dentro de su misma clase (en el caso de los métodos privados) o en cualquier clase (en el caso de los públicos). 2 . En el caso de los métodos que no entregan una respuesta se debe utilizar la palabra reservada void. private String estado. termina de manera instantánea y no ejecuta el resto del código que pueda tener. Los paréntesis después del nombre del método son obligatorios y dentro de ellos va una lista con los parámetros que este requiere. return true. // En toneladas private int cargaUtilizada. Cuando un método ejecuta una sentencia de retorno. } public void iniciarDespegue() { estado = "ascendiendo". int peso) { if(cargaUtilizada + peso <= cargaMaxima) { cargaUtilizada += peso. Los parámetros de un método se consideran como variables locales que existen durante la ejecución del método. private int cargaMaxima. } public boolean agregarCarga(String nombre. una variable o cualquier combinación de ellas) que genera el valor a entregar. se puede utilizar la sentencia return. para terminar la ejecución del método anticipadamente. separados por comas. por lo que su valor se pierde al terminar de ejecutarlo. La lista de parámetros consiste en pares indicando el tipo y nombre de cada parámetro.

cargaUtilizada = 0. // En toneladas private int cargaUtilizada. return true. } // Otro contructor public Transbordador(String nombreNuevo) { nombre = nombreNuevo. // Contructor sin parámetros public Transbordador() { nombre = "Discovery". para que este sea válido. private String estado. } return false. cargaMaxima = 25. estado = "detenido". ya que siempre entrega un objeto de la clase a la que pertenece. Por ejemplo: public class Transbordador { // Atributos private String nombre. } } 3 . Se diferencia del resto de los métodos porque tiene exactamente el mismo nombre que la clase y no tiene un tipo de retorno explícito. } public void iniciarDespegue() { estado = "ascendiendo". cargaUtilizada = 0. } public boolean agregarCarga(String nombre. Su objetivo consiste en dar un valor inicial a cada uno de los atributos del objeto. private int cargaMaxima. Al igual que los otros métodos. int peso) { if(cargaUtilizada + peso <= cargaMaxima) { cargaUtilizada += peso.Constructores Un constructor es un método especial que permite generar objetos de una clase. una clase puede tener más de un constructor. siempre que estos tengan una cantidad o tipo de parámetros distintos. } // Métodos public String obtenerNombre() { return nombre. estado = "detenido". cargaMaxima = 25.

al igual que toda variable. 2). } ³Ahora sabemos que el main es un método público que no retorna ningún valor y que recibe un parámetro llamado args de tipo String[]. boolean cargado = t1. El modificador static no lo veremos. Para esto escribimos el nombre del objeto. seguido de un punto. if(cargado) { System.out. Los [] se utilizan para los arreglos y los veremos más adelante."). de la misma manera que para los objetos de la clase Scanner. el nombre del método. Por ejemplo: public static void main(String[] args)³ { Transbordador t1 = new Transbordador("Endeavour").Interacción de objetos Para utilizar objetos de alguna clase en nuestros programas debemos declararlos. los parámetros que necesita.out. llamar a un método debe terminar con un punto y coma.println("El transbordador está lleno."). Si queremos trabajar con el valor de retorno de un método. no se pudo cargar el satélite. necesitamos guardarlo en una variable. Como toda sentencia. si es necesario. String nombreCarga = "Fasat Alfa". podemos invocar sus métodos. y darles un valor inicial llamando al constructor con la palabra reservada new. los paréntesis y. } else { System.iniciarDespegue(). Teniendo un objeto creado. } t1. 4 .println("Satélite " + nombreCarga + " cargado correctamente.agregarCarga(nombreCarga.