Sunteți pe pagina 1din 103

Conceptos Fundamentales de la Programacin Orientada a Objetos

Los Lenguajes de Programacin

Son las herramientas que permiten elaborar los programas ejecutables por el procesador Estos programas pueden formar parte de las aplicaciones de los usuarios o bien del SO
Se escriben por medio de instrucciones para realizar algunas tareas De forma ms tcnica podramos decir

Es el conjunto de smbolos con ciertas reglas o normas, que se usan para expresar algoritmos en una notacin formal

Historia de los Lenguajes de Programacin

1946 Konrad Zuse, un ingeniero Alemn mientras trabajaba en los Alpes de Bavaria, desarroll el lenguaje Plankalkul, el cual, fue aplicado entre otras cosas para jugar al ajedrez 1949 Aparece Short Code, que viene a ser el primer lenguaje que fue usado en un dispositivo de cmputo electrnico 1951 Grace Hopper, trabajando para Remington Rand, comenz el trabajo de diseo del primer compilador conocido ampliamente, el A-0, el cual, al ser liberado por la compaa en 1957, lo hizo con el nombre de MATH-MATIC

1952 Alick E. Glennie, durante su tiempo libre en la Universidad de Manchester, concibe un sistema de programacin llamado AUTOCODE, que viene a ser un compilador muy rudimentario
1957 aparece FORTRAN (Formula Translation) sistema traductor de frmulas matemticas. Fue desarrollado por un equipo, al frente del cual se encontraba John Backus

Evolucin de los

Lenguajes Imperativos y Orientados a Objetos

Evolucin de los

Lenguajes Imperativos y Orientados a Objetos

Lenguajes Muy Usados en su pocas

BASIC (Beginners All-purpose Symbolic Instruction Code) Cdigo de instrucciones simblicas de uso general para principiantes. El ms popularizado dentro del mundo de los microordenadores
Desde su nacimiento, en el ao 1964, se han desarrollado numerosas versiones de BASIC

COBOL (Common Business Oriented Language) Es el lenguaje de gestin mas generalizado


Su uso estaba encaminado fundamentalmente a miniordenadores y grandes equipos

PASCAL La caracterstica primordial del Pascal es la forma en que se estructuran los programas
Su estructura permite generar programas comprensibles y claros

Clasificacin de los Lenguajes

de Programacin
Lenguajes maquina Lenguajes de bajo nivel (ensamblador) Lenguajes de alto nivel

Lenguaje Maquina

Proporcionan instrucciones especficas para un determinado tipo de hardware Su escritura es directamente entendible por la computadora Sus Instrucciones son en Bits

Lenguajes de Bajo Nivel


Se caracterizan por instrucciones ms sencillas de recordar Dependen del tipo de Computadora Se traducen a lenguaje maquina por un programa al que se denomina Ensamblador. Ej. Instrucciones ADD, SUB, DIV

Lenguajes de Alto Nivel


Se caracteriza por sentencias muy fciles de recordar No dependen del tipo de computadora Se traducen a lenguaje maquina por unos programas denominados compiladores o interpretes Los programas escritos se llaman programas fuente y el programa traducido, programa objeto o cdigo objeto Este cdigo queda ligado al hardware y al sistema operativo Son Independientes de la Computadora

Paradigmas de Programacin

Imperativos

Son aquellos lenguajes, que basan su funcionamiento en un conjunto de instrucciones secuenciales, las cuales, al ejecutarse, van alterando las regiones de memoria donde residen todos los valores de las variables involucradas en el problema que se plantea resolver Es decir, se cambia progresivamente el estado del sistema, hasta alcanzar la solucin del problema

Ejemplo de Lenguaje Imperativo para

calcular el factorial de un nmero positivo x


READ(x); fac := 1 ; for i = 1 to x { fac := fac * i ; }
WRITELN(fac);

Declarativos

