You are on page 1of 24

Caractersticas

Completamente orientado a objetos


Distribuido, buen tratamiento para redes, programacin para Internet
Seguro, ni tanto jejejejee, porque no permite desbordad la pila de
ejecucin, corrupcin de memoria, leer o escibir ficheros sin permiso
Multihilo (Varios procesos en paralelo)
Neutro importante porque es multiplataforma
Adaptable,
Interpretado
Alto rendimiento

PATH
est variable debe contener la ruta donde se encuentran las herramientas para
la compilacin y ejecucin de aplicaciones
CLASSPATH
Es una variable de entorno donde deben contener las direcciones donde se
encuentran las clases que van hacer utilizadas para el desarrollo de
aplicaciones

Entender el concepto de COMPILACIN Y LUEGO EJECUCIN

Compila el codigo fuente a travs del paquete de herramientas necesarioas


para la compilacin JDK luego si se establecio correctamente la variable de
entorno PATH ejecutara el archivo desde la ruta de ubicacin del archivo, luego
entra el classpath para utilizar las clases del codigo fuente y ejecutar el
programa

IMPORTANTE!
Los operadores de comparacin < > => <= estos solo se podran usar con
enteros puntos flotantes y caracteres no con datos no primitivos mientras que
los operadores == y != igual y desigualdad respectivamente se pueden usar
para todo tipo de dato compatible

MANOS A LA OBRA
Tipos de programas para Java
-

Aplicaciones de consola (sheell)


Aplicaciones generales (gui, redes etc etc)
Aplets son programas que se ejecutan dentro de un navegador ( especie
de plugin)

Todo programa en Java debe estar dentro de una clase


TIPOS DE DATOS PRIMITIVOS
Enteros
Int (cuatro), short(2), long (8), byte(1)
Decimales
Float(cuatro), double(8)
Char representa caracteres
Booleanos evaluar condiciones
Importante hacer uso correcto de los datos primitivos para no desperdiciar
memoria es decir si se ve el tamao y rango de los tipos de datos, se debe usar
una variable acorde a lo que realmente se necesite, no se va a usar una
variable int si el dato toma valores de -120 a 120 que es el rango de byte
(importante optimizer recursos)

Para declarar constantes se usa FINAL


DIFERENTES CLASES EN JAVA
EN java se tiene clases:
Definidas (String, math, array, thread ) estas ya estn predefinidas en JAVA

API JAVA
Es una biblioteca de las clases de java con sus respectivos mtodos
(Funciones)
Por ejemplo para math se tiene la clase y sus mtodos
Un mtodo sera sqrt la raz cuadrar sqrt(n) recibe un parmetro, etc con sus
diferentes mtodos.
REFUNDICIN
Consiste en convertir un tipo de dato en otro
Datos no primitivos
STRING
Para almacenar una cadena de caracteres en java se
String nombre=inicializacin;
Recibe una instancia de la clase string es decir darle un nombre y valor a una
clase
Est clase obtiene muchos mtodos, pero los ms utilizados son:
Length(); devuelve la longitud de una cadena de caracteres
Ejemplo: nombre.length()=inicializacin; /nmero de caracteres
charAt(n) devuelve la posicin de un carcter dentro de una cadena( las
posiciones empiezan a contar desde cero)
ej: nombre.charat(2)=i; devuelve la posicin 2
substring(x,y) devuelve una subcadena dentro de una cadena, siendo x
el carcter a partir del cual se extrae, e y el n de caracteres que se quieren
extraer
equals(cadena): devuelve true si dos cadenas se comprarn y son iguales
y false si no lo son distingue maysculas de minsculas
equalsignorecase(cadena): no difiere entre maysculas y minsculas.

Acercamiento a las clases (estas se guardan en paquetes), tanto las


predefinidas como las propias

Los paquetes se dividen en dos principales JAVA Y JAVAX, con esas se


desprenden muchos paquetes en la API de java por ejemplo java.awt, dentro de
ellas una serie de clases, asi para JAVAX, es una especie de carpetas dentro de
un ordenador
Por qu son necesario los paquetes y por qu lo inventaron?
-

Evitar conflicto de nombres


Tener un mejor orden
No puede haber dos clases con el mismo nombre dentro de un paquete
Para controlar la visibilidad de las clases (seguridad Encapsulamiento)

