Entradas populares

viernes, 5 de junio de 2015

Clases y objetos


La programación orientada a objetos se basa en la programación de clases; a diferencia de la programación estructurada, que está centrada en las funciones.
Una clase es un molde del que luego se pueden crear múltiples objetos, con similares características.
Una clase es una plantilla (molde), que define atributos (variables) y métodos (funciones)
La clase define los atributos y métodos comunes a los objetos de ese tipo, pero luego, cada objeto tendrá sus propios valores y compartirán las mismas funciones.
Debemos crear una clase antes de poder crear objetos (instancias) de esa clase. Al crear un objeto de una clase, se dice que se crea una instancia de la clase o un objeto propiamente dicho.
La estructura de una clase es:


class [nombre de la clase] {
  [atributos o variables de la clase]
  [métodos o funciones de la clase]
  [main]

Una clase es una plantilla de la que se crean los objetos individuales.
A continuación un ejemplo de una clase en Java:
public class Carro{
   String marca;
   int kilometraje;
   String color;

   void encender(){
   }

   void acelerar(){
   }

   void apagar(){
   }
}

Una clase puede contener cualquiera de los siguientes tipos de variables:
  • Variables locales: Las variables definidas dentro de los métodos, los constructores o los bloques se denominan variables locales. Se declara la variable y se inicializa en el método y la variable será destruida cuando el método se ha completado.
  • Variables de instancia: Las variables de instancia son variables dentro de una clase, pero fuera de cualquier método. Estas variables se crean instancias cuando se carga la clase. Las variables de instancia se puede acceder desde el interior de cualquier método, constructor o bloques de esa clase en particular.
  • Variables de clase: Las variables de clase son variables declaradas dentro una clase y fuera de cualquier método. En el ejemplo anterior marcakilometraje y color son variables de clase Carro.
Una clase en Java puede tener cualquier número de métodos para acceder o modificar el comportamiento de dicha clase. En el ejemplo anterior encenderacelerar y apagar son métodos de clase Carro.
Ejemplo:
Confeccionar una clase que permita carga el nombre y la edad de una persona. Mostrar los datos cargados. Imprimir un mensaje si es mayor de edad (edad>=18)

Programa:

import java.util.Scanner;
public class Persona {
    private Scanner teclado;
    private String nombre;
    private int edad;
   
    public void inicializar() {
        teclado=new Scanner(System.in);
        System.out.print("Ingrese nombre:");
        nombre=teclado.next();
        System.out.print("Ingrese edad:");
        edad=teclado.nextInt();
    }
   
    public void imprimir() {
        System.out.println("Nombre:"+nombre);
        System.out.println("Edad:"+edad);
    }
   
    public void esMayorEdad() {
        if (edad>=18) {
            System.out.print(nombre+" es mayor de edad.");
        } else {
            System.out.print(nombre+" no es mayor de edad.");
        }
    }
   
    public static void main(String[] ar) {
        Persona persona1;
        persona1=new Persona();
        persona1.inicializar();
        persona1.imprimir();
        persona1.esMayorEdad();
    }
}

El nombre de la clase debe hacer referencia al concepto (en este caso la hemos llamado Persona):

public class Persona {

Los atributos los definimos dentro de la clase pero fuera de la main:

    private Scanner teclado;
    private String nombre;
    private int edad;

Más adelante se dará a conocer que un atributo es normalmente definido con la cláusula private (con esto no permitimos el acceso al atributo desde otras clases)
A los atributos se tiene acceso desde cualquier función o método de la clase (salvo la main)
Luego de definir los atributos de la clase se debe declarar los métodos o funciones de la clase. La sintaxis es parecida a la main (sin la cláusula static):

    public void inicializar() {
        teclado=new Scanner(System.in);
        System.out.print("Ingrese nombre:");
        nombre=teclado.next();
        System.out.print("Ingrese edad:");
        edad=teclado.nextInt();
    }

En el método inicializar (que será el primero que se debe llamar desde la main) se debe crear el objeto de la clase Scanner y cargar por teclado los atributos nombre y edad. Como se puede ver el método inicializar puede hacer acceso a los tres atributos de la clase Persona.
El segundo método tiene por objetivo imprimir el contenido de los atributos nombre y edad (los datos de los atributos se cargaron al ejecutarse previamente el método inicializar:

    public void imprimir() {
        System.out.println("Nombre:"+nombre);
        System.out.println("Edad:"+edad);
    }

El tercer método tiene por objetivo mostrar un mensaje si la persona es mayor o no de edad:

    public void esMayorEdad() {
        if (edad>=18) {
            System.out.print(nombre+" es mayor de edad.");
        } else {
            System.out.print(nombre+" no es mayor de edad.");
        }
    }

Por último en la main se declara un objeto de la clase Persona y se le llama a los métodos en un orden adecuado:

    public static void main(String[] ar) {
        Persona persona1;
        persona1=new Persona();
        persona1.inicializar();
        persona1.imprimir();
        persona1.esMayorEdad();
    }


Persona persona1; //Declaración del objeto
persona1=new Persona(); //Creación del objeto
persona1.inicializar(); //Llamada de un método

No hay comentarios:

Publicar un comentario