Otra Explicación por si no ha quedado claro 🙂
Si surgen dudas, favor de comentar!!!
Otra Explicación por si no ha quedado claro 🙂
Si surgen dudas, favor de comentar!!!
Una buena explicación de Arreglos en Java:
Un arreglo es una colección de objetos numerados del mismo tipo, en donde cada variable o celda en el arreglo tiene un índice. Las celdas están numeradas del 0 al N-1, donde N es el número de celdas del arreglo es decir su capacidad.
Los índices de un arreglo en Java deben estar dentro de los límites, 0 – N-1, de lo contrario se generará un error durante la ejecución.
Java implementa los arreglos como objetos que pueden ser tratados como cualquier otro objeto.
Para utilizar un arreglo en Java:
Se agrega un par de corchetes vacíos
[ ]
al objeto o tipo de datos, o al nombre de variable.
Composición
La composición es el agrupamiento de uno o varios objetos y valores, como atributos que conforman el valor de los distintos objetos de una clase. Normalmente los atributos contenidos se declaran con acceso privado(private) y se inicializán en el constructor de la nueva clase.
Un ejemplo puede ser la definición de una clase Claustro, donde un claustro está formado por un Catedrático, un Profesor Titular, un Alumno, un Representante de la Administración y el Rector. En la siguiente definición , se suponen declaradas las clases necesarias para dichos objetos.
La composición crea una relación «tiene». Así por ejemplo, un Automóvil tiene un número de bastidor, una matrícula, una fecha de compra, un dueño…. Todos esos elementos se presentan utilizando el mecanismo de composición sobre la clase Automóvil, de la misma forma que se ha hecho en el ejemplo anterior con la clase Claustro.
Herencia
La herencia establece una relación es-un entre clases. La herencia introduce la capacidad de extender clases, donde la clase original se denomina clase padre(o madre), clase base o super clase, y la nueva clase se denomina clase hija, derivada o subclase. Así, una clase derivada es-una clase base. Por ejemplo, Alumno es-una Persona. Esta relación se puede representar haciendo que la clase Alumno se extienda (herede) de la clase Persona.
La sintaxis de Java para la extensión de clase (herencia) es la siguiente:
class ClaseDerivada extends ClaseBase{….}
En el caso de Alumno se escribiría:
class Alumno extends persona{…}
La nueva clase Alumno, por ser extensión de Persona tiene ya todos los atributos y métodos de Persona y puede acceder a todos ellos como si estuviesen declarados en Alumno, excepto a los que se hayan definidos como privados en Persona. Adicional-mente, en la clase Alumno se pueden declarar todos los atributos y métodos necesarios que tengan un Alumno y que no estén definidos en la clase Persona.
La clase Alumno hereda de esta clase Persona por lo que, al heredar sus atributos y métodos, un alumno ya tiene nombre, apellidos y año de nacimiento y no hay que declararlos en la clase Alumno. Los atributos y métodos que se añadan a la clase Alumno, se suman a todos loa que ya posee como Persona. La declaración de la clase Alumno podría ser:
Compatibilidad de Tipos
La herencia establece una relación es-un, es decir, un Alumno es una Persona. En este sentido cualquier objeto Alumno también se puede considerar persona. Esto quiere decir que una variable de la clase Persona puede contener una referencia a un objeto de cualquier clase derivada de Persona. A esta compatibilidad se le denomina compatibilidad ascendente y es automática.
Persona P1
Alumno Alumno1 = new Alumno(«Alicia», «Moreno», 1990);
p1 = Alumno1 //conversión Ascendente
Persona p2 = new Alumno(«Blanca», «Moreno», 1994);
También se pude realizar la asignación de una variable de la clase Persona a una variable de la clase Alumno, siempre que la variable de la clase Persona guarde una referencia a un objeto Alumno o derivado de Alumno. Esta conversión hay que indicarla explícitamente. A esta compatibilidad se le denomina compatibilidad descendente y si no es correcta se lanzará una excepción ClassCastException.
Alumno otroAlumno;
otroAlumno = (Alumno) p1; //p1 era un alumno del objeto creado antes
Para comprobar si se puede realizar una conversión descendente se utiliza el operador instanceof. Se evalúa a true si el objeto es instancia de la clase o false en un caso contrarío.
if(p1 instanceof Alumno)
otroAlumno = (Alumno) p1 ; //no lanzará la excepción, ya se ha comprobado que se puede.
Ámbitos y Visibilidad
El ámbito de las clases derivadas funciona de igual forma para cualquier clase. Heredan el ámbito de la clase base, por lo que pueden usar los atributos y los métodos que tuviera la clase base excepto los calificados como privados (private).
En cuanto al modificado de acceso protegido(protected) restringe la visibilidad de forma que sólo la propia clase que los define, sus derivadas y la clase del mismo paquete pueden usarlos. Por tanto los miembros protegidos son como públicos para las clases derivadas y las clases del mismo paquete y como privados para el resto de las clases.
Sobreescritura
En una clase derivada se pude volver a escribir uno de los métodos que ya tuviese la clase base de la que hereda. A este mecanismo se denomina sobreescritura, reescritura o redefinición dependiendo de los autores. Así mismo, también se puede sobreescribir los atributos de la clase, para ello la clase derivada se puede definir:
Aunque los elementos de la clase(estáticos) se pueden sobreescribir, puesto que no forman parte de las instancias de la clase al utilizarlos, se accede de acuerdo a la declaración del objeto con que se llaman sin que exista ligadura dinámica con ellos, ya que no necesitan objetos para utilizarlos.
En la sobreescritura se puede ampliar el nivel de acceso, haciéndolo más público, pero no restringirlo haciéndolo más privado. En la siguiente Tabla se muestra los cambios posibles de acceso.
Es muy común que al reescribir en una clase derivada métodos de la clase base, sea necesario invocar los métodos originales de la clase base. Para ellos, se dispone de la referencia super, que permite acceder a los métodos y atributos de la clase base. Ello permite utilizar sentencias como:
super.imprime(); //llama al método imprime de la clase base.
Para impedir que un atributo o método se pueda reescribir en una clase derivada, en la clase base se le antepone el modificador final. Este modificador final permite, dependiendo del elemento al que se le aplique:
Constructores
Polimosfismo
Herencia Forzada y Clases Abstractas
Posteriormente de publicarán ejemplos…:)
Hola!!
Hoy mostrare un pequeño programa donde aprenderemos a abrir un archivo en java:
El programa solo lee la primera linea del archivo .txt que lo tenemos en la dirección mostrada en el código.
CORRIDA DEL PROGRAMA:
Está es nuestra pequeña entrada al tema de archivos en java, espero les haya gustado y les sirva mucho 🙂
Debido a ciertas restricciones definidas en las propiedades de seguridad, tanto de los sistemas operativos, así como de los navegadores, hasta la fecha existen solamente 2 virus de Java notables:
Este es el primer virus conocido que infecta archivos Java Classes. Fue reportado en Agosto de 1998 y tiene la capacidad de auto copiarse únicamente en el caso de que el acceso a unidades de disco esté permitido en las Propiedades del navegador y el sistema operativo. El archivo infectado se ejecuta como una aplicación nativa de Java y no como un Applet.
Las últimas versiones de los navegadores Netscape o IE5 o superiores, emiten un mensaje de advertencia e impiden su ejecución.
Si el virus es ejecutado como una aplicación, tiene la posibilidad de invocar las funciones de disco de Java, tales como: búsqueda de archivos, lectura, escritura y cierre. Al hacer uso de estas funciones, el virus ejecuta sus archivos buscando e infectando sub-rutinas (puede buscar en el directorio actual los Java Classes, e infectarlos) y al hacerlo, el virus abre los archivos en forma de información binaria, lee los encabezados y disfraza el formato interno de Java.
JAVA/BeanHive fue escrito por «Landing Camel», la misma persona que escribió JAVA/StrangeBrew (el primer virus de Java).
JAVA/BeanHive infecta Java Applets y Aplicaciones Java. El virus puede propagarse solamente si el usuario importa en NetScape o Internet Explorer un certificado directo del creador del virus.
Este certificado permite a los Java Applets acceder a funciones de disco (Abrir, Cerrar, Escribir archivos) sin emitir un mensaje de advertencia por parte del navegador. Sin el certificado, el Navegador Web emite un mensaje de error y el Applet no podrá ser ejecutado.
Java/BeanHive consta de 2 partes: Un cargador y el código principal.
Las aplicaciones Java infectadas contienen solamente el cargador. El código principal del virus reside en un servidor WWW en Usa propiedad de los creadores del virus.
Cuando se ejecuta una aplicación Java, el cargador se conecta al servidor WWW en Internet, baja el código principal del virus y lo ejecuta.
El código principal del virus se encarga de localizar archivos *.class limpios en el directorio actual y sus subdirectorios y los infecta solamente con el cargador.
Esta modalidad de infección permite a los escritores del virus modificar las características del código principal, léase «actualizarlo» o modificarlo.
Hace un momento encontré una guía muy buena, para que nos demos una idea de lo que preguntan en una certificación java, en esta página podrás encontrar de otros lenguajes más, la cual me parece una buena opción para irnos guiando en esto de java.
Espero les sirva debes bajar el software y ahí hay exámenes por tiempo y en línea 🙂
Entre el rato que piérdo el tiempo…. me encontré con este nuevo editor de texto, esta padre así que si gustan probarlo y no pesa mucho:
Pueden programar java, javazcript, css, xmlñ, perl…
Ejemplos del uso de Java:
Bueno últimamente no he publicado, pero espero seguir buscando más cosas que nos puedan ayudar en cuanto al desarrollo Java, desde cosa básicas a cosas complejas, por eso de que hay gente que se desespera….
Saluditos y buena noche madrugadores….
Escriba una clase, de nombre Corredor, teniendo en cuenta las siguientes especificaciones:
1. La clase tendrá un atributo entero de nombre «energía».
2. La clase tendrá un método constructor que recibirá por parámetro una cantidad de energía que asignará al atributo.
3. La clase tendrá un método, de nombre «recargaEnergia» , que recibirá por parámetro una cantidad de energía que será sumada al atributo «energía».
4. La clase tendrá un método, de nombre correr, que mostrará por pantalla un mensaje y decrementará la energía en 10 unidades. Antes de proceder al decremento, el método comprobará que la energía del corredor es igual o superior a 10 unidades. Sí no es así, el método lanzará una excepción de tipo AgotadoExcepción.
*Obvio en unos días más publicaré una respuesta, así que no se espanten todo tiene respuesta, solo que si obtenemos 2 o más me agradaría:)
Solución al problema:
parte2:
Escriba una clase, de nombre Entrenamiento, en cuyo método main(), se creará un objeto Corredor con una energía de 50 unidades. Se hará que el corredor corra hasta que se agote 3 veces. La primera vez que se agote su energía se recargará con 10 unidades. Cuando el corredor se agote por tercera vez se dará el entrenamiento por concluido.
(pronto pondré esta parte….)