Вы находитесь на странице: 1из 13

La programacin orientada a objetos es un paradigma de la programacin que

descompone el cdigo de una clase en unidades llamados objetos.

Un objeto en Java es una entidad existente en la memoria del ordenador que tiene
unas propiedades, llamados atributos, y unas operaciones disponibles especficas,
llamados mtodos.

Estos objetos vienen de clases.Al crear una clase desmarcamos la opcin public
static void main(String[] args)

Por convencin de nombres en Java, las clases no ejecutables deben escribirse la


primera letra en mayscula, si tiene mas de una palabra la primera letra se escribir en
maysculas

Por ejemplo, crearemos una clase empleado:

publicclassEmpleado{}

Un objeto tiene unas propiedades, en el ejemplo anterior


las propiedades podran ser el nombre, el apellido, edad y sueldo, estas
propiedades son llamados atributos en Java y se declaran igual que una
variable. No se inicializan. Veamos un ejemplo:

/*ClaseEmpleado*Contieneinformaciondecadaempleado*/

publicclassEmpleado{

//Atributos

privateStringnombre;/*Nombredelempleado*/

privateStringapellido;/*Apellidodelempleado*/

privateintedad;/*Edaddelempleado*/

privatedoublesalario;/*Salariodelempleado*/

}
Se pueden realizar unas acciones con los objetos, llamados mtodos.
Veamos un ejemplo de un mtodo que incluya un plus al sueldo si tiene mas de
40 aos:*/

privatedoublesalario;

//Metodos

/*Sumaunplusalsalariodelempleadosiel
empleadotienemasde40aos.@paramsueldoPlus */

