Atributos: Vienen siendo las variables que definen a la clase, ejemplo int edad, String nombre; o estamos definiendo los datos que estarán en la clase.
Métodos: estaremos definiendo el comportamiento que tendrá la clase.
Método Constructor: debe tener el mismo nombre de la clase, este método es el que se invoca cuando se crean las instancias de la clase ejemplo, desde el método "main" cuando instanciamos la clase o creamos un objeto nombreDeLaClase instancia = new nombreDeLaClase(aqui van los parametros si es que tiene el constructor); se está inicializando el constructor de acuerdo a lo que requieras en ese momento, si tienes en el constructor dos variables y le asignan dos valores por parámetros, el valor o los datos van directo a estas variables, para luego usarlas como quieras en los otros métodos, que generes.
Método Setter: Lo que hace es asignar el valor al atributo (variable) correspondiente. este se le pasa por parámetro el tipo de dato que también tenga el atributo (variable) al que le vamos a pasar el valor.
si el atributo(variable) es tipo String, por parámetro se le pasa un String, ya que si le pasas un "int" da error.
ejemplo:
String nombre;
public void setNombre (String nombreDeLaVariable){
nombre = nombreDeLaVariable;
}
Ok tratare de explicar este método está compuesto por la palabra "public"(es público y se puede acceder a él desde todas las clases) "void" significa que no retorna nada o no devuelve nada, "setNombre" es el nombre del método para identificarlo cuando desde otra clase o en la misma, necesitemos usarlo para asignarle un valor a la variable "nombre", lo que está dentro de los paréntesis(String nombreDeLaVariable), son los parámetros que necesitamos pasar al atributo (variable) y debe ser del mismo tipo en este caso "String". y lo que hace el método es asignarle a el atributo (variable) el valor que se pasa por parámetros en este caso un "String o cadena de caracteres". nombre = nombreDeLaVariable;
Método Getter: El método lo que hará es devolver el valor del atributo correspondiente.
public String getNombre (){
return nombre;
}
Ok ya sabemos el método es público, retorna o devuelve un "String" en este caso(nombre), el nombre del método es "getNombre" esto para identificarlo cuando lo necesitemos, y si no le colocas la palabra "return" seguido del atributo o en este caso una cadena de caracteres te marca un error. son pequeños detalles pero hay que practicarlos para que queden en nuestra memoria.
Ok entonces podemos decir que con el "Método Setter", le pasamos un valor a una variable (en este caso), y con el "Método Getter", accedemos a ese valor de esa variable (en este caso).
Pero todo esto para que?
Porque tanto enredo? no es más fácil asignarle un valor directamente a la variable?
Bueno recuerden que una de las características de la Programación Orientada a Objetos POO, es el encapsulamiento de la información, la cual veremos a continuación.
Alcance o tipo de Acceso:
Privado o "private": estos solo pueden ser accedidos desde los métodos de la misma clase.
ejemplo:
private String nombre; // pertenece a una clase llamada "persona(nombreDeLaClase)"
Y tratamos de llamarla desde el método "main", no podremos acceder directamente a ella cuando instanciamos a la clase es decir:
public class Ejemplo {
public static void main(String[] args){
instancia.nombre = "Jimmy" // NO PODEMOS ACCEDER A nombre de esta forma.
instancia.setNombre("Jimmy");//tendremos que hacerlo de esta forma.
System.out.println(instancia.getNombre);
//Imprime Jimmy, y de esta forma se protegen los datos, el acceso y la modificación de los //parámetros.
}
}
entonces aquí es cuando se vuelven muy útil los métodos Getter y Setter ya que si necesitamos acceder a esos Atributos(variables) es por medio de G&S debido a que declaramos los métodos "públicos".
Público o "public": si un atributo o método, tiene un acceso de tipo público, es accedido desde cualquier clase.
ejemplo:
public class NombreDeLaClase{
public NombreDeLaClase(){//METODO CONSTRUCTOR
**código**
}
public String getNombre(){
return nombre;
}
}
Protegido o "protected": este acceso es muy importante cuando se utiliza relaciones de "Herencia" entre las clases.