Semana 10
Las clases,los objetos, los métodos
Constructores.
Cada clase que usted declare puede proporcionar de manera opcional un constructor con parámetros que pueden utilizarse para inicializar un objeto de una clase al momento de crear ese objeto. Java requiere una llamada al constructor para cada objeto que se crea, por lo que éste es el punto ideal para inicializar las variables de instancia de un objeto.
Declaración de un constructor de Cuenta para la inicialización personalizada de objetos.
Cuando usted declara una clase, puede proporcionar su propio constructor para especificar una inicialización personalizada para los objetos de su clase.Por ejemplo:
Cuenta cuenta1 = new Cuenta(“Jane Green”);
En este caso, el argumento String “Jane Green” se pasa al constructor del objeto Cuenta y se utiliza para inicializar la variable de instancia nombre.
Ejemplo
2)
Un constructor debe tener el mismo nombre que la clase. La lista de parámetros del constructor especifica que éste requiere una o más datos para realizar su tarea.
La palabra clave new solicita memoria del sistema para almacenar el objeto Cuenta y luego llama de manera implícita al constructor de la clase para inicializar el objeto. La llamada se indica mediante los paréntesis después del nombre de la clase, los cuales contienen el argumento “Jane Green” que se usa para inicializar el nombre del nuevo objeto. La expresión de creación de la instancia de la clase
Los constructores no pueden devolver valores.
Una importante diferencia entre los constructores y los métodos es quelos constructores no pueden devolver valores, por lo cual no pueden especificar un tipo de valorde retorno (ni siquiera void). Por lo general, los constructores se declaran como public.
En cualquier clase que no declare de manera explícita a un constructor, el compilador proporciona un constructor predeterminado (que nunca tiene parámetros). Cuando una clase sólo tiene el constructor predeterminado, sus variables de instancia se inicializan con sus valores predeterminados.
No hay constructor predeterminado en una clase que declara a un constructor.
Si usted declara un constructor para una clase, el compilador no creará un constructor predeterminado para esa clase. En ese caso no podrá crear un objeto Cuenta con la expresión de creación de instancia de clase new Cuenta().
Java cuenta con dos tipos primitivos para almacenar números de punto flotante en la memoria: float y double. Las variables de tipo float representan números de punto flotante de precisión simple y pueden representar hasta siete dígitos significativos. Las variables de tipo double representan números de punto flotante de precisión doble. Éstas requieren el doble de memoria que las variables float y pueden contener hasta 15 dígitos significativos; aproximadamente el doble de precisión de las variables float.
Introducción de los métodos static.
El método showMessageDialog de la clase JOptionPane es lo que llamamos un método static. A menudo, dichos métodos definen las tareas que se utilizan con frecuencia. Por ejemplo, muchos programas muestran cuadros de diálogo, y el código para hacer esto es el mismo siempre. En vez de “reinventar la rueda” y crear código para realizar esta tarea, los diseñadores de la clase JOptionPane declararon un método static que realiza esta tarea por usted. La llamada a un método static se realiza mediante el uso del nombre de su clase, seguido de un punto (.) y del nombre del método, como en (NombreClase.nombreMétodo(argumentos)
Ejemplos
1)
Principal
package ejpotenciaretornome;
import java.util.Scanner;
/**
*
* @author angel
*/
public class EjPotenciaRetornoMe {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// principal
double n;
Scanner entrada=new Scanner(System .in);
System.out.println("Ingrese numero ");
n=entrada.nextDouble();
//Crear objeto
Calcular opera=new Calcular ();
double cc=opera.calcular_cuadrado(n);
double ccu=opera.calcular_cubo(n);
opera.imprimir(cc, ccu);
}
}
Clase
package ejpotenciaretornome;
/**
*
* @author angel
*/
public class Calcular {
public double calcular_cuadrado(double nu){
double ca=Math.pow (nu, 2);
return ca;
}
public double calcular_cubo(double nu){
double cu=Math.pow(nu, 3);
return cu;
}
public void imprimir (double ca, double cu){
System.out.println("Cuadrado "+ca);
System.out.println("Cubo "+cu);
}
}
2)
Principal
package ejmetodoscubo;
import java.util.Scanner;
/**
*
* @author angel
*/
public class EjMetodosCubo {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// Principal
Scanner entrada=new Scanner (System.in);
double l;
System.out.println("Ingrese lado ");
l=entrada.nextDouble();
EjCubo calcula=new EjCubo ();
double ac=calcula.calcular_area(l);
double vc=calcula.calcular_volumen(l);
calcula.imprimir(ac, vc);
}
}
Clase
package ejmetodoscubo;
/**
*
* @author angel
*/
public class EjCubo {
public double calcular_area(double l){
double A=Math.pow(l, 2)*6;
return A;
}
public double calcular_volumen(double l){
double V=Math.pow(l, 3);
return V;
}
public void imprimir(double A, double V){
System.out.println("Area "+A);
System.out.println("Volumen "+V);
}
}
3)
Principal
package ejfigurasmetodos;
import java.util.Scanner;
/**
*
* @author angel
*/
public class EjFigurasMetodos {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// Principal
Scanner entrada=new Scanner (System.in);
double B, b, h;
System.out.println("Ingrese base mayor ");
B=entrada.nextDouble();
System.out.println("Ingrese base menor ");
b=entrada.nextDouble();
System.out.println("Ingrese altura ");
h=entrada.nextDouble();
//Romboide
Calcular op=new Calcular(B,b);
double AR=op.opera();
op.imprima(AR);
//Trapecio
Calcular op1=new Calcular(B,b,h);
double AT=op1.operar();
op1.imprima(AT);
}
}
Clase
package ejfigurasmetodos;
/**
*
* @author angel
*/
public class Calcular {
double B,b,h;
public Calcular (double B, double b, double h){
//Trapecio
this.B = B;
this.b = b;
this.h = h;
}
public Calcular(double B, double h){
//Romboide
this.B = B;
this.h = h;
}
public double opera(){
//Romboide
double A=B*h;
return A;
}
public double operar(){
//Trapecio
double A=(B*b)/2*h;
return A;
}
public void imprima(double A){
System.out.println("Area "+A);
}
}
Video de Referencia
Comentarios
Publicar un comentario