publicbooleanplus(doublesueldoPlus){

booleanaumento=false;

if(edad>40){

salario+=sueldoPlus;

aumento=true;

returnaumento;

Solo nos falta crear un constructor, este es un mtodo especial en las clases,
que es el invocado al crear un nuevo objeto de esa clase, normalmente se
suele usar para inicializar los atributos, tambin puede ejecutar mtodos.
Si no se define un constructor Java, construye uno por defecto, que no hace
nada al crear el objeto. NOTA: si se define un constructor, el constructor por
defecto desaparece.

Para crear un constructor, escribiremos

public nombre_clase (parmetros).

Sigamos con el ejemplo:

//Constructores

/*Constructorpordefecto */

publicEmpleado(){

this.nombre="";

this.apellido="";

this.edad=0;

this.salario=0;

/*Constructorcon4parametros

*@paramnombrenombredelempleado

*@paramapellidonombredelempleado

*@paramedadedaddelempleado

*@paramsalariosalariodelempleado

*/
publicEmpleado(Stringnombre,Stringapellido,int
edad,doublesalario){

this.nombre=nombre;

this.apellido=apellido;

this.edad=edad;

this.salario=salario;

Lo mas normal es que se defina un constructor por defecto, es decir, sin


parmetros donde se inicialicen los parmetros con un valor por defecto
(como una constante, por ejemplo) y uno o varios con parmetros que nosotros
le demos.

Ahora podemos crear un objeto de la clase Empleado, tantos como


queramos.

Debemos crear una nueva clase en el mismo proyecto, que contenga un


mtodo main, lo llamaremos EmpleadoApp.

Para crear un objeto de una clase, seguiremos la siguiente sintaxis:

nombre_clase nombre_objeto=new nombre_clase (parametros_constructor);

En nuestro caso, sera:

Empleado empleado1=new Empleado (Fernando, Urea, 23, 800);

Si quisiramos invocar el mtodo por defecto, seria igual pero sin parmetros.

Una vez creado el objeto, podemos acceder a los mtodos y atributos de la


clase, si tienen un private no se podr acceder a ellos.
Se accede al mtodo creado, usando el objeto creado, un punto y mtodo o
atributo:

publicclassEmpleadoApp{

publicstaticvoidmain(String[]args){

Empleadoempleado1=newEmpleado("Fernando",
"Urea",23,800);

//Devolverafalseporqunedades<40aos

System.out.println(empleado1.plus(30));

}
La variable this se usa para diferenciar un atributo de una variable normal y
corriente dentro de una clase.

Veamos un ejemplo de un trozo de una clase:

//Constructores

/*Constructorpordefecto */

publicEmpleado(){

this.nombre="";

this.apellido="";

this.edad=0;

this.salario=0;

/*Constructorcon4parametros*/

publicEmpleado(Stringnombre,String
apellido,intedad,doublesalario){

this.nombre=nombre;

this.apellido=apellido;

this.edad=edad;

this.salario=salario;

}
Como se ve, los atributos deben diferenciarse de las variables que
pasamos como parmetros.

Tambin se usa para invocar mtodos de una propia clase dentro de esta.
Otro uso es invocar otro constructor pasandole como parmetro, los
parmetros del propio constructor.

Veamos un ejemplo, de este ultimo uso:

//Constructores

/*Constructorpordefecto*/

publicEmpleado(){

this("","",0,0);

/*Constructorcon4parametros */

publicEmpleado(Stringnombre,Stringapellido,int
edad,doublesalario){

this.nombre=nombre;

this.apellido=apellido;

this.edad=edad;

this.salario=salario;

Como vemos, es como si llamramos al constructor que tiene esos


parmetros con esos tipos de datos.
La sobrecarga de mtodos significa tener varios mtodos con el mismo
mtodo pero con distintos parmetros. Si has probado alguna de las clases
de Java, habrs visto que un mismo mtodo esta repetido pero con
distinto parmetros.

Veamos un ejemplo:

/*Sumaunplusalsalariodelempleadosielempleado
tienemasde40aos

*@paramsueldoPlus

*@returntrue:sesumaelplusalsueldo,false:
nosesumaelplusalsueldo*/

publicbooleanplus(doublesueldoPlus){

booleanaumento=false;

if(edad>40&&compruebaNombre()){

salario+=sueldoPlus;

aumento=true;

returnaumento;

}
/*Sumaunplusalsalarioaplicandoleunaretenciondel
empleadosielempleadotienemasde40aos

*@paramsueldoPlus

*@paramretencion

*@returntrue:sesumaelplusalsueldo,false:
nosesumaelplusalsueldo</li>

*/

publicbooleanplus(doublesueldoPlus,double
retencion){

booleanaumento=false;

if(edad>40&&compruebaNombre()){

salario+=sueldoPlus
(sueldoPlus*retencion);

aumento=true;

returnaumento;

Como vemos, tenemos dos mtodos iguales, pero uno con


un parmetro ms, esto es la sobrecarga de mtodos. Es muy importante
tener en cuenta, que si dos mtodos tienen el mismo tipo de dato
como parmetros y distinto tipo de dato devuelto, esto nos indicara error.
Por ejemplo:

/**

*Sumaunplusalsalariodelempleadosiel
empleadotienemasde40aos

*@paramsueldoPlus

*@returntrue:sesumaelplusalsueldo,false:
nosesumaelplusalsueldo

*/

publicbooleanplus(doublesueldoPlus){

booleanaumento=false;

if(edad>40&&compruebaNombre()){

salario+=sueldoPlus;

aumento=true;

returnaumento;

}
/*Sumaunplusalsalariodelempleadosielempleado
tienemasde40aos

*@paramsueldoPlus*/

publicvoidplus(doublesueldoPlus){

if(edad>40&&compruebaNombre()){

salario+=sueldoPlus;

Este ejemplo anterior dara error.

Con los constructores pasa exactamente igual, podemos sobrecargar


los constructores de la misma forma. Veamos un ejemplo:

/*Constructorpordefecto*/

publicEmpleado(){

this("","",0,SALARIO_DEF);

/*Constructorcon2parametros
*@paramnombrenombredelempleado

*@paramapellidonombredelempleado

*/

publicEmpleado(Stringnombre,Stringapellido){

this(nombre,apellido,0,SALARIO_DEF);

/*Constructorcon3parametros

*@paramnombrenombredelempleado

*@paramapellidonombredelempleado

*@paramedadedaddelempleado

*/

publicEmpleado(Stringnombre,Stringapellido,int
edad){

this(nombre,apellido,edad,SALARIO_DEF);

/*Constructorcon4parametros

*@paramnombrenombredelempleado

*@paramapellidonombredelempleado
*@paramedadedaddelempleado

*@paramsalariosalariodelempleado

*/

publicEmpleado(Stringnombre,Stringapellido,int
edad,doublesalario){

this.nombre=nombre;

this.apellido=apellido;

this.edad=edad;

this.salario=salario;

Вам также может понравиться