En esta categora, la forma de razonar ms que el cmo?, desarrollar paso a paso un proceso, nos interesa el qu? deseamos obtener a travs del programa Ej. SQL, el cual es utilizado para interactuar con la informacin de bases de datos, concentrndose, slo en los resultados que van a ser obtenidos Dejndole al traductor la tarea de cmo llegar a ellos y presentrnoslos

Ej: SELECT * FROM alumnos WHERE sexo = "M" ORDER BY edad

Funcionales

Basados en funciones, las cuales se representan mediante expresiones, que nos permiten obtener ciertos resultados a partir de una serie de argumentos Expresiones estn formadas por un conjunto de trminos, que a su vez pueden encapsular otras expresiones, para con la evaluacin de todas ellas, llegar a la solucin deseada Ejemplo de este Lenguaje son: LISP, ML

Lgicos

Se basan en el clculo de predicados, la cual es una teora matemtica que permite entre otras cosas, lograr que un ordenador, basndose en un conjunto de hechos y de reglas lgicas, pueda derivar en soluciones inteligentes Ejemplo el Lenguaje PROLOG

Orientados a Objetos

Se concentra en los objetos que van a manipular, y no en la lgica requerida para manipularlos Es una extensin de los lenguajes imperativos Ejemplos de Lenguajes son C++, JAVA, C# Ejemplos de objetos: estudiantes, coches, casas Cada uno de los cuales tendr ciertas funciones (mtodos) y ciertos valores que los identifican, teniendo adems, la facultad de comunicarse entre ellos a travs del paso de mensajes

Paradigma Orientado a Objetos

Metodologa de diseo de Software que modela la caractersticas de objetos reales a travs de la utilizacin de clases y objetos Persigue obtener una mayor representacin de la realidad La idea es combinar datos (estado) y funciones (comportamientos) en una sola unidad Se basa en cinco conceptos fundamentales:
Clase,

Objeto, Encapsulamiento, Herencia y Polimorfismo

Clases, Objetos y Mensajes

Clase
Es

una descripcin exacta que abarca a un conjunto de objetos Es un molde o prototipo donde se definen los atributos (variables) y las acciones (mtodos) comunes de una entidad Permiten crear mltiples objetos con caractersticas similares

Clases, Objetos y Mensajes

Objeto
Es

un elemento perceptible que aparece perfectamente diferenciado a nuestra conciencia Poseen propiedades que los identifican de manera nica, contienen procesos (mtodos) que puede ejecutar en cualquier instante y eventos externos ante los cuales puede programar su comportamiento Tambin se les conoce como instancias Tiene estado y comportamiento Estado: se mantiene en variables Comportamiento: se implementa mediante mtodos

Objeto
Controla

la manipulacin de su estado mediante sus mtodos

Ejemplos:

Perro Estado: nombre, raza, color Comportamiento: ladrar, correr


Bicicleta Estado: pedales, ruedas Comportamiento: frenar, acelerar

Identificacin de Objetos
Para

esto se debe examinar la descripcin del problema Los objetos pueden caer dentro de categoras como Cosas tangibles Roles o Papeles representados por personas Gerente, Cliente Organizaciones Empresa, Divisin Incidentes Vuelo, Accidente, Suceso Interacciones Compras, Matrimonios Lugares Sala de Embarque, Muelle

Comunicacin entre Objetos


Se

logra a travs de Mensajes Un mensaje puede alterar el estado de un objeto (sus variables internas) Un mensaje contiene: Identificador del objeto Identificador del mtodo Parmetros

Programa Orientado a Objeto


Cuando

se crea un programa O.O. ocurren tres

sucesos Se crean objetos Los mensajes se mueven de un objeto a otro Cuando los objetos no son utilizados se borran y se libera la memoria

Elementos Adicionales
Paquetes

(Packages) Con estos se obtiene la posibilidad de agrupar las clases en unidades independientes Potenciando de manera significativa el desarrollo de aplicaciones complejas

