Declaración de una clase
![]() |
Metodo principal |
Ambito de una clase.
El ámbito de la clase se puede determinar por medio de los modificadores siguiente:
public: -La clase es pública y por lo tanto accesible para todo el mundo. Sólo podemos tener una clase public por unidad de compilación, aunque es posible no tener ninguna.
Ninguno:- La clase es “amistosa”. Será accesible para las demás clases del package. Sin embargo mientras todas las clases con las que estemos trabajando estén en el mismo directorio pertenecerán al mismo package y por ello serán como si fuesen públicas. Como nunca trabajaremos en varios directorios asumiremos que la ausencia de modificador es equivalente a que la clase sea pública.
final: Indicará que esta clase no puede “tener hijo”, no se puede derivar ninguna clase de ella.
abstract: Se trata de una clase de la cual no se puede instanciar ningún objeto.
Miembros de una clase
Los miembros de la clase se denominas a los atributos y métodos:
a).- Los atributos:- definen el estado de un determinado objeto y constituyen la estructura interna de una clase.
Declaración de atributos.
Sintaxis:
<modificador> <tipo><identificador>[=<valor>];
<modificador>:= public |private | protected |static.
<tipo>:= byte|short|int|long|char|float|double|boolean|String |<class>.
<identificador>: = Es el nombre de la variable o constante.
<valor>:= Es la información que se va asignar al identificador.
Ejemplo de atributos:
class Foo
{
public int x;
private float y=10000.0f;
private String name=“Fred Flintstone”;
}
b).- Los Métodos: - Son las operaciones que definen el comportamiento de los objetos pertenecientes a la clase.
Declaración de métodos.
Sintaxis:
<modificador> <tipo_resultado> nombreMetodo( [ Lista_parametros ])
{
declaración de variables locales;
sentencias;
[ return [( ] expresion [ ) ];]
}
Ejemplo de métodos:
class thing
{
private int x; // atributo
public void setX( int x) // metodo
{
x=15;
}
}
Especificadores de acceso
Para controlar el acceso Java provee las palabras clave private ( privado ), protected ( protegido ) y public ( publico), aunque también es posible omitirlas ( acceso predeterminado ).
Acceso predeterminado.
Un miembro sin modificador indicada que el control puede ser accedido por cualquier clase perteneciente al mismo paquete. Ninguna otra clase, o subclase, fuera de este paquete puede tener acceso a estos miembros.
Acceso público.
Un miembro declarado public ( publico ) está accesible para cualquier otra clase o subclase que necesite utilizarlo. La interfaz pública de una clase, o simplemente interfaz, está formada por todos los miembros públicos de la misma.
Acceso privado.
Un miembro declarado private ( privado) es accesible solamente por los métodos de su propia clase. Esto significa que no puede ser accedido por los métodos de cualquier otra clase, incluidas las subclases.
Acceso protegido.
Un miembro declarado protected ( protegido ) se comporta exactamente igual que un privado para los métodos de cualquier otra clase, excepto para los métodos de las clases del mismo paquete o de sus subclases con independencia del paquete al que pertenezcan, para las que se comporta como un miembro público.
Creación de Objetos
Creando variables de referencia a objetos( instancia).
1.- Crear una variable que es una referencia a un objeto.
2.- Hay tres pasos:
a).- Paso # 1 : Declarar una referencia a un objeto.
Sintaxis : nombreClase nombre_objeto;
Ejemplo: Alumno miAlumno ;
El tipo de la variable es referencia_a_nombre_clase( referencia copiadora).
b).- Paso # 2: Inicialización.
Sintaxis: nombre_objeto= new nombreClase( );
Ejemplo: miAlumno= new Alumno( );
Declaración e inicialización juntas:
Sintaxis: nombreClase nombre_objeto=new nombreClase( );
Ejemplo: Alumno miAlumno=new Alumno( );
c).- Paso # 3: Asignar valores.
- Aún no has asignado valores a las variables del objeto.
- Variables son inicializadas con valores por defecto.
- Para asignar valores:
• Declara e inicializar las variables de objeto.
Especifica la referencia al objeto cuando asignes el valor.
Acceso a los miembros de una clase.
• Se utiliza la notación de punto.
Sintaxis: < Objeto >.<Miembro>
• Se utiliza para atributos como para métodos.
• Ejemplo:
Circulo. radio; // atributo
Circulo. Area( ); // Método
Referencia this.
- Almacenar miembros para cada instancia de objeto pueden incrementar grandemente los requerimientos.
- La referencia this hace innecesario almacenar una copia separada de cada objeto.
- this es incluido implícitamente; aunque puede especificarse explícitamente también.
Sintaxis.
this.atributo;
this.metodo([argumentos]);
Aplicando el this en métodos
Class ejemplo{ void metodo1( ) { metodo2 ( ); } void metodo2( ) { // codigo } } this indicado implícitamente | Class ejemplo2{ void metodo1( ) { this.metodo2 ( ); } void metodo2( ) { // codigo } } this indicado explícitamente |
Aplicando el this con atributos en métodos.
Class imprimir{
private String s=“ “;
public void asignar(String s) {
this.s=s;
}
public void ejecutar ( ) {
System.out.println (s);
}
public static void main (String args[ ] ) {
imprimir a=new impimir ( );
a.asignar(“hola”);
a.ejecutar( );
imprimir bb= new imprimir();
bb.asignar(“NOMBRE”);
bb.ejecutar();
}
}
Constructores.
- Métodos ejecutados automáticamente al crear un objeto de una clase (“new”).
- Se usan para llevar a cabo labores de inicialización.
- Simplifican la sintaxis y apoyan el encapsulamiento de los datos.
- Los métodos constructores de una clase tienen que tener el mismo nombre que la clase.
Declaración de constructores.
Sintaxis:
[public] <nombre_clase> (<lista_parametros>) {
Sentencias;
}
Ejemplo de constructores.
class CuentaBancaria { long numero; Cliente titular; long saldo; public CuentaBancaria(long num, Cliente clt, long s) { numero = num; titular = clt; saldo = s; } } | class Cliente { String nombre; long dni; Cliente (String str, long num) { nombre = str; dni= num; } } |
Ejemplo public class Dog { private int weight; public Dog() { // Constructor 1 weight = 42; } public Dog(int kilos) { // Constructor 2 weight = kilos; } public int getWeight() { return weigth; } } | Uso de constructores Dog oneDog = new Dog(); oneDog.getWeight(); // entrega 42 Dog anotherDog = new Dog(80); oneDog.getWeight(); // entrega 80 |
Ejemplo de objetos.
public class Persona{
String nombre;
int edad;
String sexo;
Persona(){
System.out.println("constructor sin parametros");
}
Persona(String n, int e,String s){
nombre=n;
edad=e;
sexo=s;
}
Persona (String s) {
sexo=s;
}
void mostrarNombre(){
System.out.println("Nombre = "+nombre);
}
void mostrarEdad(){
System.out.println("Edad = "+edad);
}
void mostrarSexo(){
System.out.println("Sexo = "+sexo);
}
void mostrarPersona(){
mostrarNombre();
mostrarEdad();
mostrarSexo();
}
void actaDeNacimiento(String n) {
nombre=n;
}
void felizCumpleaños(){
edad=edad+1;
}
public static void main(String args[]){
Persona miObjeto=new Persona("Masculino");
miObjeto.mostrarPersona();
miObjeto.actaDeNacimiento("James Gosmling");
miObjeto.mostrarPersona();
miObjeto.felizCumpleaños();
miObjeto.mostrarPersona();
}
}
Ejemplo
import java.io.*;
import java.util.*;
class CuerpoGeometrico2{
String nombre;
int base;
int altura;
double area;
//sobrecarga de constructores
public CuerpoGeometrico(String nombre){
this.nombre=nombre;
}
public CuerpoGeometrico(String x,int base){
nombre=x;
this.base=base;
}
public CuerpoGeometrico(String x, int y, int z){
this.nombre=x;
this.base=y;
this.altura=z;
}
public int leerInfo(String cadena){
System.out.println();
System.out.println(cadena);
return(Leer.datoInt());
}
//Sobrecarga de Metodos
public double areaTriangulo(int b, int a){
return ((b*a)/2);
}
public double areaTriangulo(CuerpoGeometrico x){
return ((x.base*x.altura)/2);
}
public double areaRectangulo(int b, int a){
return (b*a);
}
public double areaRectangulo(CuerpoGeometrico x){
return (x.base*x.altura);
}
public void imprimeFig(CuerpoGeometrico x){
System.out.println("El cuerpo geometrico es un: "+x.nombre);
System.out.println("Su base es: "+x.base);
System.out.println("Su altura es: "+x.altura);
System.out.println("El area es: "+x.area);
}
public static void main(String[] args){
int opcion;
double areaC;
do{
System.out.println("\n\t1.-Calcular Area Triangulo predeterminado.");
System.out.println("\n\t2.-Calcular Area Rectangulo predeterminado.");
System.out.println("\n\t3.-Calcular Area Triangulo. ");
System.out.println("\n\t4.-Calcular Area rectangulo.");
System.out.println("\n\t5.-Salir.");
opcion=Leer.datoInt();
switch(opcion){
case 1:
CuerpoGeometrico t1=new CuerpoGeometrico("Triangulo Predeterminado",10,20);
t1.area=t1.areaTriangulo(t1);
t1.imprimeFig(t1);
break;
case 2:
CuerpoGeometrico r1=new CuerpoGeometrico("Rectangulo Predeterminado",150,10);
r1.area=r1.areaRectangulo(r1);
r1.imprimeFig(r1);
break;
case 3:
CuerpoGeometrico t2=new CuerpoGeometrico("Triangulo");
t2.base=t2.leerInfo("base");
t2.altura=t2.leerInfo("altura");
t2.area=t2.areaTriangulo(t2.base,t2.altura);
t2.imprimeFig(t2);
break;
case 4:
CuerpoGeometrico r2=new CuerpoGeometrico("Rectangulo");
r2.base=r2.leerInfo("base");
r2.altura=r2.leerInfo("altura");
r2.area=r2.areaRectangulo(r2.base,r2.altura);
r2.imprimeFig(r2);
break;
default: System.out.println("Elige una opcion correcta");
break;
}
}while(opcion!=5);
}
}
hola la informacion anterior me parese muy importante, esta como realmente aparese en los libros y me parese que es muy buena idea la explicacion y los ejemplos
ResponderEliminarSi es muy buena la informacion, los conceptos son muy importantes y los diagramas tambien, ademas trae muy buenos ejemplos de Clases y Objetos :-)
ResponderEliminarpues si verdad es buenisima la informacion y muy interesante, deacuerdo con gaby es bueno poner ejemplos asi te sacan de las dudas o de algo q no entiendas ... o.O
ResponderEliminarYo esta estudiando un libro de Java y encontre algo interesante sobre los metodos:
*Los métodos son funciones definidas dentro de una clase.
*Pueden referenciar directamente a las variables de la clase.
*Se invocan sobre un objeto de la clase a la que pertenecen.