Sie sind auf Seite 1von 14

ELECTIVA - TELEMTICA Y REDES III

2014-I Ing. Nstor Ral Suarez P.


Pgina 1 de 14

GUIA 2 - PROGRAMACIN ORIENTADA A OBJETOS (P.O.O) LENGUAJE JAVA


I. CONCEPTOS BASICOS

1. Clase: Una clase es el esquema o definicin de donde se obtienen los denominados objetos. Es
una representacin abstracta de un elemento o entidad de la realidad que contiene la definicin de
las caractersticas y comportamientos esenciales del elemento que representa. Costa de tres
elementos bsicos:

Nombre: Debe estar asociado al elemento que representa. Por lo general el nombre de
una clase lleva la primera letra en mayscula.
Atributos: Son las caractersticas representativas del objeto representado. Deben capturar
la esencia de dicho objeto. Los atributos se pueden declarar de cualquier tipo de dato
primitivo (int, double, string) o tipos complejos como arreglos o estructuras.
Mtodos: Son funciones que modelan el comportamiento de un objeto. Pueden modelar
cambios en los atributos de la clase, funcionalidades o relaciones entre clases a travs del
intercambio de mensajes. Los mtodos pueden presentarse de cuatro tipos: Con o sin
parmetros de entrada, de retorno o de no retorno. Los mtodos de no retorno deben llevar
la palabra void. En los mtodos con retorno o los que reciben parmetros se deben
especificar el tipo de dato que retorna o los que recibe; estos pueden ser tipos de datos
primitivos, tipos complejos como arreglos o estructuras o inclusive objetos.

2. Modificadores de acceso (Visibilidad): Tanto mtodos como atributos tienen visibilidad, la cual
se implementa por medio de los siguientes modificadores de acceso:

Publico (+): representada por un signo ms; los mtodos y atributos pueden ser vistos por
todos los objetos del sistema.
Privado (-): representada por el signo menos; los mtodos y tributos solo pueden ser
vistos por el objeto al cual pertenecen.
Protegido (#): representada por el signo nmero; los mtodos y atributos pueden ser
vistos por el objeto que los contiene y sus hijos (En Herencia).

3. Constructor: Es un mtodo cuya funcin principal es la de crear un nuevo objeto a partir de
una clase. Este mtodo puede estar definido de forma implcita o explicita y adicionalmente se
puede programar para que simultneamente al crear el objeto se establezca un estado inicial.

4. Objeto: Se le conoce en la P.O.O como Intatancia de una clase. Para utilizar las
funcionalidades definidas en una clase es obligatorio primero crear un objeto. nicamente cuando
el objeto es creado se pueden llamar y ejecutar mtodos. Los Objetos poseen 3 caractersticas que
importantes que son: Identidad, Estado y Comportamiento

Identidad: La identidad es la propiedad que permite a un objeto diferenciarse de otros. La
identidad se refiere al identificador nico que debe tener cada objeto en un contexto a mbito
dado, esta propiedad se aplica por medio del nombre que se le da a los objetos.
Estado: El estado de un objeto corresponde a la informacin almacenada en los atributos del
objeto en un instante de tiempo dado. Los atributos y sus valores en un momento dado,
determinan el estado de un objeto.
Comportamiento: El comportamiento de un objeto se refiere al conjunto de tareas o
funcionalidades que este es capaz de realizar. El comportamiento de un objeto est
directamente relacionado con su funcionalidad y por ende, est definido por los mtodos de su
clase.


ELECTIVA - TELEMTICA Y REDES III

2014-I Ing. Nstor Ral Suarez P.
Pgina 2 de 14

II. PILARES DE LA PROGRAMACIN ORIENTADA A OBJETOS

Un software orientado a objetos se basa en modelos o representaciones abstractas de un
problema o sistema real. Un software orientado a objetos es aquel que se construye basado en los
conceptos y principios del paradigma de la programacin orientada a objetos. Los conceptos
fundamentales ms importantes de la programacin orientada a objetos son:

Abstraccin: La abstraccin es la propiedad que permite representar las caractersticas
(atributos) y comportamiento (mtodos) esenciales de un objeto.
Encapsulamiento: El Encapsulamiento o encapsulacin es la propiedad que permite asegurar
que el contenido de la informacin de un objeto est oculta al mundo exterior; cada atributo y
cada mtodo solo le pertenece a l y solo puede ser manejado por l a travs de sus mtodos.
Modularidad: La Modularidad es la propiedad que permite subdividir una aplicacin en partes
ms pequeas (llamadas mdulos), cada una de las cuales debe ser tan independiente como
sea posible de la aplicacin en s y de las restantes partes.
J erarqua: La Jerarqua es la propiedad que permite a los objetos hacer uso de las
caractersticas y comportamiento de otros. La jerarqua se presenta fundamentalmente de dos
formas: Herencia y Agregacin/composicin.
Herencia: Una de las propiedades ms importantes de la POO es la herencia, la cual se
puede definir como la capacidad que tiene un objeto hijo (subclase) de utilizar las
caractersticas y comportamientos de su padre (superclase).
Polimorfismo: Es la propiedad que indica la posibilidad de que un objeto tome muchas
formas. En trminos prcticos, el polimorfismo permite referirse a objetos y realizar la misma
operacin de diferentes formas, es decir, llamar un mismo mtodo y que este se comporte de
maneras diferentes de acuerdo al contexto o mbito donde se utilice.

III. PROGRAMACIN ORIENTADA A OBJETOS EN JAVA

Para declarar una clase en lenguaje Java se escribe primero la palabra public, seguida de la
palabra reservada class y luego el nombre de la clase. Los Nombres de clases, atributos y mtodos
deben ser nombres nemotcnicos, es decir, fcil de recordar, sin espacios ni signos de puntuacin
y donde no se usen palabras reservadas por el lenguaje (int, string, if, for, while, etc),.

Ejemplo:
public class nombreclase
{ }

Para declarar los atributos se debe anteponer primero el tipo de visibilidad (pblico, privado,
protegido), luego el tipo de dato que representa el atributo y despus el nombre.

Ejemplo:
private string nombreatributo;

Para declarar un mtodo se debe primero colocar el tipo de visibilidad, luego el tipo de retorno
que har el mtodo y despus el nombre, luego parntesis y dentro de ellos los parmetros
que deba llevar. El cdigo del mtodo se establece dentro de llaves.

Ejemplo:
public void nombremetodo(string atributo1, double atributo2)
{
Codigo: cuerpo del mtodo;
}
La estructura completa de una clase en trminos generales seria por ejemplo as:

ELECTIVA - TELEMTICA Y REDES III

2014-I Ing. Nstor Ral Suarez P.
Pgina 3 de 14


public class Ejemplo
{
private string atributo1;
private double atributo2;
private int atributo3;
public void metodo1(int parametro1, double parmetro2)
{
Cuerpo_del_metodo1;
}

public string metodo2( )
{
Cuerpo_del_metodo2;
return tipo String;
}
}

Los atributos se pueden declarar de cualquier tipo de dato primitivo (int, double, string) o
tipos complejos como arreglos o estructuras.

Los mtodos pueden presentarse de cuatro tipos: Con o sin parmetros de entrada, de
retorno o de no retorno. Los mtodos de no retorno deben llevar la palabra void.

En los mtodos con retorno o los que reciben parmetros se deben especificar el tipo de
dato que retorna o los que recibe; estos pueden ser tipos de datos primitivos, tipos
complejos como arreglos o estructuras o inclusive otros objetos.

Para crear un objeto partir de una determinada clase se llama el mtodo constructor haciendo uso
de la palabra clase new. La sintaxis general para crear un nuevo objeto en lenguaje Java es:

<NombreClase> <NombreObjeto> = new <NombreClase ( )>;

Ejemplos:

1. Crear un nuevo objeto en una sola lnea de cdigo:
Estudiante ObjEstudiante = new Estudiante( );

2. Crear un nuevo objeto usando dos lneas de cdigo:

Operaciones ObjOperacion;
ObjOperacion = new Operaciones( );


Para llamar o ejecutar mtodos es obligatorio primero crear un objeto. En el lenguaje de
programacin JAVA, el operador "punto" (.) es usado para referirse o "llamar" a un mtodo
particular de un objeto.







ELECTIVA - TELEMTICA Y REDES III

2014-I Ing. Nstor Ral Suarez P.
Pgina 4 de 14

Ejemplos:

1. Llamado a un mtodo sin parmetros de entrada y no retorno:
ObjEstudiante.Matricular( );

2. Llamado a un mtodo con parmetros de entrada y no retorno:
ObjEstudiante.SetNombre(Pedro);

3. Llamado a mtodo sin parmetros de entrada y retorno:
string nombre = ObjEstudiante.GetNombre( );

4. Llamado a mtodo con parmetros de entrada y retorno:
int suma = ObjOperacion.Sumar(15,35);









































ELECTIVA - TELEMTICA Y REDES III

2014-I Ing. Nstor Ral Suarez P.
Pgina 5 de 14

EJERCICIO 1. (P.O.O Abstraccin y Encapsulamiento):

Desarrollar en JAVA un Programa Orientado a Objetos en donde aplicando los conceptos de
abstraccin y encapsulamiento implemente una representacin abstracta (Modelo Computacional)
de un Televisor

SOLUCIN

1. Cree un nuevo proyecto Java JavaApplication, y distribyalo tal y come se observa a
continuacin


2. Dentro del paquete llamado presentacin en el archivo del JFrame llamado
Encapsulamiento.java disee una I.G.U tal y como se muestra a continuacin


3. En el archivo llamado FundamentosPOO.java agregue las siguientes lneas de cdigo dentro
del mtodo Main:

public static void main(String[] args) {
Encapsulamiento ObjP = new Encapsulamiento();
ObjP.setVisible(true);
}

ELECTIVA - TELEMTICA Y REDES III

2014-I Ing. Nstor Ral Suarez P.
Pgina 6 de 14

4. Dentro del paquete llamado Logica en la clase TV. ubique cada bloque de cdigo para
escribir las instrucciones segn se muestra a continuacin:

package Logica;

public class TV {
private String marca;
private String modelo;
private String tipo;
private int tamao_pantalla;

public void setMarca(String _marca)
{this.marca = _marca;}

public String getMarca()
{ return marca;}

public void setModelo(String _modelo)
{this.modelo = _modelo;}

public String getModelo()
{return modelo;}

public String getTipo()
{return tipo;}

public void setTipo(String tipo)
{this.tipo = tipo;}

public int getTamao_pantalla()
{return tamao_pantalla;}

public void setTamao_pantalla(int tamao_pantalla)
{this.tamao_pantalla = tamao_pantalla;}

public TV() {}

public String Encender()
{return "El TV HA sido encendido";}

public String Apagar()
{ return "El TV HA sido apagado";}

public String CambiarCanal()
{ return "El Canaha sido cambiado";}

public String SubirVolumen()
{ return "El Volumen del TV HA aumentado"; }

public String BajarVolumen()
{return "El Volumen del TV HA disminuido";}

}

ELECTIVA - TELEMTICA Y REDES III

2014-I Ing. Nstor Ral Suarez P.
Pgina 7 de 14

5. Dentro del paquete llamado presentacin en el archivo del JFrame llamado
Encapsulamiento.java Ubique cada bloque de cdigo (Controles y Eventos) para escribir las
instrucciones segn se muestra a continuacin:

package Presentacion;

import Logica.TV;
import javax.swing.JOptionPane;
public class Encapsulamiento extends javax.swing.JFrame {

TV ObjTV =new TV();
public Encapsulamiento() {
initComponents();
}

@SuppressWarnings("unchecked")

private void initComponents() {


private void formWindowOpened(java.awt.event.WindowEvent evt) {

JOptionPane.showMessageDialog(rootPane, "Bienvenido");

jComboBox3.addItem("Encender");
jComboBox3.addItem("Apagar");
jComboBox3.addItem("CambiarCanal");
jComboBox3.addItem("SubirVolumen");
jComboBox3.addItem("BajarVolumen");

}

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

ObjTV.setMarca(jTextField1.getText());
ObjTV.setModelo(jTextField2.getText());
ObjTV.setTipo(jComboBox1.getSelectedItem().toString());

ObjTV.setTamao_pantalla(Integer.parseInt(jComboBox2.getSelectedItem().to
String()));

}

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt)
{
jLabel5.setText("Marca: " + ObjTV.getMarca());
jLabel6.setText("Modelo: " + ObjTV.getModelo());
jLabel7.setText("Tipo: " + ObjTV.getTipo());
jLabel8.setText("Pulgadas: " + ObjTV.getTamao_pantalla());
}





ELECTIVA - TELEMTICA Y REDES III

2014-I Ing. Nstor Ral Suarez P.
Pgina 8 de 14

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {

switch (jComboBox3.getSelectedItem().toString())
{
case "Encender":
{
jLabel10.setText(ObjTV.Encender());
break;
}
case "Apagar":
{
jLabel10.setText(ObjTV.Apagar());
break;
}
case "CambiarCanal":
{
jLabel10.setText( ObjTV.CambiarCanal());
break;
}
case "SubirVolumen":
{
jLabel10.setText(ObjTV.SubirVolumen());
break;
}
case "BajarVolumen":
{
jLabel10.setText(ObjTV.BajarVolumen());
break;
}
default:
{
jLabel10.setText("Seleccione Una Funcionalidad");
break;
}
}
}



















ELECTIVA - TELEMTICA Y REDES III

2014-I Ing. Nstor Ral Suarez P.
Pgina 9 de 14

EJERCICIO 2. (P.O.O - Herencia y Polimorfismo):

Desarrollar en JAVA un Programa Orientado a Objetos donde aplique los conceptos de Herencia y
Polimorfismo para dar solucin a los siguientes requerimientos:

1. Calcular el Volumen de un Cono
2. Calcular Volumen de una Esfera

SOLUCIN

1. Cree un nuevo proyecto Java JavaApplication, y distribyalo tal y come se observa a
continuacin













2. Dentro del paquete llamado presentacin en el archivo del JFrame llamado IGUPrincipal.java
disee una I.G.U tal y como se muestra a continuacin



















Nota: Las imgenes corresponden al mismo formulario






ELECTIVA - TELEMTICA Y REDES III

2014-I Ing. Nstor Ral Suarez P.
Pgina 10 de 14

3. En el archivo llamado HerenciaPoliMorfismo.java agregue las siguientes lneas de cdigo
dentro del mtodo Main:

public static void main(String[] args) {
IGUPrincipal ObjIGU = new IGUPrincipal();
ObjIGU.setVisible(true);
}

4. Se propone la siguiente distribucin de clase como alternativa de solucin al problema
propuesto


5. Dentro del paquete llamado Logica ubique cada bloque de cdigo para escribir las
instrucciones segn se muestra a continuacin:


1. Clase Operaciones:

public class Operaciones {
private double numero1;
private double numero2;
protected double resultado;

public void SetNumero1(double _numero1)
{ numero1 = _numero1; }
public double GetNumero1()
{ return numero1; }

public void SetNumero2(double _numero2)
{ numero2 = _numero2; }
public double GetNumero2()
{ return numero2; }


ELECTIVA - TELEMTICA Y REDES III

2014-I Ing. Nstor Ral Suarez P.
Pgina 11 de 14

public void SetResultado(double _resultado)
{ resultado = _resultado; }
public double GetResultado()
{ return resultado; }

public void Sumar()
{ resultado = numero1 + numero2; }

public double Sumar(double num1, double num2)
{ return (num1 + num2); }

public double Restar()
{ return (numero1 - numero2);}

public void Restar(double num1, double num2)
{resultado = numero1 - num2;}

public double Multiplicar(double num1, double num2)
{ return (num1 * num2); }

public double Multiplicar(double num1, double num2, double num3)
{ return (num1 * num2 * num3); }

public double Dividir(double num1, double num2)
{ return num1/num2; }

public double CalcularPotencia(double base, double exponente)
{ return (Math.pow(base,exponente)); }
}



2. Clase Poligono:

public class Poligono extends Operaciones {

protected double radio;
protected double volumen;

public void SetRadio(double _radio)
{this.radio = _radio;}

public double GetRadio()
{return radio;}

public double GetVolumen()
{return volumen;}







ELECTIVA - TELEMTICA Y REDES III

2014-I Ing. Nstor Ral Suarez P.
Pgina 12 de 14

public void CalcularVolumen(double h) //volumenCono= "Pi*r^2*h/3"
{
double numero1 = Dividir(Math.PI, 3);
double numero2 = CalcularPotencia(radio,2);
volumen = Multiplicar(numero1, numero2, h);
}

public double CalcularVolumen() // calculoEsfera = "4/3*Pi*r^3"
{
double numero1 = Multiplicar(4,Dividir(Math.PI, 3));
double numero2 = CalcularPotencia(radio, 3);
return Multiplicar(numero1,numero2);
}

}


3. Clase Cono:

public class Cono extends Poligono {

private double altura;

public void SetAltura(double _altura)
{altura = _altura;}

public double CalcularVolumenCono()
{
CalcularVolumen(altura);
return GetVolumen();
}
}



4. Clase Esfera:

public class Esfera extends Poligono{

public double CalcularVolumenEsfera()
{
return CalcularVolumen();
}
}









ELECTIVA - TELEMTICA Y REDES III

2014-I Ing. Nstor Ral Suarez P.
Pgina 13 de 14

6. Dentro del paquete llamado presentacin en el archivo del JFrame llamado IGUPrincipal.java
Ubique cada bloque de cdigo (Controles y Eventos) para escribir las instrucciones segn se
muestra a continuacin:

package Presentacion;

import Logica.Cono;
import Logica.Esfera;
import javax.swing.JOptionPane;


public class IGUPrincipal extends javax.swing.JFrame {

public IGUPrincipal() {
initComponents();
}


private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

Cono ObjCono = new Cono();

ObjCono.SetRadio(Double.parseDouble(jTextField1.getText()));
ObjCono.SetAltura(Double.parseDouble(jTextField2.getText()));

String Respuesta = "El volumen del cono es: " + ObjCono.CalcularVolumenCono();
JOptionPane.showMessageDialog(null, Respuesta);
jLabel3.setText(Respuesta);
}

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
Esfera ObjEsfera = new Esfera();

ObjEsfera.SetRadio(Double.parseDouble(jTextField3.getText()));

String Respuesta = "El volumen de la esfera es: " + ObjEsfera.CalcularVolumenEsfera();
JOptionPane.showMessageDialog(null, Respuesta);
jLabel5.setText(Respuesta);
}
}












ELECTIVA - TELEMTICA Y REDES III

2014-I Ing. Nstor Ral Suarez P.
Pgina 14 de 14


TALLER

1. Aplicar a travs de un ejercicio prctico los conceptos fundamentales de la programacin
orientada a objetos tales como: Clase, Objeto, Constructor y Encapsulamiento. En dicho
ejercicio deben disear clases que representen a: Una Persona

Se debe hacer una abstraccin donde se obtenga el conjunto de atributos y mtodos que
permitan representar computacionalmente a una persona por medio de una clase.
En todas las clases debe aplicar el concepto de encapsulamiento, es decir, debe definir los
atributos como privados y crear los mtodos pblicos necesarios para acceder a ellos
(Mtodos Set y Mtodos Get).
Se debe implementar una I.G.U donde se maneje el estado de los objetos (Asignar y Leer
atributos) y se verifique su comportamiento (llamar mtodos).


2. Complemente el ejercicio 2 agregando el clculo de rea y volumen de las figuras geomtricas
Cuadrado y Cubo

Das könnte Ihnen auch gefallen