Entre todos estos paquetes existe un paquete por defecto, eso quiere decir
que se puede utilizar sin ningn problema todas sus clases y sus mtodos
de esas clases.
A diferencia de Lang que es un paquete por defecto los dems se deben
incluir o referencia en el IDE de java
Para usar una clase que no pertenece al paquete java lang se debe usar
importa con el nombre dl paquete.
import java.util.*; esto indica que importa a el paquete java.util el asterisco
significa que est llamando a todas las clases de ese paquete
Entrada y salida de datos
Salida ya hemos visto con System.out.print sirve para mostrar en pantalla,
existen diferentes formas de mostrar en pantalla as como extraer de
teclado
Entrada de teclado (uso de clases)
Clase Scanner
Contiene tres mtodos:
-

Netxline() introducir linea


Netxlnt() introducir enteros
Nexdouble() introducir decimales

Importante mtodos estticos, implica que toca utilizar la clase para


acceder al mtodo
Math.round() esttico
Para recibir datos

Se llama al paquete unit luego a la clase scanner, esta clase tiene


diferentes mtodos uno de ellos es el uso deun constructor para hacer uso
de la Shell eso se verifica en la API luego se crea algunas variables para
aadirlas en las funciones

Scanner entrada=new Scanner(System.in);


System.out.println("Introduce tu nombre");
String Nombre_Usuario= entrada.nextLine();
System.out.println("Ingrese su edad por favor");
int Edad=entrada.nextInt();
System.out.println("Sus datos fueron " +" " + Nombre_Usuario+ " "
+Edad);
Existe otra alternativa para obtener de teclado que es aadir el paquete de
javax swing el cual tiene una clase llamada JOptionPane, este a su vez tiene
un mtodo llamado showinputdialog en el se ingresa el diferente contenido
es importante ver en la API los argumentos que recibe.
package uso_paquetes;
import javax.swing.JOptionPane;
import javax.swing.JOptionPane;

public class Saludo_Gui {


public static void main(String[] args)

{
String Nombre_Usuario=JOptionPane.showInputDialog("Ingresa tu
nombre por favor");
String Edad =JOptionPane.showInputDialog("Ingresa tu edad");
int Edad_Usuario= Integer.parseInt(Edad);
System.out.println("Hola" +" " + Nombre_Usuario+ " Tienes " +
(Edad_Usuario+1) + " " + "aos");
}

}
Para modificar el resultado de los nmeros es decir darle formato a los
valores numricos
1)Se usa el printf( % 1.2, resultado numrico)
2) usando el javax swing,
Otra forma de recibir de teclado es por medio de la javax usando los
diferentes mtodos de acceso
Estructuras de Control
Bucles
Indeterminados
Do while o while
Determinados
For
For-each
Un bucle es repetir una serie de lneas de cdigo dentro de un programa
estos indeterminados, no sabemos cuantas veces se van a repetir las lneas
de cdigo, mientras que el For se puede saber hasta que veces se va a
ejecutar ese cdigo

Do- while
Sintxis
Do {
Lneas de cdigo

}
While (condicin);

Este uso es lo mismo que el while pero evala la condicin despus de


