Vous êtes sur la page 1sur 34

Modificadores de Acceso, Sobrecarga de mtodos.

Curso: Topicos I. Docente: Mendoza Corpus Carlos.


CLASE 04

Modificadores de Acceso

Los modificadores de acceso se utilizan para definir la visibilidad de los atributos y mtodos de una clase y de la propia clase. En java existen cuatro modificadores de acceso: private, friendly, protected, public.

private: Cuando un atributo o mtodo es definido como private, su uso esta restringido al interior de la clase, lo que significa que solamente puede ser utilizado en el interior de la misma clase. Este modificador puede ser aplicado a mtodos y atributos, pero no clases.
2

Modificadores de Acceso

(ninguno): La no utilizacin de modificador de acceso proporciona al elemento lo que se conoce como el acceso por defecto (friendly). Si un elemento (clase, mtodo o atributo) tiene acceso por defecto, nicamente las clases de su mismo paquete tendrn acceso al mismo. protected: Un mtodo o atributo definido como protected en una clase puede ser utilizado por cualquier otra clase de su mismo paquete y adems por cualquier subclase de ella, independientemente del paquete en que esta se encuentre. Una clase no puede ser protected, slo sus miembros.

Modificadores de Acceso

public: El modificador public ofrece el mximo nivel de visibilidad . Un elemento (clase, mtodo o atributo) public ser visible desde cualquier clase, independientemente del paquete en que se encuentre.

Valores por Defecto de los Atributos


