U2 Java
U2 Java
U2 Java
JAVA INTRODUCCIÓN
Módulo II
Creación de clases propias
Contenido 2
Introducción ........................................................................................................ 3
Desarrollo ........................................................................................................... 4
Clases ................................................................................................... 4
Constructores ...................................................................................... 13
Cometarios javadoc.......................................................................................... 31
Bibliografía ....................................................................................................... 49
Fuente: www.desmotivaciones.es
Introducción
Mientras más conocimientos adquiramos, más preguntas sabremos responder.
Y para comprender grandes cosas debemos comenzar por lo esencial. Por
ejemplo las clases que son un elemento fundamental para la Programación
Orientada a Objetos, y hasta ahora hemos usado solo clases estándares. Sin
embargo, debemos aprender cómo escribir programas usando nuestras propias
clases.
Desarrollo
Clases
class RegistroAutomovil {
String pro1,pro 2;
auto1.establecePropietario(“Carlos Lopez”) ;
//salida de la información
Pro1=auto1.obtenPropietario( ) ;
Pro2=auto2.obtenPropietario( ) ;
//Miembro de datos
public Automovil ( ) {
Propietario = “Desconocido” ;}
Return Propietario ;}
Propietario =nom;
RegistroAutomov Automóvil
//miembros de datos
//constructor
//métodos
Miembros de datos de una clase: son los valores de datos asociados con la
clase o las instancias de la clase.
<Sentencias>
Método: Para que una clase u objeto procese el mensaje que recibe, debe
poseer un método compatible, que es una secuencia de instrucciones que una
clase u objeto sigue para realizar una tarea. Un método definido para una clase
se llama método de clase y un método definido para un objeto es un método de
instancia.
Automovil auto;
Cuenta cuenta;
auto.establecePropietario (Nombre);
cuenta.establecePropietario (Nombre);
cuenta.SaldoInicial (50000);
cuenta.suma (10000);
cuenta.descuenta (1500);
Automóvil
ProgramaDos
Cuenta
Class Cuenta {
//Miembros de datos
private String Propietario;
private int saldo;
//constructor
public Cuenta ( ) {
Propietario = “Desconocido”;
saldo = 0;
}
//Suma la cuenta del dia
public void suma (int monto) {
saldo= saldo+monto;
}
//Realiza el descuento
public void descuenta (int monto) {
desc= (monto*15)/100;
monto=monto-desc;
saldo= saldo-monto;
}
//Devuelve el saldo actual de esta cuenta
public int obtenSaldoActual ( ) {
return saldo;
}
//Devuelve el nombre del propietario de esta cuenta
public String obtenPropietario () {
return Propietario;
}
//Establece el saldo inicial de esta cuenta
public void SaldoInicial (int cantidad) {
saldo= cantidad;
}
//Asigna el nombre del propietario de esta cuenta
public void establecePropietario (String nom) {
Propietario = nom;
}
}
Argumentos y parámetros
2.1 Argumento:
2.2 Parámetros:
Cuando llamamos al método calcula, debemos pasar tres valores. Los valores
que pasamos deben ser compatibles en la asignación con los parámetros
correspondientes.
Constructores
Sintaxis:
<Sentencias>
public Automovil() {
Propietario =”Desconocido”;
Nombre de clase
Modificador Parametros
public Automovil ( ){
Para tener un ejemplo de constructores con uno o más argumentos, veamos esta
parte de la clase Cuenta en donde definiremos un constructor con dos
parámetros, que acepte el nombre del propietario y active el saldo inicial al
mismo tiempo de la creación del objeto.
propietario= nom;
saldo= iniciaSaldo;
Constantes en la clase
public Longitud(){
Longitud=2*pi*radio;
public Area(){
Area= pi*(radio*radio);
return Longitud;
return Area;
DEPENDENCIA
resulLog.Longitud();
resulArea.Area();
Variables locales
Cuando declare una variable local, asegúrese de que el identificador que use no
entre en conflicto con los miembros de datos de una clase. Veamos el siguiente
ejemplo:
Llamadas a métodos
Recordemos, para que una clase u objeto procese el mensaje que recibe, debe
poseer un método compatible, que es una secuencia de instrucciones que una
clase u objeto sigue para realizar una tarea. En su sintaxis tiene una lista de
parámetros que es opcional, después del nombre del método y siempre entre
paréntesis puede aparecer esta lista (también llamados argumentos) separados
por comas. Estos parámetros son los datos de entrada que recibe el método para
operar con ellos. Un método puede recibir cero o más argumentos. Se debe
especificar para cada argumento su tipo. Los paréntesis son obligatorios aunque
estén vacíos.
Existen los métodos de instancia que están definidos para un objeto, y los
métodos de clase que están definidos para una clase.
Esta es la diferencia entre llamar otro método del mismo objeto y llamar un
método de un objeto diferente.
Clase A Clase B
Public void ejemplo () { Public void calculo () {
Clase B objeto= new Clase B(); ….}
Objeto.calculo(); Public void ejemplo() {
} calculo();
}
Sabemos que los métodos en Java pueden tener cualquier nombre (excluido el
de palabras clave). Existe un nombre de método que está reservado en Java y
otros lenguajes: el método main. Este método es un método especial en tanto en
cuanto es el que da lugar al inicio del programa. Si comparamos un programa
con un partido de fútbol, el método main sería el responsable de poner el partido
en juego.
1 www.aprenderaprogramar.com
return Propietario;
propietario=nom;
Automovil miAuto;
system.out.printl(miAuto.obtenPropietario()+”Posee un Automovil”);
1- Tenemos una clase menos que manejar si no hay que definir una clase
principal por separado.
“Esta ventaja parece no ser muy sustancial, pero cuando escribimos numerosas
clases el escribir una clase principal por separado a todas aquellas clases de
manera que se conviertan ejecutables, se hace tedioso”.
“En lugar de proporcionar una sencilla clase principal por separado, es más
conveniente añadir el método principal a estas clases”.
int x;
public calculo() {
x = 5;
this.x = vale;
this.x= x;
x = x + y;
Se
refiere al Se refiere
miembro this.x = x; al
de parámetro.
datos.
class Prueba {
Prueba prueba;
Int x, y;
x =10;
y =20;
System.out.println (x + “ “+y);
El resultado será:
10 20
Porque con el esquema de paso por valor, los valores de los argumentos se
pasan a los parámetros, pero los cambios hechos a los parámetros no se pasan
de regreso a los argumentos.
prueba .miMetodo ( 12 ) ;
El nombre del parámetro y el del argumento pueden ser el mismo. Sin embargo,
recuerde que los valores de los argumentos aún se pasa a un método a través
del esquema paso por valor; esto es, se hacen las copias locales tanto si el
argumento y el parámetro comparte el mismo nombre como si no.
Por simplicidad hemos colocado todas las clases de un programa definidas por
el programador en la misma carpeta. Este enfoque funciona bien mientras se
aprende programación y no se trata con muchas clases. Pero en un contexto de
la vida real, hay que manejar las clases de manera más efectiva.
1. Incluir la sentencia
Package miutil;
3. Crear una carpeta llamada miutil, que es el mismo nombre que el nombre
del paquete. En Java, el paquete debe tener una correspondencia de uno
a uno con la carpeta.
El quinto paso es el más problemático para aquellos que apenas conocen Java.
Puesto que los pasos exactos para cambiar la variable de ambiente
CLASSPATH son diferentes en cada plataforma (Windows, Unix, Mac) y Java
IDE (Eclipse, Netbeans, jGRASP, BlueJ, etc.), aquí solo describiremos la idea
general para la plataforma Windows. Suponga que tenemos una carpeta llamada
JavaPrograms en la unidad C: y que el paquete (carpeta) miutil está colocado
dentro de esta carpeta JavaPrograms. Entonces, para usar las clases en el
paquete miutil, el ambiente classpath debería hacer referencia a la carpeta
JavaPrograms (no al paquete miutil en si):
El punto después del símbolo de igual se refiere a la carpeta actual (la carpeta
en donde se ubica el programa del cliente que intentamos ejecutar). Sin esta
referencia a la carpeta actual, el programa del cliente no reconocerá otras clases
en la misma carpeta.
Cometarios javadoc
Existen tres estilos de comentarios en Java. Hemos usado dos de ellos. Le
presentamos el tercer estilo llamado comentarios javadoc en esta sección.
Muchas de las clases definidas por el programa que diseñamos son para el uso
de otros programadores. Es, por lo tanto, muy importante proporcionar la
documentación significativas de los programadores cliente de manera que
puedan encender cómo usar nuestras clases de manera correcta. Al añadir
comentarios javadoc a las clases que diseñemos, podemos proporcionar un
estilo de documentación de clases. Una vez que los comentarios javadoc estén
La etiqueta @autor, una etiqueta javadoc, la cual usamos para listar los autores
de la clase.
/**
*Una instancia de esta clase representa una fraccion.
*
*@autor Dr. Caffeine
*
*/
Class Fraccion {
…
}
/**
*La parte del numerador de esta fracción
*/
Prívate int numerador;
/**
*Devuelve la suma de esta fracción
*y el parametro frac. La suma
*devuelta no esta simplificada.
*
*@param frac la Fraccion para sumarla a esta Fraccion
*
*@return la suma de this y frac
*/
Public Fraccion suma (Fraccion frac) {
…..
}
La parte de <descripción> puede ocupar más de una línea. Como este método
devuelve un valor, nosotros añadimos la etiqueta @return. Su sintaxis:
@return <descripcion>
//-------------------------------------------------------------------------------------------------
//MIEMBROS DE DATOS
//-------------------------------------------------------------------------------------------------
package miutil;
/**
*/
//-------------------------------------------------------------------------------------------------
//CONSTRUCTORES
//-------------------------------------------------------------------------------------------------
/**
*/
public Fraccion () {
this(0,1);
/**
*/
/**
*/
/**
*/
if (denom<0){
num=-num;
denom=-denom;
if (num==0){
denom =1;
obtenNumerador(num);
obtenDenominador(denom);
//METODOS DE CLASE
//-------------------------------------------------------------------------------------------------------
/**
*los parámetros m y n
*/
int r= n%m;
MCD
while (r!=o) {
n=m;
m=r;
r=n%m;
return m;
*/
return f1;
} else {
return f2;
//-------------------------------------------------------------------------------------------------------
/**
* Fracción
*/
int a, b, c, d; SUMA
Fraccion adicion;
a= this.obtenNumerador();
b= this.obtenDenominador();
c= frac.obtenNumerador();
d= frac.obtenDenominador();
return adicion;
/**
* fracción
*/
SUMA
public Fraccion suma (int numero) {
return adicion;
F1.obtenDenominador() == f2.obtenDenominador());
*/
*/
/**
*/
System.out.println(“Error fatal”);
System.exit(1);
denominador= denom;
*/
numerador=num; NUMERADOR
}
/**
*copia simple.
* de esta fracción
*/
int denom=obtenDenominador();
if (num!=0) {
/**
* fracción
*/
int a, b, c, d; RESTA
Fraccion diferencia;
a= this.obtenNumerador();
b= this.obtenDenominador();
c= frac.obtenNumerador();
d= frac.obtenDenominador();
return diferencia;
/**
return diferencia;
/**
*/
//METODOS PRIVATE
//-------------------------------------------------------------------------------------------------------
//**
*/
► Deitel, H., & Deitel, P. (2004). Como Programar Java. Mexico: Prentice
Hall.