haber ejecutado en su interior, se hace esto en diferencia entre while, te
asegura aunque la condicin de entrada sea falsa lo que hay adentro del
bucle se ejecute una vez (al menos una vez se ejecutar)
{

public static void main(String[] args)


{

String Genero ="";


// Aqui se muestra la opcin de decirle al usuario que ingrese o H o M si
no debe volver hasta ingreser esos
do{
Genero=JOptionPane.showInputDialog("Introduce tu genero masculino
H/M");

}while(Genero.equalsIgnoreCase("H")==false &&
Genero.equalsIgnoreCase("M")==false);

int Altura=Integer.parseInt(JOptionPane.showInputDialog("Ingrese por


favor su Altura en M"));
int Pesoideal=0;
if(Genero.equalsIgnoreCase("H"))
{
Pesoideal=Altura-110;
}
else if(Genero.equalsIgnoreCase("M"))
{
Pesoideal=Altura-120;
}
System.out.println("Tu peso ideal es " +Pesoideal);
}
}
El anterior programa se hace uso del do, por lo que esa instruccin se
ejecuta mientras la condicin del while sea falsa o verdadera todo
depender de la programacin, para este caso se hizo una comparacin de
cadenas las cuales se ejecutan mientras el usuario no pulse H y M si lo hace
pasar a terminar ese bucle y seguir con el cdigo fltante

FOR
Operador de incremento i+=2 incrementa en 2
String Correo=JOptionPane.showInputDialog("Introduce tu Correo Por
favor");
int condicion=0;
for(int i=0; i<Correo.length(); i++)
{
if(Correo.charAt(i)=='@')
{
condicion ++;
}

}
if(condicion==1)
{
System.out.println("Tu direccion es correcta ");

}
else if(condicion>1)
{
System.out.println("Tu direccion no es correcta ");
}
}

Se puede evaluar mediante un FOR la escritura de un correo correctamente


abarcando todas las posibilidades de errores, mediante condiciones
ARRAY EN JAVA
Matriz

Se les suele denominar arrays y arreglos son muchos trminos y son lo


mismo
Es una estructura de datos que contiene una coleccin de valores del
mismo tipo y sirve para almacenar valores que tienen una relacin entre si
Sintaxis
Int [] Matriz=new int[10]

Recordar que para recorrer y leer una matriz se utiliza el for each for(Tipo
de matriz nombre: matriz creada
Array bidimendional
Consiste en que dentro de una posicin de un array se tiene otro array

Sintaxis
Donde utilizar un array de dos dimensiones
Para recorre las dos dimensines se debe usar dos FOR

Primero accede a una columna leyendo los ceros y en la otra dimensin


lee los nmeros asi accede a las dos matrices

Ejecucin del programa

Breve explicacin de la ejecucin de los bucles for, primero entra en el primer


for que cuenta como 0 luego entra en el segundo for contanto 0 y as
suvesivamente hasta 5 sale de ese for y entra nuevamente al otro for contando
1 luego entra nuevamente al otro for asi hasta terminar su ejecucin lmite
para ambos for.

POO
Pilares de la POO
- Empaquetado de clases
- Modificadores de acceso

-Encapsulacin
-Sobrecarga de mtodos
-Constructores
-Herencia
-Sobrescritura de mtodos
-Clases abstractas e interfaces
-Poliformismo

EMPAQUETADO DE CLASES
Un paquete no es ms que un directorio en donde estn ubicado los archivos
.class
Para empaquetar lo cual tendr todas las clases disponibles en el programa se
debe usar
package nombre del paquete;
ejemplo
vamos a definir una clase para obtener mensajes de texto y queremos que esa
clase sea utilizada en un futuro por otras clases.
1) se crea una clase para ubicarla en un paquete llamado pjava suponiendo
que el directorio de trabajo es c\:pruebasjava se crear el directorio de
trabajo c\:pruebasjava\pjava donde c\:pruebasjava(raz) y \pjava
(paquete1)

MODIFICADORES DE ACCESO
Se utilizan para definir la visibilidad de los miembros de una clase

private

default

protected

public

clase

NO

SI

NO

SI

mtodo

Si

SI

SI

SI

atributo

Si

SI

SI

SI

variable local

NO

NO

NO

NO

ENCAPSULACIN
Mantiene los atributos de los objetos como privados y proporcionar acceso al
mismo a travs de mtodos pblicos
ventajas
- proteccin de datos
-facilidad y flexibilidad den el mantenimiento de aplicaicones

public class Rectangulo()


{
private int lado, ancho; // encapzulamiento
public void setAlto(int lado)
{

if(alto>0)
this.alto=alto;

}
public int getAlto()
{
return this.alto;
}
}

Siguiendo el convenio de que setNombre es para mtodos que permitan la


escritura de un atributo y getNombre para lectura de un atributo
el puntero this se utliliza en el interior de una clase para invocar a mtodos y
atributos del propio objeto, solo ser necesario usarlo cuando se quiera invocar
un miembro del propio objeto u variables locales.

FACILIDAD DE MANTENIMIENTO DE LA CLASE


Creada la clase se opta por cambiar el valor de los atributos se podra solo
modificar el cdgio de los mtodos de acceso y distribuir la nueva versin de la

clase, sin que los programadores que la utilicen tengan que cambiar un solo
cdigo en el main.

SOBRECARGA DE MTODOS
Es utilizar mtodos con el mismo nombre pero ojo con diferentes parmetros
estos mtodos pueden hacer lo mismo pero ellos van a recibir diferentes
parmetros, los argumentos le permiten al compilador identificar cada mtodo

CONSTRUCTORES
Se crea un constructor para poder dar valores iniciales a los atributos como
ejemplo, por le momento no se mas aplicaciones, se utiliza para aadr tareas
que deban realizarce en el momento de inicializar un objeto. Es importante que
una clase tenga como mnimo un constructor, adems deber cumplr con las
reglas que ya sabemos y si se sobrecarga deber cumplir las mismas reglas de
sobrecarga, el uso de constructore puede reducir cdigo y si se dispone de
muchos atributos se tendr dificultada para saber cual es el correcto.

Se puede decir que los lenguajes de programacin estn divididos en estos dos
principales grupos los antiguos que son orientados a procedimientos y los
actuales que son orientados a objetos, la diferencia entre estos dos lenguajes
es que si un cdigo hecho por un programador y luego modificarlo por otro

sera difcil, y la reutilizacin de cdigo o aplicaciones en otro parecido, nace la


POO por un intento en simplificar el cdigo de programacin, lo que se trata es
de orientar todo a objetos lo que nos rodea por lo que si se requiere modificar
una funcin que haga otra tarea es simplemento modificar una clase para que
siga funcionando correctamente
Pilar Modularizacin ( varias clases que tiene caracterstica y mtodos)
CLASE
Es un modelo donde se redactan las caractersticas de un grupo de objetos
Ejemplo

USO DE LOS PAQUETES, permiten mejorar el almacenamiento del programa, en


esos paquetes se guardan todas las clases usadas en el paquete
USO DE CLASES EJEMPLO
package POO;
public class Coche
{
// Se especifican las caracteristicas comunes de los coches

int Ruedas=0; //Caracterstica comun las ruedas (todos)


int Largo=0;

// Caracteristica todos la tienen

int Ancho=0;

// otra caracteristica comun

int Peso=0;
int Motor=0;

// caracteristica comn
//caraacteristicas comunes

// Siguiente paso describir las caracteristicas, mediante un mtodo


// Mtodo constructor
Se usa este mtodo constructor que se encarga de dar un estado inicial a un
objeto
package POO;

public class Uso_Coche {

public static void main(String[] args)


{
Coche Renault=new Coche(); // Instanciar una clase
}
}
Se crea una instancia llamada Renault que pertenece a la clase coche

CLASE
La clase contiene todos los mtodos y caractersticas que van a exponer los
objetos.

MODULARIZACIN Y ENCAPSULACIN
Modularizacin
Trata de dividir en trozos el programa, en vez de laborar un enorme programa
trata de dividir en clases , estas clases estn conectadas entre si
(GENERALMENTE NO SIEMPRE)

Importante la clase pblica es la que debe contener el MAIN las dems deben
ser privadas o protegidas todo depende del programa, es decir si se tiene una
clase principal que es comn para todos es debe ser pblica
Encapsulacin

Las clases se interconectan en Java mediante Mtodos, cuando eso ocurre se


debe utilizar el encapsulamiento
Los mtodos de cada clases deben ser encapsulados cada clase cumple su
funcin principal, es decir que tareas que solo se deben poder hacer dentro de
la clase, mientras que otras cosas se puedan hacer de la clase principal. Hay
datos que se deben encapsular y funciones tambin
Ahora se cean mtodos para que agreguen comportamientos a los objetos y
puedan intercambiar estos entre si dentro de las clases

PAQUETES
Se utiliza para dar mas orden al cdigo

METODOS Y CAMPOS o ATRIBUTOS


Los mtodos definen el comportamiento de los objetos de una clase y usar
campos y atributos para guardar el comportamiento del objeto (son variables )
MTODOS ESTATICOS
Se define a los mtodos estticos como metodos en comn puesto que no
dependen de un objeto o una clase se los puede invocar sin necesidad de crear
objetos por ejemplo, se tiene un mtodo genrico para un televisor
obtenerprecio() cuya ejecucin generara el mismo resultado para cualquier
objeto. Es decir existe un mtodo comn

Mtodo constructor
sirve para darle un estado inicial a las clases
Modularizacin
Consiste en dividir el programa en clases
aplicaciones complejas se reduzcan para poder depurar el error sera mas
sencillo
Encapsulacin
Una vez creada la modularizacin las clases se podran comunicar entre si por
medio de mtodos, es lo mas oblitorio encapzular, si se tiene una clase con
tareas globales es decir que otras clases pueden para funcionar correctamente
deben funcionar con los mtodos de otra clases es correcto, pero hasta cierto
punto porque no es conveniente acceder a los mtodos de clases diferentes.
Consisten en que la funcionalidad de cada clase se haga desde la propia clase,

por lo tanto no es lgico modificar un valor desde otra clase teniendo un


constructor con valores inicializados, por lo tanto se deben encapzular.
Para ello se usa un modificador de acceso
PRIVATE

MTODOS
Permiten que las clases interacten entre si formando una unidad para que un
programa funcione
MTODOS SETTERS Y GETTERS
Lo que se trata es que las clases no puedan modificar las funciones principales
de las clases, pero si se comuniquen a travs de mtodos, para poder
imprimirlas para ello los mtodos Setters y Getters (definidores y
captadores respectivamente) Es decir de un setters se modifica el valor de
na propiedad y de los getters se capta ese valor modificado
Getters
sintxis: public dato a devolver nombre_mtodo() {fuente return}
Setters
Una vez teniendo las caractersticas comunes si es necesario se puede cambiar
el valor de cada caracterstica en funcin de las caractersticas iniciales, a
estas caractersticas se las llama cambiantes porque pueden modificarse
dependiendo del requerimiento ( en pocas palabras modifica el valor de una
propiedad)
sintaxis: public void nombre del metodo(){}

setter solo modifica el dato, mientras que el getter solo muestra por lo tanto
debe tener un return osea que debe devolver un valor
Getter indicamos el tipo de valor que va a devolver con su respectivo return
Setter no devuelve dato por lo que lleva void solo modifica el dato
Ahora lo que se debe hacer es instanciar un objeto para luego mostrar los
setter primero porque son los que modifican el comportamiento del objeto
luego los getter para poder mostrar la modificacin del objeto respecto a su
comportamiento

IMPORTANTE PRIMERO DECLARAR CARACTERISTICAS COMUNES PARA TODAS


LAS CLASES Y LEUGO LAS NO COMUNES PARA CADA UNA DE LAS CLASES

PASAR PARMETROS A UN MTODO

Consiste a la vez que se llama un mtodo se le pasa un parmetro o valor para


que ese mtodo recoja el valor y opere con el
Es importante crear funciones con parmetros para darle un ajuste
determinado para poder modificar antes de mostrar los datos con eso se puede
usar los atributos para modificarlos y darles un valor de retorno a los mtodos,
para darle caracterizacin al objeto

NUNCA DEJAR CAMBIAR LAS VARIABLES O ARGUMENTOS DE UNA


CLASE POR FAVOR !!!!!!!
IMPORTANTE LAS CADENAS DE CARACTERES SE COMPARAN CON LOS
MTODOS EQUALS DE LA CLASE STRING

CREACIN DE OBJETOS
EN VEZ DE TRABAJAR CON FICHEROS FUENTES, O TRABAJAR CON UN
UNICO FICHERO FUENTE

Significa crear todas las clases en un solo fichero .java, es decir solo una clase
ser publica las dems deben tener un modificador de acceso, no considero
oportuno usar este mtodo.

Crear un constructor con parmetros


1) debe tener un acceso publico para tener acceso a diferentes clases

Se puede ver en la api de java que muchas paqutes pueden tener el


mismo nombre es decir sobrecargar paquetes

// clases predefinidas
GregorianCalendar
Lo que hace es construir una fecha con el da mes y ao//
cuando se va a verificar el paquete dispone de varios cosntructors como
mtodos para su uso especfico para este ejemplo se uso el segundo
cosntructor con un mtodo que es para obtener el tiempo

USO DE LA API
Se puede observar para este caso que la clase usad tiene doble herencia, eso
se puede verificar en la api en la parte superior de la descripcin de la clase
En el ejercicio se vio como almacenar datos, que es mejor por array
Donde se podr almacenar los empleados y luego un bucle for para subir
sueldo recorrer los empleados y consultarlos

en java no s posible crear array de varios datos, para ello se usa el concepto de
clases que permite crear array de varios datos como el ejemplo con la primera
posicin se da un array que recibe string enterios y tiempo
UTILIZAR SIEMPRE SIEMPRE EL FOR EACH PARA USAR MATRICEZ
REDUCE MUCHO EL CDIGO USARLOS NO OLVIDAR

USO DE LA COSNTANTE FINAL


Si es necesario que un dato se conserve constante y que no se pueda modificar
una vez establecido su valor se deber optar por modificar la variable con el
especificador FINAL para que bloquee cualquier cambio de la variable.

EXPLICACIN SOBRE LA PALABRA STATIC


Es aplicable tanto a constantes, mtodos y variables

Cuando nosotros creamos un constructor o un mtodo y se le asignan unos


parmetros cada vez que se instancia un objeto el hace una copia de cada uno
de esos mtodos y variables, entonces cada copia es diferente por ejemplo si
se llama o crea un objeto llamado x y otro llamado y cada uno va a llamar a los
diferentes mtodos y variables al llamarlos ser diferente el llamado para cada
uno har una copia de cada mtodo y variables y clases, por lo tanto para que
java asigne automticamente y correlativamente un numero o un ID se debe
usar la palabra:

STATIC
EnTONCES LO QUE SE har es que no halla una copia de cada variable solo
exista una copia, tampoco es posible crear un objeto y llamar a un STATCI ees
importante tener esa aclaracin.

Por ejemplo si tenemos la variable llamada ID, posteriormente instanciamos un


objeto de la clase que alberga esa variable lo que hace esa clase es compartir
la variable pero ojo, para usar la variable es necesario llamar a la clase, con los
objetos no es posible llamar a las variables STATIC, lo mismo ocurre con los
mtodos solo ser posible llamarlos con las clases ms no con los objetos es
como una especia de encapsulacin.
Otro ejemplo es el mtodo MAIN, este no actua sobre ning objeto.
Otra consideracin es que los mtodos static no pueden acceder a los campos
de las clases es decir a ninguna caracteristica de la clases (variables)

Consideraciones del mtodo Static


- No actan sobre Objetos
-No acceden a campos de ejemplares (variables/constntes declaradas en la
clases) a menos que estas tambin sean static
- Para llamarlos se utiliza el nombre de la clase. Mtodo.

SOBRECARGA DE CONSTRUCTORES

Ya sabemos que los constructores se encargan de darle un estado inicial a


nuestros objetos
Esto implica que una misma clase puede contener varios mtodos con el
mismo nombre de la clase es decir varios constructores, se debe tener
diferentes argumentos.
Por ejemplo si creamos un objeto con un constructor lo obligaremos a que si el
constructor tenga unos parmetros ese objeto tendra esos parmetros
iniciales, para llamar a los constructores debemos saber cuantos parmetros y
que parmetros necesitamos
La sobrecarga de constructores simplemente sirve para dar diferentes
comportamientos a los objetos (iniciales)

Cmo eliminar los dems parmetros de los anteriores constructores que


evidencian retornos nulos , para darle valores a esos parmetros de los otros
constructores se procede as :
usando el this
this(los parmetros faltantes) lo que hace el this es llamar al otro constructor,
entonces si existe varios constructores el this busca el constructor con los
mismos numeros de parmetros.

HERENCIA (CARACTERSTICA MS IMPORTANTE EN POO)


Heredar caracteristicas y mtodos de las diferentes clases ya creadas, por
ejemplo si una clase COCHE tiene similares comportamientos se podra crear
una Furgoneta que herede sus comportamiento por ejemplo las ruedas el color
etc etc as como los diferentes mtodos, es decir se comparte algnas
caractersticas

-PARA EVITAR QUE UNA CLASE SEA HEREDARA SE DEBERA CODIFICAR


EL MODIFICADOR FINAL DELANTE DE LA CLASE

PUBLIC CLASS CLASE FINAL

PROBLEMA PARA LLAMAR A SUPERCLASES PARA HEREDAR


(CONSTRUCTOR)

Cuando tenemos la herencia de una superclase, se sabe que se puede heredar


los mtodos pero no tiene acceso a ello puesto que el modificador private no
permite dicha accin, Cmo acceder a dichos datos desde la clase deriva ?, en
el caso de que la superclase tenga mtodos set/get se pueden heredar pero
para la inicializacin e atributos es decir CONSTRUCTORES se deber hacer una
tcnica diferentes
EJECUCIN DE CONSTRUCTORES CON LA HERENCIA
Cmo norma general cada vez que se ejecute un programa con clases que
heredan de una super clase, la creacin de un objeto antes de ejecutarse el
constructor de dichas clases dervias se ejecutara el primero de la superclase.
La instruccin SUPER(); llama ya sea implicitamente o explicitamente a la super
clase para que se ejecute su primer constructor luego ejecutar los constructor
de las subclases

Solucin para la falta de conocimiento (Ignorancia sobe el tema)


Es necesario cuando se hereda de la superclase crear en la sublclase un
constructor para despus llamar a super el constructor de la superclase, luego
se crea un objeto para llamar a la clase del objeto.

MTODOS Y ATRIBUTOS PROTEGIDOS


Existe un modificador que es aplicable a mtodos y atributos de una clase que
se utiliza especialmente con la herencia. Protected
Protected cualquier clase, mtodo y atributo que lo preceda de una clase
tendr acceso desde cualquier otra subclase independientemente de los
paquetes en que se encuentren

package varios;
public class persona(){

private Strinf Fecha_Nacimiento;


public Persona(String F){
Fecha_Naciemiento=F;
}
Protected int getEdad(){

//implementacin del mtodo


}
}

SI tendramos una subclase en otro paquete por eemplo


package basico;
import basico.Persona; asi se podra acceder al atributo protegido, solo se podra
acceder a travs de la herencia mas no por una referencia de un objeto
p.getEdad() // saldra error de compilacion

PARA ACCEDER A LOS METODOS DE LAS SUPERCLASES SE DEBE USAR


LA PALABRA SUPER. NOMBRE DE LA CLASE.

SOBREESCRITURA Y SOBRECARGA EN HERENCIA


Cuando se tiene un mtodo de una superclase y es necesario obtener una
sublclase que necesita ese mtodo pero con nuevo codigo se puede hacer
mediante la sobreescritura se debe seguir una nocin de reglas:
- la sobreescritura de mtodos debe tener el mismo tipo de retorno, y los
mismos parmetros

CLASES ABSTRACTAS //

es un tema muy relacionado con el POLIFORMISMO.


Es decir que se declara un mtodo y queda definido es decir se especifica su
nombre, parmetros, tipo de devolucin y retorno pero no contiene ningn
cdigo alguno, a estos tipos de mtodos se les denomina abstraactos.

Entendido.... Un mtodo abstracto se caracteriza porque su cdigo est vacio


es decir no tiene caractersticas, no tiene IMPLEMENTACIN, por lo tanto
puede que las subclases hagan uso de es mtodo para sobreescribirlo y usarlo
para suplir su tarea.
Sobre este tema se debe tener las siguientes consideraciones:
-Si tengo una clase abstracta esta puede tener tanto mtodos abstractos
como no abstractos, el hecho de que tenga un solo mtodo abstracto la vuelve
a la clase abstracta.
-No es posible crear objetos de una clase abstracta, al haber mtodos
que no estan definidos en la clase, no est permitido crear objetos por ella.

Como ya sabemos el proposito de las clases abstractas es servir de base para


subclases futuras para que los mtodos abstractos puedan modificar mediante
sobreescritura las caracteristicas mismas de los mtodos ( realizar
implementaciones)

- Las subclases de una clase abstracta estn obligadas a sobreescribir


los mtodos abstractos que heredan, si no es necesario utilizar un mtodo
abstracto de una clase, igual la subclase deber ser declarada como abstracta.

- Una clase abstracta puede tener consructores, puede que la clase


herede a mas clases, la cual si podra crear objetos para inicializarlos con el
constructor.
POLIFORMISMO
Es una de las principales aplicaciones de la herencia y las clases abstractas.
ASIGNACIN DE OBJETOS A VARIABLES DE SU SUPERCLASES
Cuando tenemos una herencia, obviamente tenemos una superclase esta super
clase hereda mtodos y caracteristicas a las subclases, existe la posibilidad de
crear una expresin con la superclase como viene a continuacin

superclase expresin;
Herencia_1 f;
en la anterior definicin crearmos una variable f para asignarle los objetos de
las diferentes subclases, para que con dicha variable se pueda invocar a los
mismos mtodos pero de diferentes objetos; (JAVA DETERMINA EN EL TIEMPO
DE EJECUCIN EL MTODO QUE DEBE EJECUTAR)

VENTAJAS DE LA UTILIZACION DEL POLIMORFISMO


El simple hecho de que una variable pueda invocar a varios mtodos de la
superclase para los diferentes objetos hace que la REUTILIZACIN DE CDIGO
SEA MAS EVIDENTE.

TIPO DE RETORNO COVARIANTES

Existe la posibilidad de realizar sobreescritura conservando siempre las reglas


de sobreescritura a expcepcin de el valor de retorno

You might also like