public class Ejemplo{

private int a;
private char b;

private float c;
private double d; private String e; void imprimir() {

System.out.println("El entero a : "+a);


System.out.println("El caracter b : "+b);

System.out.println("El float c: "+c);

Valores por Defecto de los Atributos


System.out.println("El double d: "+d); System.out.println("El String e: "+e); } public static void main(String args[]) { Ejemplo x= new Ejemplo(); x.imprimir(); }

Referencia this

Cada objeto tiene acceso a una referencia a si mismo, llamada referencia this. La referencia this se utiliza en el interior de una clase y se usa explcitamente para referirse tanto a los atributos como a los mtodos de un objeto. Sin embargo, su uso es redundante ya que los mtodos y atributos propios pueden ser llamados directamente por su nombre sin necesidad de utilizar this. Tan solo ser necesario utilizar esta palabra reservada para invocar a un miembro del propio objeto cuando nos encontremos una variable local y un atributo con el mismo nombre.
7

Referencia this Ejemplo1


public class Numero { private int x; public Numero(int x) { this.x = x; } public void setX(int x) { this.x = x; } public String toString() { Return x = +this.x; } }

Sobrecarga de Mtodos

Otra de las ventajas que nos ofrece la POO orientada a objetos es poder tener en una misma clase varios mtodos con el mismo nombre, a esto se le llama sobrecarga de mtodos. La gran ventaja de la sobrecarga de mtodos es que, si tenemos varios que van a realizar la misma operacin (por ejemplo, convertir un tipo bsico en cadena), no necesitamos asignarle un nombre diferente a cada uno, sino que podemos llamarlos igual a todos ellos.

Sobrecarga de Mtodos

Para que un mtodo pueda sobrecargarse es imprescindible que se d la siguiente condicin: cada versin del mtodo debe distinguirse de las otras en el nmero o tipo de parmetros. El tipo de devolucin puede ser o no el mismo, lo que es indispensable es que se de la condicin anterior. Los siguientes son ejemplos vlidos de sobrecarga:

public void calculo(int k){..} public void calculo(String s) {..} public long calculo(int k, boolean b) {..}

10

Sobrecarga de Mtodos

En cambio, los siguientes mtodos incumplen alguna de las condiciones de la sobrecarga por tanto no podrn estar los tres en la misma clase. public void calculo(int k){..} public int calculo(int k){..} public void calculo(int n){..}

11

Sobrecarga de Mtodos Ejemplo2


public class Texto { public void muestra() {

System.out.println("Texto predeterminado");
} public void muestra(String s) { System.out.println("Texto enviado: + s); }

12

Sobrecarga de Mtodos Ejemplo2


public class AplicacionTexto { public static void main(String []args) {

Texto ej = new Texto();


ej.muestra(); } }

Aparecer en la pantalla la frase: Texto predeterminado Pues se ha ejecutado la versin parmetros del mtodo muestra
13

sin

Sobrecarga de Mtodos Ejemplo3


public class Matematicas { public double suma( public double suma( double[] a) { double total =0; for(int i=0;i<a.length;i++) { total+=a[i]; } return total; } }

double x, double y) {
return x + y; } public double suma( double x, double y,

double z) {
return x + y + z;

14

Sobrecarga de Mtodos Ejemplo3


public class AplicacionSobrecarga { public static void main(String args[]) { double resultado, x[]={2,9,5,8};

Matematicas M = new Matematicas();


resultado = M.suma(5,7)

System.out.println("Resultado de la suma ="+resultado);


resultado = M.suma(5,7,9)

System.out.println("Resultado de la suma ="+resultado);


resultado=M.suma(x); System.out.println("Resultado de la suma ="+resultado); } }
15

Atributos Estticos
El valor de un atributo esttico es el mismo para todas las instancias de la clase. Esto es lo que la variable nos da: Un valor compartido por todas las instancias de una clase en lugar de un valor por instancia. Todas las variables estticas en una clase son inicializadas antes que un objeto de esa clase pueda ser creado

16

Atributos Estticos Ejemplo4


public class Empleado{ private String nombres; private String apellidos;

private static int contador=0; public Empleado(String nom, String ape) {


nombres=nom;

apellidos=ape;
contador++; }

17

Atributos Estticos Ejemplo4


public void setNombres(String nom) { nombres=nom; }

public void setApellidos(String ape) {


apellidos=ape;

}
public static void setContador(int cont) {

contador=cont;
}

18

Atributos Estticos Ejemplo4


public String getNombres() {

return nombres;
}

public String getApellidos() {


return apellidos;

}
public static int getContador() {

return contador;
} public String toString() { return apellidos+", "+nombres; }

}
19

Atributos Estticos Ejemplo4


public class pruebaEmpleadoVariableEstatica{ public static void main(String args[]) throws IOException {

System.out.println(Objetos creados: +Empleado.getContador());


Empleado e1= new Empleado("Torres","Fidel"); System.out.println(e1); System.out.println(Objetos creados: "+e1.getContador()); Empleado e2= new Empleado("Villanueva","Nelsa"); System.out.println(e2); System.out.println(Objetos creados : Empleado.getContador());

}
}

20

Atributos Estticos

En el programa anterior usamos un atributo private static y un mtodo public static. El atributo contador se inicializa en cero por omisin. Esta variable va contando el numero de objetos de la clase Empleado que se van creando, esta variable se va incrementando en el constructor cada vez que se crea un objeto. Para saber cuantos objetos hemos creados llamamos al mtodo esttico getContador() que devuelve el valor de la variable contador.

21

Atributos Estticos

Un mtodo declarado static no puede acceder a miembros de clase no estticos. Un mtodo static no tiene referencia this porque las variables de clase static y los mtodos static existen independientemente de que existan o no objetos de clase. En la primera lnea del programa llamamos Empleado.getContador() pues como es un mtodo esttico no es necesario usar un objeto de la clase para llamar al mtodo, slo se usa el nombre de la clase y luego el mtodo getContador().

22

Inicializar un atributo esttico


En el momento de declararla public class Ejemplo { public static final int r=12; }

23

Inicializar un atributo esttico


En un inicializador esttico public class Ejemplo2 { public static final double BAR_H; static { BAR_H = (double) Math.random(); } }

24

Inicializar un atributo esttico


Un inicializador esttico es un bloque de cdigo que corre cuando una clase es cargada antes que cualquier otro cdigo que use la clase. Es un buen lugar para inicializar variables estticas finales.

25

Mtodos Estticos

Los mtodos estticos que se encuentran en una clase no necesitan una instancia de esa clase para poder utilizarlos, solo la clase. La palabra static permite a un mtodo correr sin necesidad de tener una instancia de una clase. Para llamar a un mtodo esttico se usa el nombre de la clase y luego el nombre del mtodo. Ejemplo: En la clase Math de Java todos sus mtodos son estticos. int x = Math.round(42.2); int r = Math.sqrt(18);
26

Mtodos Estticos

Los mtodos estticos no pueden usar variables que no son estticas. Los mtodos estticos no pueden llamar a mtodos que no son estticos.

27

Mtodos Estticos
public class Aritmetica { public static boolean esPrimo(int n) { int d=1; do{

d=d+1;
}while(n%d!=0 && d*d<=n);

if(d*d>n) return true;


else return false;

28

Mtodos Estticos
public static int factorial(int n) { int f=1,i; for(i=1;i<=n;i++) f=f*i; return f;

29

Mtodos Estticos
public static int mcd(int a, int b) { int d=2,p=1; while(d<=a && d<=b) { if(a%d==0 && b%d==0) {

p=p*d;
a=a/d;

b=b/d;
} else

d++;
return p; }

30

Mtodos Estticos
public static void reporteDivisores(int n) { int d; System.out.println("Los divisores del numero son :"); for(d=1;d<=n;d++) if(n%d==0)

System.out.print(d+" ");
System.out.println();

31

Mtodos Estticos
public static void reporteFactoresPrimos(int n) { int d=2;

while(n>1) {
if(n % d ==0) { System.out.print(d+" "); n=n/d; } else

d=d+1;
}

}
}

32

Mtodos Estticos
public class PruebaAritmetica{

public static void main(String args[]) throws IOException {


BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

int n;
do{

System.out.print("Ingrese numero :");


n=Integer.parseInt(br.readLine()); }while(n<0); System.out.println("el Factorial es : + Aritmetica.factorial(n)); if(Aritmetica.esPrimo(n)) System.out.println("El numero es primo"); else System.out.println("El numero no es primo"); }

}
33

Ejercicio.

Crear una Clase llamada CuentaDeAhorros. Use un atributo static llamado tasaInteresAnual para almacenar la tasa de Inters anual para todas las cuentas. Cada Objeto de la clase debe contener un atributo llamado saldoAhorros, que indique la cantidad que el ahorrador tiene actualmente en Depsito. Proporcione el mtodo calcularInteresMensual para calcular el Inters Mensual, multiplicando el saldoAhorros por la tasaInteresAnual dividida entre 12; este inters debe sumarse al saldoAhorros. Proporcione un mtodo static llamado modificarTasaInteres para establecer la tasaInteresAnual en un nuevo valor. Escriba un programa para probar la clase CuentaDeAhorros. Cree dos instancias de la clase CuentaDeAhorros, ahorrador1 y ahorrador2, con saldos de 2000 y 3000 respectivamente. Establezca la tasaInteresAnual en 4%, despus calcule el inters mensual e imprima los nuevos saldos para ambos ahorradores. Luego establezca la tasaInteresAnual en 5%, calcule el inters del siguiente mes e imprima los nuevos saldos para ambos ahorradores.
34

Vous aimerez peut-être aussi