Sei sulla pagina 1di 16

LAS CLASES

CARACTERSTICAS DE UNA CLASE


Las clases son el ncleo de java.
Cualquier concepto que se quiera implementar en Java debe estar encapsulado dentro de una
clase.
((aprenderemos como se usan las clases para crear objetos))
Las clases creadas en los captulos anteriores existan simplemente para encapsular el mtodo
main(), que ha permitido mostrar los fundamentos de la sintaxis de java.
Las clases son sustancialmente ms potentes que las presentadas hasta el momento.
La caracterstica ms importante es que define un nuevo tipo de dato.
Una vez definido, este nuevo tipo de datos se puede utilizar para crear objetos de ese mismo tipo
o clase.
Una clase, es un template (modelo) para un objeto, y un objeto es una instancia de una clase.
Ya que un objeto es una instancia de una clase, a menudo las dos palabras objeto e instancia se
usan indistintamente.

FORMA GENERAL DE UNA CLASE


Cuando se define una clase, se declara su forma y naturaleza exactas, especificando los datos que
contiene y el cdigo que opera sobre los mismos. Las clases ms sencillas pueden contener solamente
cdigo o solamente datos, en la prctica las clases contienen datos y cdigo. El cdigo de una clase
define la interfaz con sus datos.
Una clase se declara mediante la palabra clave class. ((Las clases que se han utilizado hasta el
momento son realmente unos ejemplos muy limitados de su forma completa. Las clases pueden ser,
mucho ms complejas. ))
Formato general para definir una clase:
class nombre de la clase {
tipo variable de instancia1;
tipo variable de instancia2;
tipo variable de instanciaN;
tipo nombre del mtodo1(lista de
parmetros){
//cuerpo del mtodo
}
tipo nombre del mtodo2(lista de
parmetros){
//cuerpo del mtodo
}
tipo nombre del mtodoN(lista de
parmetros){
del
mtodoen una clase se denominan variables de instancia. El cdigo
Los datos o //cuerpo
variables,
definidos

est contenido en los mtodos. El conjunto de los mtodos y las variables definidos, dentro de
una clase se denominan miembros de una clase. Los mtodos definidos acceden y actan

sobre las variables de instancia, los mtodos determinan cmo se deben utilizar los datos de una
clase.
Las variables definidas en una clase se llaman variables de instancia porque cada instancia de
la clase, cada objeto de la clase, contiene su propia copia de estas variables. Adems, los datos
de un objeto son distintos de los de otro.
Todos los mtodos tienen el mismo formato general que el mtodo main(). La mayor parte de los
mtodos no se especifican como static o public. Las clases de java no tienen necesariamente
un mtodo main(). Solamente se especifica un mtodo main() si esa clase es el punto de
comienzo del programa.
UNA CLASE SENCILLA
Esta clase denominada Caja, define tres variables de instancia: ancho, alto y largo. En ste caso
Caja no contiene mtodo alguno.
class Caja{
double ancho;
double alto;
double largo;
}

Es importante recordar que la declaracin de una clase solamente crea un modelo o patrn y no
un objeto real. Una clase define un nuevo tipo de datos. El nuevo tipo se denomina Caja.
Utilizaremos este nombre para declarar objetos de la clase Caja. El cdigo anterior no crea
ningn objeto
la clase Caja.
Para ello
habr
que utilizar una sentencia como la siguiente:
/* unde
programa
que utiliza
la clase
Caja
El nombre de este fichero es CajaDemo.Java

Ejemplo de la declaracin de un objeto que utiliza las variables de la clase Caja


/*
Class Caja {
Caja
miCaja = new Caja(); // crea un objeto Caja
double
ancho;
llamado
miCaja
double alto;
largo;
Cada vez quedouble
creemos
una instancia de una clase, estaremos creando un objeto que contiene su
}

propia copia de cada variable de instancia definida por la clase. Por lo tanto, cada objeto Caja
contendr//Esta
sus propias
copias de
variables
de instancia ancho, alto y largo. Para acceder a
clase declara
un las
objeto
de la ClaseCaja
estas variables,
utilizaremos el operador variable de instancia(). Este operador liga el nombre del
Class CajaDemo{
publicde
static
main
args) {
objeto con el nombre
una void
variable
de(String[]
instancia.
Caja
miCaja
=
new
Caja();
La siguiente sentencia sirve para asignar a la variable ancho de miCaja el valor 100.
double vol;

//asignacin =
de100;
valores a las valores de instancia de
miCaja.ancho
miCaja
miCaja.ancho = 10;
Esta sentencia indica
al compilador
miCaja.alto
= 20; que debe asignar a la copia de ancho que est contenida en
el objeto miCajamiCaja.largo
el valor 100.=
El15;
operador punto se usa para acceder tanto a las variables de

instancia como a los mtodos de un objeto.

// clculo del volumen de miCaja


vol= miCaja.ancho
miCaja.alto * miCaja.largo;
El siguiente programa
utiliza la clase* Caja:
System.out.println("El volumen es " + vol);
}
}

// Este programa declara dos objetos Caja


Class Caja {
double ancho;
double alto;
largo;
Cada objetodouble
tiene sus
propias copias de las variables de instancia. Lo que significa que si
}

tenemos dos objetos Caja, cada uno tiene sus propias copias de largo, ancho y alto. Es
importante
tener
endeclara
cuenta que
cambios
las variables de instancia de un objeto no afectan
//Esta
clase
dos los
objeto
de laen
ClaseCaja
Class
CajaDemo2{
a las variables del otro.
public static void main (String[] args) {

Caja miCaja1
= new
Caja(); Caja
El siguiente programa
declara
dos objetos
Caja miCaja2 = new Caja();
double vol;

//asignacin de valores a las valores de instancia de


miCaja1
miCaja1.ancho = 10;
miCaja1.alto = 20;
miCaja1.largo = 15;
//asignacin de valores a las valores de instancia de
miCaja2
miCaja2.ancho = 3;
miCaja2.alto = 6;
miCaja2.largo = 9;
// clculo del volumen de la primera caja miCaja1
vol= miCaja1.ancho * miCaja1.alto * miCaja1.largo;
System.out.println("El volumen de miCaja1 es " + vol);
// clculo del volumen de la segunda caja miCaja2
vol= miCaja2.ancho * miCaja2.alto * miCaja2.largo;
System.out.println("El volumen de miCaja2 es " + vol);
}
}

Declaracin de objetos
Cuando se crea una clase, se est creando un nuevo tipo de datos que se utilizar para declarar
objetos de ese tipo. La obtencin de objetos de una clase es un proceso que consta de dos
etapas:
En primer lugar: se debe declarar una variable del tipo de la clase, tal variable no define un
objeto, sino que simplemente es una referencia a un objeto.
En segundo lugar: se debe obtener una copia fsica del objeto y asignarla a esa variable. Para
ello se utiliza
/* unelprograma
operador new.
que utiliza
Dondelanew
clase
asigna
Triangulo
dinmicamente
para calcular
-durante
el
el tiempo de
de unatringulo.
ejecucin-rea
memoria
un objeto y devuelve una referencia al mismo.
El nombre de este fichero es AreaTriangulo */

Todos los objetos de una clase Java se asignan dinmicamente.


Class Triangulo{
double base;
Ejemplo:
double altura;
}

Caja miCaja; //declara la referencia a un objeto


miCaja
new Caja();
espacio
para el
objeto(para las variables del objeto)
//Esta= clase
declara//reserva
un objeto
de la Clase
Triangulo
Class AreaTriangulo{

Ejemplo de un programa
con
una void
clase
y un(String
objeto:[]args) {
public
static
main
Triangulo miTriangulo = new Triangulo();
area;
Crea una clase con lasdouble
variables
necesarias para calcular el rea de un tringulo, define el objeto
miTriangulo1, asignas los valores de instancia a miTriangulo1, y calculas el rea del triangulo
//asignacin de valores a las valores de instancia de
miTriangulo
miTriangulo.base = 20;
miTriangulo.altura = 18;
// clculo del rea de miTriangulo
area= (miTriangulo.base * miTriangulo.altura)/2;
System.out.println("El rea del tringulo es " + area);
}
}

Actividad para el jueves:


En binas realiza lo siguiente:
1. Define una clase con las variables necesarias para calcular el rea de un rectngulo,
declara 2 objetos, asigna valores, realiza el clculo correspondiente para cada objeto e
imprime el resultado de cada objeto.
2. Define una clase con las variables necesarias para calcular el rea de un pentgono,
declara 2 objetos, asigna valores, realiza el clculo correspondiente para cada objeto e
imprime el resultado de cada objeto. [[area=perimetro*apotema/2]]
3. Intercambien los programas terminados
4. Responde las preguntas del siguiente instrumento para evaluar el cdigo de tu compaero
Preguntas:
En el cdigo se...
Define una clase?

Si

Define los objetos


especificados?
Asigna los valores a las
variables?
Realiza el clculo indicado
para cada objeto?
Imprime los resultados de
cada objeto?
Consideras que el programa
funcionar correctamente?

Actividad para el viernes:


1. Realiza los 3 programas de ejemplo

NO

De manera
correcta

Observacin

2. Crea una clase con las variables para calcular el rea de un tringulo, define 2 objetos,
asigna los valores de instancia a los 2 objetos, y calcula el rea de cada uno de los
tringulos.
OPERADOR NEW
El operador new reserva memoria dinmicamente para un objeto. Su forma general es:
variable = new nombre_de
clase( );

Siendo variable una variable del mismo tipo de la clase creada, y el nombre_de clase, el
nombre de la clase que est siendo instanciada. El constructor de la clase viene especificado
por el nombre de la clase seguido por parntesis.
Un constructor define lo que ocurre cuando se crea un objeto de la clase. Los constructores son
una parte importante de todas las clases y tienen muchos atributos significativos.
La mayora de las clases definen explcitamente sus propios constructores en la definicin de la
clase. Cuando no se definen explcitamente, Java suministra automticamente el constructor por
defecto.
Los objetos tienen muchas caractersticas y atributos que obligan a Java a tratarlos de forma
diferente a la que utiliza con los tipos sencillos.
Es importante tener en cuenta que el operador new reserva memoria para un objeto durante el
tiempo de ejecucin. Cuando se declara un objeto de una clase, se est creando una instancia
de esa clase. Por lo tanto, una clase es una construccin lgica, mientras que un objeto tiene
una realidad fsica, esto es, un objeto ocupa un espacio de memoria.

METODOS
Un mtodo en Java es un procedimiento o conjunto de instrucciones que tiende a repetirse, y
que se separan del programa principal con un nombre especfico, que ser llamado cada vez que
sea necesario sealando su nombre.
La forma general de un mtodo es la siguiente:
Tipo nombre_de mtodo(lista de
parmetros){
//cuerpo del mtodo
Donde tipo}especifica el tipo de dato que devuelve el mtodo, que puede ser cualquier tipo

vlido, incluyendo los tipos de clases creadas por el programador. El nombre del mtodo puede
ser cualquier identificador vlido que sea distinto de los que ya estn siendo utilizados por otros
elementos del programa. Cuando el mtodo no devuelve ningn valor, el tipo devuelto debe ser
void. La lista de parmetros es una sucesin de pares de tipo de identificador separados por

comas. Los parmetros son variables que reciben los valores de los argumentos que se pasa a
los mtodos cuando se les llama. Si el mtodo no tiene parmetros, la lista de parmetros
estar vaca.
Adicin de un mtodo a la clase Caja
Los mtodos permitirn acceder a las variables de instancia definidas por la clase, definen la
interfaz para la mayor parte de las clases. Esto permite que la clase oculte la estructura interna
de los datos detrs de las abstracciones de un conjunto de mtodos.

El siguiente ejemplo define un mtodo, que no devuelve ningn valor, slo se presenta el
mtodo que imprimir lo que su procedimiento seale.

//Este programa incluye un mtodo en la clase Caja


class Caja{
double ancho, alto, largo;
// Mtodo que presenta el volumen de una caja
void volumen( ){
System.out.print("El volumen es ");
System.out.println (ancho*alto*largo); }
}
class CajaDemo3 {
public static void main (String [ ] args){
Caja miCaja1 = new Caja();
Caja miCaja2 = new Caja();
// Se asignan valores a mi Caja1
miCaja1.ancho = 10;
miCaja1.alto = 20;
miCaja1.largo = 15;
// Asigna diferentes valores a las variables de instancia de mi
Caja2
miCaja2.ancho = 3;
miCaja2.alto = 6;
miCaja2.largo = 9;
//Presenta el volumen de la Primera Caja
miCaja1.volumen( );
//Presenta
el volumen
la Segunda
Caja que la referencia a las variables de
Dentro del mtodo
volumen(),
es muyde
importante
observar
miCaja2.volumen( );
instancia ancho, alto y largo es directa sin que vayan precedidas del nombre de un objeto o del
}
operador punto. Cuando un mtodo utiliza una variable de instancia definida por su propia clase,

lo hace directamente, sin referencia explcita a un objeto sin utilizar el operador punto. Siempre
que se llama a un mtodo, este est relacionado con algn objeto de su clase. Una vez que la
llamada tiene lugar, el objeto es conocido. Por lo tanto, en un mtodo no es necesario especificar
el objeto dos veces. Esto significa que ancho, alto y largo dentro de volumen() se refieren
implcitamente a las copias de esas variables que estn en el objeto que se llama a volumen().
Ejercicio:
Elabora un programa con un mtodo que te permita calcular el rea de un tringulo en 2 objetos

Devolucin de un valor
La implementacin del mtodo volumen() realiza el clculo del volumen de una caja dentro de la
// Ahora volumen ( ) devuelve el volumen de una Caja
clase Caja a la que pertenece, esto puede ser un problema si en otra parte del programa se
necesita elclass
valorCaja{
del volumen de la caja.
double ancho;
double alto;
double largo;
// Mtodo que calcula y devuelve un valor
double volumen( ){
return ancho*alto*largo;
}
}
class CajaDemo4 {
public static void main (String [ ] args){
Caja miCaja1 = new Caja();
Caja miCaja2 = new Caja();
double vol;
// Se asignan valores a mi Caja1
miCaja1.ancho = 10;
miCaja1.alto = 20;
miCaja1.largo = 15;
// Asigna diferentes valores a las variables de instancia de mi
Caja2
miCaja2.ancho = 3;
miCaja2.alto = 6;
miCaja2.largo = 9;
//Se obtiene el volumen de la Primera Caja
vol = miCaja1.volumen( );
System.out.println("El volumen es "+vol);
//Se obtiene el volumen de la Segunda Caja
vol = miCaja2.volumen( );
System.out.println("El volumen es "+vol);
}
}

Ejercicio:
Elabora un programa con un mtodo que devuelva el resultado del rea de un tringulo, en dos
objetos.

Mtodos con parmetros


Mientras que algunos mtodos no necesitan parmetros, la mayora s. Los parmetros permiten
generalizar un mtodo, es decir, un mtodo con parmetros puede operar sobre gran variedad de
datos y/o ser utilizado en un gran nmero de situaciones diferentes.

// Este programa usa un mtodo parametrizado


class Caja{
double ancho;
double alto;
double largo;
// Mtodo que calcula y devuelve un valor
double volumen( ){
return ancho*alto*largo;
}
//establece las dimensiones de la caja Caja
void setDim (double w, double h, double d){
ancho = w;
alto = h;
largo = d;
}
}
class CajaDemo5{
public static void main (String [ ] args){
Caja miCaja1 = new Caja();
Caja miCaja2 = new Caja();
double vol;
// Se inicializa cada caja
miCaja1.setDim (10, 20, 15);
miCaja2.setDim (3,6,9);
// Calcula el volumen de la Primera Caja
vol = miCaja1.volumen( );
System.out.println("El volumen es "+vol);
// Calcula el volumen de la Segunda Caja
vol = miCaja2.volumen( );
System.out.println("El volumen es "+vol);
NOS FALT hacer
mtodos con parmetros
}
Ejercicio: Elabora un programa con un mtodo que devuelva valores y utilice parmetros para
}

calcular el rea un tringulo en 2 objetos.

Constructores
El proceso de inicializar todas las variables en una clase cada vez que se crea una instancia
puede resultar tedioso. El proceso de inicializacin es tan comn que Java permite que los
objetos se inicialicen cuando son creados. Esta inicializacin automtica se lleva a cabo
mediante un constructor.
Un constructor inicializa un objeto inmediatamente despus de su creacin. Tiene el mismo
nombre que la clase en la que reside y, sintcticamente, es similar a un mtodo. Una vez
definido, se llama automticamente al constructor despus de crear el objeto y antes de que
termine el operador new. La tarea del constructor es inicializar el estado interno de un objeto.

// La clase Caja usa un constructor para inicializar las dimensiones


de una caja
class Caja{
double ancho;
double alto;
double largo;
// Este es el constructor para Caja.
Caja ( ){
System.out.println("Constructor de Caja");
ancho = 10;
largo = 10;
alto=10;
}
// Mtodo que calcula y devuelve un valor
double volumen( ){
return ancho*alto*largo;
}
}
class CajaDemo6 {
public static void main (String [ ] args){
Caja miCaja1 = new Caja();
Caja miCaja2 = new Caja();
double vol;
//Se obtiene el volumen de la Primera Caja
vol = miCaja1.volumen( );
System.out.println("El volumen es "+vol);
//Se obtiene el volumen de la Segunda Caja
vol = miCaja2.volumen( );
System.out.println("El volumen es "+vol);
Ejercicio:} Basndote en el ejemplo de constructores realiza un programa que calcule el rea de
}
un crculo
para dos objetos, utilizando un mtodo que devuelva un valor, y un constructor que

inicialice las variables necesarias.


Constructores con parmetros

Aunque el constructor de Caja() en los ejemplos previos inicializa un objeto Caja, no es muy til
que todas las cajas tengan las mismas dimensiones. La solucin ms sencilla es aadir
parmetros al constructor.
// Este programa usa un constructor parametrizado
class Caja{
double ancho;
double alto;
double largo;
// Constructor de Caja con parmetros
Caja (double w, double h, double d){
ancho = w;
alto = h;
largo = d;
// Mtodo que calcula y devuelve un valor
double volumen( ){
return ancho*alto*largo;
}
}
class CajaDemo7{
public static void main (String [ ] args){
// declara, reserva memoria, e inicializa los objetos de
Caja
Caja miCaja1 = new Caja(10,20,15);
Caja miCaja2 = new Caja(3,6,9);
double vol;
// Calcula el volumen de la Primera Caja
vol = miCaja1.volumen( );
System.out.println("El volumen es "+vol);
// Calcula el volumen de la Segunda Caja
vol = un
miCaja2.volumen(
Ejercicio: Elabora
programa que te );
permita agregar parmetros y calcular el rea de un
System.out.println("El volumen es "+vol);
crculo en }2 objetos
EJERCICIOS
con mtodos REPASO:
}

1. Elabora un programa don un mtodo que te permita calcular el rea de un rectngulo en 2


objetos sin devolver un valor
2. Elabora un programa con un mtodo que devuelva el resultado del rea de un rectngulo
en 2 objetos
3. Elabora un programa con un mtodo y un constructor con parmetros para calcular el rea
de un rectngulo en 2 objetos.

POLIMORFISMO
En Java es posible definir dos o ms mtodos que compartan el mismo nombre, dentro de la
misma clase, aunque la declaracin de sus parmetros sea diferente. Cuando se produce esta
situacin se dice que los mtodos estn sobrecargados, y que el proceso es una sobrecarga de
mtodo. La sobrecarga de mtodos e una de las formas en que JAva implementa el

polimorfismo. La sobrecarga de mtodos es una de las caractersticas ms tiles e interesantes


de Java.
Cuando se invoca un mtodo sobrecargado, Java utiliza el tipo y/o nmero de argumentos como
gua para determinar a qu versin del mtodo sobrecargado se debe llamar. Por lo tanto, los
mtodos sobrecargados deben diferir en el tipo y/o nmero de sus parmetros.
Mientras que los mtodos sobrecargados pueden devolver diferentes tipos, el tipo devuelto por s
solo es insuficiente para distinguir dos versiones de un mtodo. Cuando Java encuentra una
llamada a un mtodo de sobrecarga, se ejecuta la versin del mtodo cuyos parmetros
coinciden con los argumentos utilizados en la llamada.
A continuacin se presenta un ejemplo que ilustra la sobrecarga de mtodos:
// Ejemplo de sobrecarga de mtodos
class OverloadDemo {
void test ( ) {
System.out.println ("Sin parmetros");
}
//Sobrecarga el mtodo test con un parmetro entero
void test (int a ) {
System.out.println ("a:"+a);
}
//Sobrecarga el mtodo test con dos parmetros enteros
void test (int a, int b ) {
System.out.println ("a y b:"+a+" " +b);
}
//Sobrecarga el mtodo test con un parmetro doble
double test (double a) {
System.out.println ("a double:"+a);
return a*a;
}
}
class Overload {
public static de
void
(String [ ] args) {
//Devolucin
unmain
objeto
OverloadDemo
ob=new OverloadDemo( );
class Test
{
double
result;
int
a;
//llamada
todas
Test a
(int
i) { las versiones del test( )
ob.test();
a=i;
}ob.test(10);
ob.test(10,20);
Test increnDiez
(){
Ejercicio:
Crea
una programa
en Java con un mtodo del mismo nombre y con diferentes
result=ob.test(123.25);
Test
temp =new Test (a+10);
parmetros, return
que
calcule
(o que utilice otras
System.out.println("Resultado
de ob.test(123.25):
" +variables
temp;el rea de un cuadrado.
NOS FALT
hacer
mtodos
con
parmetros
result);
}
}
}
Ejercicio:
un programa con un mtodo que devuelva valores y utilice parmetros para
} Elabora

calcular el rea un tringulo en 2 objetos.

class RetOb {
public static void main(String[] args){
Test ob1 = new Test (2)
Devolucin de objetos
Test ob2;
ob1 = ob1.increnDiez();
Un objeto puede devolver cualquier tipo de datos, incluyendo los tipos de clase definidos por el
System.out.println("ob1.a: "+ob1.a);
programador.
Por ejemplo, en el siguiente
programa el mtodo increnDiez( ) devuelve un objeto
System.out.println("ob2.a:
"+ob2.a);

en el que el valor de a es diez unidades mayor que en el objeto que llama al mtodo.
ob2 = ob2.increnDiez();
System.out.println("ob2.a despus del segundo incremento:
"+ob2.a);b
}
}

ENCAPSULAMIENTO
La encapsulacin relaciona datos con el cdigo que opera sobre los mismos, proporciona el
control de acceso, ya que se puede controlar el acceso de los miembros de una clase a las
diferentes
partes de un
programa
e impedir entre
un malpblico
uso delymismo.
//Este programa
muestra
la diferencia
privadoSi slo se permite el acceso a
class
Test
{
los datos a travs de mtodos bien definidos, se impide una mala utilizacin de los datos.
int a; // acceso
por defecto
Los especificadores
de acceso
de Java son public, private y protected. El especificador
public
int
b;
//
acceso
protected se aplica solamente enpblico
el caso de que se trabaje con herencia.
privado
Cuando seprivate
aplica aintunc;//acceso
miembro de
una clase el especificacor public, se puede acceder a ese
miembro por
cualquierpara
cdigo
del programa.
Cuando
// mtodos
acceder
a la variable
c se especifica un miembro de una clase
como private,
puede
a ese miembro
void slo
setcse
(int
i) { acceder
// se establece
el valordesde
de c otros miembros de su clase. Ahora
c = i; porqu main( ) siempre ha sido precedido por el especificador public,
resulta sencillo entender
}
permitiendo el acceso al mismo desde fuera del programa, es decir, desde el intrprete de Java.
int getc( ) { // se obtiene el valor de c
Cuando no se utiliza
un c;
especificador
de acceso, por defecto, se considera que el miembro de la
return
}
clase
} es pblico dentro de su propio paquete, pero se puede acceder al mismo desde fuera de su
class TestDeAcceso
{ de acceso precede al resto de especificaciones de tipo de un
paquete.
Un especificador
public
static
void
main (String
]args)
{
miembro, es decir, se debe comenzar
con [una
sentencia
de declaracin del miembro.
Test ob = new Test ( );

// Esto es correcto y se puede acceder directamente a las


variables a y b
ob.a =10;
ob.b=20;
// Esto no es correcto y causara un error
// ob.c = 100; // error!
// Se debe acceder a la variable privada c a travs de sus
mtodos
ob.setc(100); // forma correcta de asignarle un valor a la
variable privada
System.out.println("a, b y c: " + ob.a + " " + ob.b+ " " +

//Un ejemplo simple de herencia


//creacin de la superclase A
class A{
Ejercicio: Define una clase con tres variables cualquiera, una con acceso por defecto, la segunda
int i, j;

con acceso pblico, y la tercera con acceso privado, asgnales valores a cada una y al final
imprime la multiplicacin
de(cada
void mostrarij
) { una de las variables.
System.out.println("i + j: " + i + " " + j);

// suma las 2

variables
}
HERENCIA
} una de las piedras angulares de la programacin orientada a objetos, ya que
La herencia es
// Creacin
dede
las
subclases porjerrquicas.
extensin de
la clasela herencia se puede crear una clase
permite
la creacin
clasificaciones
Mediante
class B extends A {
general que define
int k; rasgos generales para un conjunto de trminos relacionados. En la
terminologa de Java, una clase que es heredada se denomina superclase (es la clase que se va
void
mostrark
( ) { se denomina subclase (la que recibe la herencia). Por lo tanto,
a heredar). La
clase
que hereda
System.out.println("k:
+ una
k); superclase,
} //que
slohereda
imprime
k las variables de
una subclase es una versin especializada"de
todas
instancia y mtodos
definidos
por la superclase y aade los suyos propios. Para heredar una
void sum(
){
clase, simplementeSystem.out.println("i+j+k:
se incorpora la definicin de" una
clase dentro }
de //lasuma
otra usando
+ (i+j+k));
las 3 la palabra
variables
clave extends.
}

class HerenciaSimple {
public static void main (String[ ] args) {
A superOb = new A( );
B subOb = new B( );
// Se puede utilizar la superclase independientemente
superOb.i = 10;
superOb.j = 20;
System.out.println("Contenido de superOb: ");
superOb.mostrarij( ) ;
System.out.println( );
// La subclase accede a todos los miembros pblicos de su superclase
subOb.i = 7;
subOb.j = 8;
subOb.k = 9;
System.out.println ("Contenido de subOB: ");
subOb.mostrarij ( );
subOb.mostrark( );
System.out.println( );
System.out.println("Suma de i, j y k en subOb: ");
subOb.sum();
}
}

Ejercicio: Crea un programa con 2 clases: una SuperClase con 2 variables y una subclase con 2
variables, crea un mtodo que multiplique las 4 variables. Asigna valores a la clase
independiente, y luego a la subclase. Toma como base el ejemplo anterior.

Trabajo final del primer parcial


1. Define una clase con las variables necesarias para calcular el ndice de masa corporal de una
persona, asigna los valores de instancia para un objeto, calcula el IMC e imprime el resultado.
2. Basndote en el ejemplo anterior crea un programa con una clase, un objeto y un mtodo que no
devuelva un valor y que permita calcular el ndice de masa corporal de una persona
3. Crea una clase con las variables necesarias para calcular el sueldo de una persona, a quien se le
pagar por hora, ocupars precio por hora y cantidad de horas. Define 2 objetos, asigna los
valores de instancia para cada objeto, calcula el sueldo de cada persona e imprime el resultado
de cada uno y el nombre de cada empleado.
4. Basndote en el ejemplo anterior crea un programa con una clase, 3 objetos y un mtodo que
permita calcular el sueldo de una persona y que devuelva un valor. Al final se imprimirn los
nombres de cada empleado y su sueldo.
5. Crea una clase con las variables necesarias para calcular el rea de un hexgono para 2 objetos,
utilizando un mtodo que devuelva un valor, usando parmetros.
6. Basndote en el ejemplo anterior realiza un programa que calcule el rea de un hexgono para
un objeto, utilizando un mtodo que devuelva un valor, y un constructor que inicialice las
variables necesarias (sin parmetros).
7. Elabora un programa que te permita agregar parmetros y que devuelva un valor, y que calcule
el rea de un pentgono para 2 objetos, utiliza un constructor para inicializar variables
8. Polimorfismo: Elabora un programa con un mtodo con el mismo nombre que realice lo siguiente
cada uno: un mtodo con un parmetro entero, un mtodo con dos parmetros enteros, y un
mtodo con un parmetro doble, que se imprima al final el contenido de cada mtodo.
9. Encapsulamiento: Define una clase con tres variables cualquiera, una con acceso por defecto, la
segunda con acceso pblico, y la tercera con acceso privado, asgnales valores a cada una y al
final imprime el promedio de todas las variables que utilizaste en cada mtodo.
10. Herencia: Crea un programa con 2 clases: una SuperClase con 3 variables y una subclase con 3
variables, crea un mtodo que calcule el promedio de cada una de las clases. Asigna valores a la

clase independiente, y luego a la subclase, imprime los resultados de cada promedio para cada
clase.
CONDICIONES DE ENTREGA
1. Portada
2. Introduccin
3. El cdigo de Todos los programas y la pantalla donde se muestra que el programa si CORRE o si
FUNCIONA
4. Conclusin

EXAMEN PARCIAL PRIMER PARCIAL


1. Define una clase con las variables necesarias para calcular el sueldo de una persona,
tomando en cuenta las horas trabajadas y el sueldo por hora, asigna los valores de
instancia para un objeto, calcula el sueldo e imprime el nombre de la persona y su sueldo
2. Crea un programa con una clase, un objeto y un mtodo que no devuelva un valor y que
permita calcular el ndice de masa corporal de una persona.
3. Crea una clase con las variables necesarias para calcular el importe que se pagar en una
tienda, tomando en cuenta el precio de la mochila y la cantidad de mochilas que se
comprarn. Define 1 objeto, asigna los valores de instancia para el objeto, calcula el
importe que pagars por la compra, e imprmelo
4. Crea un programa con una clase, 3 objetos y un mtodo que permita calcular el rea de
un tringulo y que devuelva un valor. Al final se imprimirn los resultados de cada objeto.

Potrebbero piacerti anche