Ventajas de la Orientacin a Objetos

Flexibilidad Al definir clases se establecen mdulos independientes, a partir de los cuales se pueden definir nuevas clases Reusabilidad Al tener definida una entidad particular para una aplicacin no es necesario volver a escribirla reutilizando la entidad con lo cual se ahorra codigo

Mantenibilidad Facilidad para mantener las clases de una aplicacin por su modularidad Extensibilidad Gracias a las ventajas anteriores se pueden agregar con facilidad nuevas funcionalidades a las aplicaciones

Algunas Desventajas de la Orientacin

a Objetos

Hay que ser muy cuidadosos en la creacin de los objetos, ya que de ello depender el xito de nuestro proyecto. Un error en estas primeras definiciones podra resultar catastrfico. Precisamente el secreto de esta tcnica est en la correcta definicin inicial de los objetos

Algunas Desventajas de la Orientacin

a Objetos
Los estndares en este tipo de tcnicas estn en continua evolucin, lo que exige una actualizacin permanente Los analistas, diseadores y desarrolladores del proyecto deben conocer las reglas del juego y poseer suficiente experiencia en programacin

Caractersticas de la Orientacin a

Objetos

Abstraccin
Se

refiere a la representacin de los objetos Separa las propiedades ms importantes de un objeto, de las que no lo son Por medio de esta se definen las caractersticas esenciales de un objeto del mundo real, los atributos y comportamientos que lo definen como tal, para despus modelarlo en un objeto de software

Modularidad
Se

basa en el concepto de mdulos o componentes independientes (clases)


modificar las caractersticas de un componente sin necesariamente afectar a los dems mdulos

Permite

Encapsulamiento
Propiedad

que permite asegurar que la informacin de un objeto sea desconocida para los dems objetos de la aplicacin
conoce tambin como ocultamiento de la informacin

Se

Permite

proteger a los objetos de ser manipulados de forma inadecuada por objetos externos

Encapsulamiento
Interna:

La informacin que necesita el objeto para operar y que es innecesaria para los dems objetos de la aplicacin. Estos atributos se denominada privados y tienen como marco de aplicacin nicamente a las operaciones asociadas al objeto Externa: La que necesitan el resto de los objetos para interactuar con el objeto que definimos . Estas propiedades se denominan pblicas y corresponde a la informacin que necesitan conocer los restantes objetos de la aplicacin respecto del objeto definido para poder operar

Jerarqua (Herencia)
Propiedad

que permite a partir de clases, construir nuevas clases (superclase / subclase), permitiendo heredar sus caractersticas (atributos y acciones)
como objetivo la reutilizacin de cdigo anteriormente desarrollado

Tiene

Jerarqua (Herencia)

Clase Padre

Clase Hija

Clase Hija 2

Clase Hija

Jerarqua (Herencia)
Herencia

Simple Tipo de herencia en la cual un objeto (clase) puede tener solo un ascendente
Mltiple Tipo de herencia donde un objeto puede tener una o ms superclases

Herencia

Polimorfismo
Se

basa en que los componentes o entidades puedan responder de manera distinta ante diversas invocaciones
se consigue a travs de nombrar un mtodo de una clase con un mismo nombre pero con diferentes implementaciones

Esto

Ejemplos

Clases, Objetos y Mensajes

Clase

class Rectangulo { int ancho; Atributos int alto; }

Ejemplos

Clases, Objetos y Mensajes

Objeto

