Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
PAMPAS - TAYACAJA
FORMACIN PROFESIONAL TECNOLGICA
SEMANAS
13, 14, 15
I UNIDAD
Carrera Profesional: Computacin e Informtica
Semestre: III
Seccin: nica
OBJETOS Y CLASES
1.
DEFINICION DE CLASE:
Una clase es como una plantilla de la cual se pueden crear varios objetos
con las mismas caractersticas y funciones.
o Una clase es un modelo (diseo) de objeto
o Define los atributos y operaciones del objeto
o La clase usan el encapsulamiento para forzar la abstraccin
Pgina
2.
Ejemplo 1:
public class Empleado
{
Cuerpo de la clase
}
3.
DEFINICIN DE OBJETO:
Objeto es una instancia de la clase, los objetos tienen las siguientes
cualidades (identidad los objetos se distinguen del uno del otro,
comportamiento pueden realizar tareas, estado almacena informacin
que vara a travs del tiempo).
4.
DECLARACION DE OBJETOS:
Para crear un objeto o una instancia de esta clase tenemos dos
alternativas, la primera en la misma lnea de declaracin, tal como se ilustra
a continuacin.
Sintaxis 1:
Pgina
NombreClase NombreVariable;
Sintaxis 2:
NombreClase NombreVariable = new NombreClase ( )
Ejemplo 2:
Empleado A1 = new Empleado ();
5.
ASIGNACION DE OBJETOS
Cuando creamos un objeto internamente existe un puntero, al que no
tenemos acceso, pero cuando asignamos objetos lo que realmente estamos
asignando son las direcciones de memoria donde estn definidos los
objetos.
Ejemplo 3:
Empleado A1 = new Empleado ();
Pgina
Empleado A2 = A1;
6.
ATRIBUTOS
Los atributos son las caractersticas individuales que diferencian un
objeto de otro y determinan su apariencia, estado u otras cualidades. Los
atributos se guardan en variables denominadas de instancia, y cada objeto
particular puede tener valores distintos para estas variables.
Sintaxis:
[TipoAcceso] TipoNombre
Clase Articulo
Pgina
// Asignacin de datos
art1.codigo = 100;
art1.nombre = "Televisor";
art1.precio = 500; art2.codigo = 200;
art2.nombre = "Plancha";
art2.precio = 80;
art3 = art1;
// Imprimir artculos
System.out.println(art1.codigo + "-" + art1.nombre + "-" + art1.precio);
System.out.println(art2.codigo + "-" + art2.nombre + "-" + art2.precio);
System.out.println(art3.codigo + "-" + art3.nombre + "-" + art3.precio);
}
}
Pgina
artculos.
Analice ahora Ud. cada lnea del programa anterior y modifique para 5
7.
COMPORTAMIENTO METODOS
El comportamiento de los objetos de una clase se implementa
mediante funciones miembro o mtodos. Un mtodo es un conjunto de
instrucciones que realizan una determinada tarea y son similares a las
funciones de los lenguajes estructurados. Del mismo modo que hay
variables de instancia y de clase, tambin hay mtodos de instancia y de
clase. En el primer caso, un objeto llama a un mtodo para realizar una
determinada tarea, en el segundo, el mtodo se llama desde la propia clase.
Sintaxis
[modificador] tipo NombreMetodo(tipo parm1, tipo parm2, tipo parm3, . . .)
{
declaraciones de variables locales;
//...sentencias
[return[ (]expresin[ )]];
}
Ejemplo 5:
Clase Calculadora
public class Calculadora
{
Pgina
Pgina
Ejemplo 6: En
Clase Calculadora
public class Calculadora
{
public int suma (int n1, int n2)
{
return (n1 + n2);
}
public int producto (int n1, int n2)
{
return (n1 * n2);
}
}
Para ilustrar el uso de la clase Calculadora, se crea el programa
aplicacalcu.
public class aplicacalcu
{
public static void main(String[ ] args)
{
int a = 15;
int b = 8;
Calculadora obj = new Calculadora();
System.out.println("n1 = " + a);
System.out.println("n2 = " + b);
System.out.println("Suma = " + obj.suma(a,b));
System.out.println("Producto = " + obj.producto(a,b));
Pgina
Ejemplo 7:
Empleado
Notacin UML:
CLASE EMPLEADO
public class Empleado
{
private String Nombre;
private String Apellido;
private int Edad;
public void Registrar(String Nombre, String Apellido, int Edad)
{
this.Nombre = Nombre;
this.Apellido= Apellido;
this.Edad = Edad;
}
public void Mostrar()
{
System.out.println("Nombre "+ Nombre);
System.out.println("Apellido"+ Apellido);
System.out.println("Edad"+ Edad);
}
}
CLASE PRINCIPAL
public class principal
{
public static void main(String[ ] args)
{
Empleado A1= new Empleado();
A1.Registrar("Juan","Hurtado", 22);
A1.Mostrar();
Pgina
10
8.
objeto_de_la_clase.miembro_pblico_no_esttico
clase.miembro_pblico_esttico
La
segunda
representacin se
ampliar
cuando
veamos
Pgina
mbito de la clase.
11
no
se
pone
ningn
modificador
de
acceso
import java.io.*;
class Linea
{
//coordenada 1er punto, modificador de acceso:package
int x1,y1;
Pgina
int x2,y2;
12
//lectura
System.out.println("Introduzca 1er punto: ");
System.out.print("x1: ");
sdato = flujoE.readLine(); // leer una lnea de texto
x1=Integer.parseInt(sdato);//convierte cadena
System.out.print("y1: ");
sdato = flujoE.readLine(); // leer una lnea de texto
y1=Integer.parseInt(sdato);//convierte cadena
Pgina
{ }
13
// Archivo LineaAppl.java
import java.io.*;
class LineaAppl
{
public static void main (String[] args)
{
//Creacin de un objeto recta: r1
Linea r1 = new Linea();
r1.leer();
r1.escribir();
}
Pgina
14
EJEMPLO 9:
class Linea1
{
//coordenada 1er punto, modificador de acceso:package
int x1,y1;
//coordenada 2do punto, modificador de acceso:package
int x2,y2;
//lectura
System.out.println("Introduzca 1er punto: ");
Pgina
15
System.out.print("x1: ");
x1=Integer.parseInt(sdato);//convierte cadena
System.out.print("y1: ");
sdato = flujoE.readLine(); // leer una lnea de texto
y1=Integer.parseInt(sdato);//convierte cadena
// Archivo Linea1Appl.java
import java.io.*;
{
public static void main (String[] args)
Pgina
16
class Linea1Appl
{
//Creacin de un objeto recta: r1
Linea1 r1=new Linea1();
r1.leer();
r1.escribir();
}
}
EJEMPLO 10:
import java.io.*;
class Linea2
{
//coordenada 1er punto, modificador de acceso:privado
private int x1,y1;
//los datos miembro solo sern accedidos por sus mtodos por ser privados
Pgina
17
System.out.print("y1: ");
sdato = flujoE.readLine(); // leer una lnea de texto
y1=Integer.parseInt(sdato);//convierte cadena
System.out.print("y2: ");
sdato = flujoE.readLine(); // leer una lnea de texto
y2=Integer.parseInt(sdato);//convierte cadena
}
Pgina
{}
18
import java.io.*;
class Linea2Appl
{
public static void main (String[] args)
{
//Creacin de un objeto recta: r1
Linea2 r1=new Linea2();
// uso del objeto r1 como el modificador de acceso de los mtodos
//de la clase Linea
// es public entonces main() puede utilizar los mtodos leer() y
//escribir()
r1.leer();
r1.escribir();
}
}
9.
OCULTANDO DATOS
del modo que le corresponde, por ejemplo solo lectura, solo escritura o
ambos.
Pgina
que el usuario solo debe tener acceso a los datos que son de su inters y
19
Pgina
20
Clase Articulo
public class Articulo
{
private int codigo;
private String nombre;
private double preCosto;
private double preVenta;
public void setCodigo(int nCodigo)
{
codigo = nCodigo;
}
public void setNombre(String sNombre)
{
nombre = sNombre;
}
public void setPreCosto(double nPreCosto )
{
preCosto = nPreCosto;
preVenta = preCosto * 1.4;
}
public int getCodigo()
{
return codigo;
}
public String getNombre()
{
return nombre;
}
public double getPreCosto()
{
Pgina
21
return preCosto;
10. SOBRECARGA
La sobrecarga permite definir dos ms mtodos que comparten el
Java.
Pgina
22
nombre, pero la declaracin de sus parmetros debe ser diferente. Esta una
EJEMPLO 12:
Pgina
23
Clase aplicaconvert
public class aplicaconvert
{
public static void main(String[] args)
{
miconvertidor obj = new miconvertidor();
int n1 = 500;
long n2 = 100000;
float n3 = 456.459834f;
double n4 = 8934.42573485720;
Pgina
24
11. CONSTRUCTORES
Los
constructores
permiten
inicializar
un
objeto
Sintaxis
public nombre_clase (lista_de_parmetros )
{
// instrucciones
}
El constructor se invoca cuando creamos el objeto, junto con el operador
new.
Sintaxis
nombre_clase nombre_variable;
nombre_variable = new nombre_clase( lista_de_argumentos );
EJEMPLO 13:
En
Pgina
25
Clase Empleado
public class Empleado
{
// Atributos:
private String nombre;
private double sueldo;
private int edad;
// Constructor:
public Empleado()
{
nombre = "Claudia";
sueldo = 5000.00;
edad = 22;
}
// Operaciones:
public String getNombre()
{
return this.nombre;
}
public double getSueldo()
{
return this.sueldo;
}
public int getEdad()
{
return this.edad;
}
Pgina
26
constructores
pueden
resultar
ms
tiles
si
tienen
EJEMPLO 14:
Pgina
27
Clase Empleado1
public class Empleado1
{
// Atributos:
private String nombre;
private double sueldo;
private int edad;
// Constructor:
public Empleado1(String nombre, double sueldo, int edad)
{
this.nombre = nombre; this.sueldo = sueldo; this.edad = edad;
}
// Operaciones:
public String getNombre()
{
return this.nombre;
}
public double getSueldo()
{
return this.sueldo;
}
public int getEdad()
{
return this.edad;
}
Pgina
28
EJEMPLO 15:
En este ejemplo se ilustra cmo construir clases con constructores
Figura.
Pgina
29
Clase Empleado2
public class Empleado2
{
// Atributos:
private String nombre;
private double sueldo;
private int edad;
private static final double SUELDO_BASE = 5000.00;
// Constructores:
public Empleado2(String nombre, double sueldo, int edad)
{
this.nombre = nombre;
this.sueldo = sueldo;
Pgina
30
this.edad = edad;
Pgina
31
Pgina
32
SEMANA
16
I UNIDAD
Carrera Profesional: Computacin e Informtica
Semestre: III
Seccin: nica
HERENCIA
1.
DEFINICION DE HERENCIA:
La
herencia
es
la
caracterstica ms
sobresaliente de
la
2.
FUNDAMENTOS
Por si misma, la idea de objeto es una herramienta ms que buena.
Permite empaquetar datos y funcionalidad, de manera que es posible
representar cualquier idea del universo del problema mediante clases.
Pgina
33
superclase, y
es
Ejemplo 16:
de
una
clase
base
de
nombre
Pgina
34
CalculadoraBase.
continuacin
tenemos
la
implementacin
de
la
clase
continuacin
tenemos
la
implementacin
de
la
clase
Pgina
35
Clase Calculadora1.java
public class Calculadora1 extends CalculadoraBase
{
public int factorial(int n)
{
int f = 1;
while(n>1)
{
f=f*
n--;
}
return f;
}
Pgina
36
3.
IMPLEMENTANDO LA HERENCIA
Pgina
37
Sintaxis
class nombre_subclase extends nombre_superclase
{
// implementacin
}
Ejemplo de herencia.
Por
ejemplo,
en
la
Figura
tenemos
una
clase
base
Pgina
//Implementacin
38
4.
class Demo
{
private int n;
public void setN( int n )
{
this.n = n;
}
}
En esta clase tenemos una variable privada n, y un mtodo
setN para asignar un valor a la variable, pero resulta que el
parmetro del mtodo tiene el mismo nombre que la variable de
la clase, por lo tanto, la nica manera de hacer referencia a la
variable de la clase es mediante la palabra clave this, tal como se
ilustra en el script.
Pgina
39
de la misma clase.
Ejemplo 17: En
Clase Empleado.java
public class Empleado
{
// Atributos:
private int codigo;
private String nombre;
private Double sueldo;
// Constructores:
public Empleado(int codigo, String nombre, Double sueldo)
{
this.codigo = codigo;
this.nombre = nombre;
this.sueldo = sueldo;
}
public Empleado(String nombre)
{
this( 1000, nombre, 3500.00 );
}
// operaciones
public String toString()
}
}
Pgina
40
Clase prog15.java
Pgina
41
Pgina
42
Ejemplo 18:
Pgina
43
Clase Trabajador.java
public class Trabajador extends Persona
{
// Operaciones:
public Trabajador(int codigo, String nombre, Double sueldo, Double bonificacion)
{
super( codigo, nombre, sueldo + bonificacion );
}
public String toString()
{
return ( "Trabajador: " + super.toString() );
}
}
El constructor de esta clase invoca al constructor de la clase Persona a
travs de la palabra super, se est pasando la suma del sueldo y la
bonificacin como sueldo del trabajador.
}
}
Pgina
44
System.out.println();
System.out.println( tra.toString() + "\n" );
System.out.println( doc.toString() );
}
}
Pgina
45
Ejemplo 19:
Pgina
46
Clase Crculo.java
Adems
esta
clase
sobrescribe
el
mtodo
anterior
Pgina
47
Clase Polgono.java
Pgina
48
c.imprimirInformacion();
t.imprimirInformacion();
Pgina
49
Programa las dos clases. En cada una de ellas, aade un main que cree
dos objetos.
Clase Cuadrado.java
public class Cuadrado extends Poligono
{
public Cuadrado(double longitudLado)
{
super("Cuadrado",4,longitudLado);
}
c1.imprimirInformacion();
c2.imprimirInformacion();
Pgina
50
Clase Triangulo.java
t1.imprimirInformacion();
t2.imprimirInformacion();
}
Pgina
51