{ Rectangulo r1; // declaracin r1= new Rectangulo();

Ejemplos

Clases, Objetos y Mensajes

Estado de los objetos

{ r1.ancho= 50; r1.alto=10;

Ejemplos

Clases, Objetos y Mensajes

Mensaje de los objetos

{ r1.calcularArea(); }

Ejemplos

Mtodo y Constructor

Mtodo (Estructura)

void calcularArea() { area=ancho*alto; }

Ejemplos

Mtodo y Constructor

Constructor

class Rectangulo { int ancho, alto; Rectangulo (int a, int b) { ancho=a; alto=b; } }

Introduccin a Java

Java

Lenguaje Orientado a Objetos Desarrollado por SunMicrosystems Su Filosofa y Estructura


Es

fundamentada en C++

Es reducido, sencillo y portable a diferentes plataformas y SO

Historia

Desarrollado en 1991 como parte de un proyecto de Investigacin, buscando elaborar software para dispositivos electrnicos Utilizado en varios proyectos dentro de SunMicrosystems Se integr con HotJava (Navegador Experimental desarrollado en 1994) En el 97 se crea la primera versin comercial JDK 1.1 1998 SunM lanza la plataforma Java 2

Caractersticas de Java

Tamao Reducido
Libreras

de Clases, Documentacin, Programas para compilar, interpretar y depurar aplicaciones. Ocupan un espacio inferior a 10Mb

Independiente de la Plataforma
Significa

que un programa escrito en un determinado SO, se ejecuta sin problema en otra plataforma sin hacer modificaciones a su cdigo La independencia es posible por su JVM

Interpretado
Una

vez compilado se utiliza un intrprete para ejecutar un programa (costo por portabilidad)

Caractersticas de Java

Seguro
Los

programas Applets, no acceden a los recursos del PC, es decir no pueden modificar archivos ni acceder a recursos internos del sistema Seguridad al no transportar virus Naturalmente, la seguridad absoluta es imposible, pero aunque se tengan problemas de seguridad en Java, no producen trastornos apreciables

Multitarea (Multihilo)
Pensado

para desarrollar procesos concurrentes, es decir que puede ejecutar simultneamente muchos procesos, manteniendo independencia entre ellos. Ejemplos: Juegos, Simuladores, APP de control industrial

Caractersticas de Java

Distribuido
Esta

diseado para facilitar la construccin de APP distribuidas mediante una coleccin de clases para uso en red (Maneja protocolos TCP/IP)

Alto Desempeo
Java

proporciona compiladores JIT (Just in Time) que permiten igualen en rendimiento de tiempo de ejecucin a los lenguajes convencionales compilados
tiempo de ejecucin, el entorno Java puede extenderse mediante enlace a clases que pueden estar localizadas en servidores remotos o en una red (enlace y cargas dinmicas de clases)

Dinmico
En

Caractersticas de Java

Robusto
Consta

con una tipificacin fuerte, lo cual es verificado en tiempo de compilacin Proporciona manejo de errores en tiempo de ejecucin, con lo cual se pueden captar y manipular errores que puedan surgir durante la ejecucin Permite construir aplicaciones sofisticadas

Tipos de Aplicaciones

Java permite crear dos tipos de APP


Convencionales:

Aplicaciones Autnomas, tal cual como si fuesen escritas en C Aplicacin que solo se ejecuta dentro de un navegador de Internet y permiten la interaccin con el usuario

Applets:

Maquina Virtual de Java

JVM (Java Virtual Machine)


Es

un emulador de Hardware y SO, que permite interpretar el cdigo de byte (bytecode) generado por compilador de Java Es el sistema de ejecucin de programas que permite la portabilidad de Java Existen distintas JVM disponibles para variadas plataformas

Proceso de desarrollo en Java


Genera bytecode

Programa Java Public class { ..}

Compilador

JVM Windows

JVM Solaris

JVM Linux

Versiones de Java

J2SE
Edicin

estndar que contiene todo lo necesario para empezar a programar aplicaciones profesionales

J2EE
Incluye

a SE y agrega gran cantidad de funcionalidades enfocadas al desarrollo de grandes aplicaciones empresariales

J2ME
Edicin

reducida, que permite desarrollo de aplicaciones incrustadas, es decir, muy especificas sobre chips de pequeos recursos Ejemplo: controlador de lavadora

IDE (Entorno de Desarrollo Integrado)

La construccin de programas se simplifica cuando se utiliza el IDE el cual permite editar, compilar, ejecutar y depurar las aplicaciones de manera automtica Ejemplos:
NetBeans

Otros: JCreator Visual

J++

Orden lgico de la estructura de un programa en Java

Estructura General de un programa en Java


1 2 3 4 5 6 7 8 9 10 11 12 13

import java.lang.*;

// declaracin importando paquetes

public class ProgramaEjemplo // nombre clase principal { public static void main(String[ ] args) // mtodo para funcin { //declaraciones locales //sentencias System.out.println(Texto de Ejemplo); // salida info } }

Consideraciones Iniciales
En

Java los programas empiezan con una clase Ej: class ProgramaEjemplo { Todas las sentencias terminan con (;) punto y coma Java es case sensitive es decir diferencia entre minsculas y maysculas Es fuertemente tipificado, es decir que se deben declarar las variables y su tipo antes de poder utilizarlas

Identificadores
Son

los nombres que se asignan a variables, mtodos o clases Secuencia limitada de caracteres (alfanumricos) Solo pueden comenzar con un carcter alfabtico, pueden incluir el carcter _ o $ No se pueden utilizar espacios

Palabras Reservadas
Son

palabras con propsito especial y que no pueden ser utilizadas como identificadores
abstract boolean break byte double else extends final int interface long native super switch syncronized this

case
catch char class const default do

finally
float for goto if import instanceof

new
package private protected public short stactic

throw
throws transient try void

continue implements return

volatile
while

Comentarios
Son

las notas que permiten documentar el codigo de un programa Para esto se usan al empezar la lnea los smbolos: // ( comentario de lnea ) /* */ ( comentario multilnea )

Tipos de Datos
Son

datos bsicos, agrupados de acuerdo al tipo de informacin que admiten Los grupos son: nmeros enteros, reales, caracteres, valores lgicos

Son

los que definen los posibles valores de una variable En Java todo es un objeto excepto los tipos de datos bsicos

Tipos de Datos

Tipo

Descripcin

Tamao
1 bit 16 bit 8 bit 16 bit 32 bit

boolean Valor lgico char Carcter byte short int Entero muy pequeo Entero pequeo Entero normal

long float double

Entero grande 64 bit Nmero real de precisin simple 32 bit Nmero real de precisin doble 64 bit

Variables
Una

variable es un ejemplo concreto, de un tipo de

dato La variable se define anteponiendo al nombre de esta (Identificador) el tipo al cual pertenece tipo de dato Identificador;
Ejemplos
int

edad; boolean encontrado; real area, lado;

Variables
Una

variable tiene un mbito definido por la visibilidad que tiene la variable en el programa delimitado por llaves {} (bloque)

void main(){ int edad;

Las

variables declaradas en un bloque pueden ser sobreescritas por variables declaradas en un subbloque

Int edad=10; if (cond){ string edad=diez; }

Variables
Variables

Locales Son aquellas que se declaran dentro de un mtodo y solo se pueden utilizar en este. Se conocen tambin como variables de mtodo Globales Son aquellas que se declaran dentro de la clase y pueden ser utilizadas por los distintos mtodos de la clase

Variables

Variables
class Ejemplo { // Variable global static int uno=100; public static void main(String[ ] args) { // Variable local int beta=3; proc(beta); }

Constantes
Es

una variable modificada cuyo valor permanece fijo o constante Se declaran anteponiendo la palabra final a la variable
Ejemplo

final

int edad = 27;

Operadores
Son

smbolos que se utilizan para construir expresiones complejas nos proporciona una coleccin amplia de operadores que se pueden utilizar para la manipulacin de datos

Java

Operadores

Aritmticos
Operador Nombre + Suma * / Resta Mul Div

Mod Operador Nombre && and || or ^ xor ! not

Lgicos

Operadores

Relacin
Operador > < >= <= == != Relacin Mayor que Menor que May o igual q Men o igual q Igual a Diferente de

Operadores

Asignacin
Operador Operacin = Asignacin ++ Incremento -Decremento += Suma y Asig -= Resta y Asig *= Mul y Asig /= Div y Asig %= Mod y Asig Ejemplo j=1 j ++; j --; j += 7; j -= 7; j *= x + 5; j /= x + 5; j %= 5; Cdigo Equi
j = j + 1;

j = j 1; j = j + 7; j = j 7; j = j * (x+5); j = j / (x+5); j = j % 5;

Operadores

Operador
()[] ! ++ */% +<< >> < <= > >= == != & ^

Orden de Precedencia

&&
|| ?: =

Conversin Tipos de Datos


Implcita Se

realiza al hacer la conversin de un tipo a otro. Para esto los datos tiene que ser: Dos tipos compatibles El tipo de variable de destino debe ser de un rango mayor a la variable a convertir Ejemplo: int i = 257; long d; d = i;

Conversin Tipos de Datos


Explicita Se

realiza cuando un tipo de dato no se puede asignar a otro por conversin implcita (tipo destino) valor Ejemplo: int i; double d=3,4; i = (int) d; // truncando parte decimal

Clases y Objetos

Definicin de una clase


class Persona // Nombre { String nombre; // Atributos int edad; void mostrar_datos() // Mtodo { System.out.println(Nombre: + nombre + \n Edad :+ edad); } }

Objetos
Una

vez que se define una clase, un programa puede contener una instancia de una clase, denominada objeto Se crea con el operador new, el cual permite reservar espacio en memoria Sintaxis:
nombre_clase nombre_objeto = new nombre_clase(parametros)
Se

pueden crear de dos formas: Establecer referencia y despus utilizar el operador Establecer referencia y utilizar el operador en la misma lnea
Ejemplo: Persona p; // referencia p = new Persona(); // creacin objeto o Persona p = new Persona();

Mtodos

Son funciones que pueden ser llamadas dentro o fuera de la clase Sintaxis:
public static retorno nombre_metodo (lista parametros) // retorno es tipo de dato { //variables locales //codigo //return (variable) }

Se utiliza el operador . para llamar a un mtodo Sintaxis:


nombre_obj.metodo(parametros);

Ejemplo de Clase y uso de Objeto


class Persona { String nombre; int edad; void mostrar_datos() { System.out.println(Nombre: + nombre + \n Edad :+ edad); } } public class Main { public static void main(String[] args) { Persona x = new Persona(); x.nombre = "Juan"; x.edad = 25; x.mostrar_datos(); } }

Entrada/Salida estndar de datos

Entrada Estndar
Es

el ingreso por teclado de datos, para esto se utiliza la clase System.in Esta clase implementa el mtodo read() para leer solo un carcter Para ingresar una lnea se debe utilizar el mtodo readLine() de la clase BufferedReader (paquete java.io.*)

Entrada Estndar

Salida Estndar
Para

mostrar una salida de datos por pantalla, se utiliza la clase System.out Esta clase tiene dos mtodo: print() muestra una cadena de caracteres por pantalla println() muestra una cadena de caracteres por pantalla y se salta una lnea

System.out.println(Ingrese su nombre:);

Constructores

Es un mtodo de la clase de propsito especifico que se ejecuta cuando se crea un objeto de una clase Un constructor tiene el mismo nombre que la clase y pueden recibir parmetros A un constructor no se le puede especificar un valor de retorno Sirve para inicializar los atributos de una clase

Clase Sin Constructor

Ejemplo

class Persona { String nombre; int edad; void mostrar_datos() { System.out.println(Nombre: + nombre + \n Edad :+ edad); }

class MainClase { public static void main(String ar [ ]) { Persona x = new Persona(); x.nombre = Juan; x.edad = 25; x.mostrar_datos(); } }

Clase Con Constructor

Ejemplo

class MainClase { public static void main(String ar [ ]) { Persona_con_constructor c= new Persona_con_constructor(Juan,25); c.mostrar_datos(); } }

Constructores por Defecto

Si no se especifica un constructor, Java proporciona uno por defecto Precaucin: Si se especifica un constructor, se debe utilizar con la misma cantidad de parmetros, de lo contrario se produce un error

Acceso a miembros de la clase


Un principio fundamental de la OO es el ocultamiento de la informacin (Encapsulamiento) A determinados datos del interior de una clase no se pueden acceder por mtodos externos a la clase
Clase
Datos o mtodos pblicos Accesibles desde Exterior

Datos o mtodos privados

No Accesibles desde Exterior

Acceso a miembros de la clase

Se utilizan 3 tipos de especificadores (modificadores) de acceso para controlar los miembros de la clase public, acceso desde cualquier mtodo, dentro o fuera de la clase private, acceso por mtodos miembros de la misma clase protected, acceso por mtodos miembros de la misma clase o clase derivadas Pueden estar en cualquier orden En caso de no especificar, el acceso al miembro de la clase es para cualquier mtodo de la misma clase o cualquier mtodo del paquete

Acceso a miembros de la clase

// EJEMPLO: declaracin de atributos y // mtodos con especificadores class Ejemplo { //atributos public int x; protected long y; private boolean z; //mtodos public int sumar (int a, int b) { ... } protected void mostrar(){ ... } private booleffn calcular() { ... } }

Miembros estticos de la clase

Un miembro esttico de una clase, es nico para toda una clase, en vez de tener uno por objeto Atributo esttico: Existe un nico atributo para todos los objetos de una misma clase. Se declaran igual que cualquier atributo, aadiendo la palabra reservada static. Su llamada se realiza a travs de:
NombreClase.atributo;

Mtodo esttico: son mtodos que se pueden utilizar sin necesariamente crear objetos. Su llamada se realiza a travs de : NombreClase.metodo(); un mtodo esttico solo puede acceder directamente a atributos y mtodos estticos

Miembros estticos de la clase


class Persona { static String nombre; static int edad; static void mostrar_datos() { System.out.println(Nombre: + nombre + \n Edad :+ edad); } } class MainClase { public static void main(String ar [ ]) { // no es necesario crear un objeto para utilizar sus mtodos y atributos Persona.nombre = Juan Perez; Persona.edad= 25; Persona.mostrar(); }

Modificadores de la clase
Los modificadores de la clase pueden ser: public: accesible por cualquier clase. Debe estar en su propio

archivo sin especificar: es accesible por clases del mismo paquete abstract: la clase no puede ser instanciada (no se pueden crear directamente objetos a partir de esa clase) final: la clase no puede ser derivada
Sintaxis:
[modificador] class Persona Ejemplos public class ej{...} abstract class ej{...} final class ej{...} class ej{...}

Polimorfismo

El polimorfismo permite que diferentes objetos respondan de modo diferente al mismo mensaje. En Java una de las formas de implementarlo es a travs de: Sobrecarga de mtodos Sobrecarga de constructores

Polimorfismo

Sobrecarga de Mtodos

Se produce cuando, dentro de una misma clase es posible definir dos o mas mtodos que tengan el mismo nombre y que las declaraciones de sus parmetros sea diferente Al llamar a un mtodo sobrecargado, el compilador determina cual es el mtodo invocado basndose en el numero o tipo de parmetros

Sobrecarga de Mtodos (EJEMPLO)


Class Sobrecarga { public void prueba () { System.out.println( Metodo sin argumentos); } public void prueba(int x) { System.out.println( Metodo con 1 argumento); System.out.println( x = + x); } public void prueba(int x, int y) { System.out.println( Metodo con 2 argumentos); System.out.println( x = + x + y = + y); } } Class DemoSobrecarga { public static void main(String[ ] args) { Sobrecarga objeto = new Sobrecarga(); objeto.prueba(); objeto.prueba(29); objeto.prueba(21,10); } }

Polimorfismo

Sobrecarga de Constructores Al igual que los mtodos, los constructores tambin se pueden sobrecargar Al sobrecargar los constructores, es posible crear objetos con diferentes inicializaciones, dependiendo de la cantidad de parmetros que se enven al momento de crear el objeto Ventaja: crear objetos inicializados de diferente forma, dependiendo de lo que el programador necesite

Sobrecarga de Constructores (EJEMPLO)


Class Sobrecarga_Cons { private int num1, num2;
Class DemoSobrecarga_Cons { public static void main(String[ ] args) { Sobrecarga_Cons objeto = new Sobrecarga_Cons(); objeto.mostrar(); Sobrecarga_Cons objeto1 = new Sobrecarga_Cons(30); objeto1.mostrar(); Sobrecarga_Cons objeto2 = new Sobrecarga_Cons(30,50); objeto2.mostrar(); } }

public Sobrecarga_Cons() { num1=0; num2=0; } public Sobrecarga_Cons(int x) { num1=x; num2=x; } public Sobrecarga_Cons(int x, int y) { num1=x; num2=y; } public void mostrar() { System.out.println( nmero 1:+ num1+ nmero 2:+ num2); } }

Herencia

La Herencia o Jerarqua es la relacin que existe entre dos clases, en la que una clase denominada subclase se crea a partir de otra ya existente, denominada superclase
Persona
Super - Clase

Empleado

Sub - Clase

La clase Empleado hereda atributos y mtodos de la clase Persona, siempre y cuando estos no sean privados

Herencia

La Herencia permite el ahorro de cdigo La sub-clase hereda los atributos y mtodos de la superclase Para crear clases derivadas se utiliza la palabra reservada extends, la cual permite que todos los miembros no privados de la super-clase base sean heredados en la subclase La sintaxis es la siguiente: class nombre_clase extends nombre_clase_base

Herencia (EJEMPLO Super Clase)

class Persona { protected String nombre ; protected int edad; public Persona(String nom, int aos) { nombre= nom; edad = aos; } public void mostrar() { System.out.println(Nombre: "+ nombre + "edad: "+ edad); } }

Herencia (EJEMPLO Sub clase y creacin de objeto)


class Empleado extends Persona { lonq sueldo; String cargo; Empleado(long su, String ca, String nom, int edad) { super (nom,edad); //utiliza el constructor de la clase Persona sueldo= su; cargo=ca; } } class Prueba { public static void main I Stdng ar[ ] ) { Empleado p= new Empleado (150000,"jefe" ,"Juan Perez" ,24); p.mostrar (); } }

Herencia

Los constructores no se heredan, solo se utilizan Para acceder al constructor de la superclase en la subclase se utiliza la palabra reservada super con la cantidad y tipo de parmetros definidos en el constructor de la super-clase. Estos constructores deben llamarse antes del cdigo del constructor de la clase derivada Ejemplo:
Empleado (long su, String ca,String nom, int edad) { super (nom,edad) ; //utiliza el constructor de la clase Persona sueldo= su; cargo=ca; }

Herencia

Por lo tanto, en la primera lnea del constructor de la SubClase se debe incluir una llamada al constructor de la Super-Clase (utilizacin de la palabra super) Los parmetros que se vayan a pasar en la sub-clase se deben incluir la lista los argumentos de la super-clase

Herencia

Mtodos Los mtodos de la super-clase se pueden utilizar en la subclase escribiendo simplemente su nombre y la lista de parmetros del mtodo Por ejemplo dentro de un mtodo de la clase Empleado que es derivada de la clase Persona se puede realizar: mostrar(); Lo mismo ocurre en los atributos, estos se llaman directamente con el nombre del atributo