miércoles, 18 de mayo de 2011
domingo, 15 de mayo de 2011
INTERFACES
Un interface es una colección de declaraciones de métodos (sin definirlos) y también puede incluir constantes.
CLASE ABSTRACTA
Son clases creadas para ser heredadas por nuevas clases creadas por el programador. Son clases base para herencia. Las clases abstractas no deben de ser instanciadas (no se pueden crear objetos de las clases abstractas). Una clase abstracta debe ser marcada con la palabra clave abstract.
POLIMORFISMO
Cada método de una clase puede tener varias definicionesdistintas. En el caso del parchís: partida.empezar(4) empieza una partida para cuatro jugadores, partida.empezar(rojo, azul) empieza una partida de dos jugadores para los colores rojo y azul; estas son dos formas distintas de emplear el
método empezar, que es polimórfico.
método empezar, que es polimórfico.
HERENCIA MULTIPLE
la herencia es el mecanismo fundamental para implementar la reutilización y extensibilidad del software. A través de ella los diseñadores pueden construir nuevas clases partiendo de una jerarquía de clases ya existente (comprobadas y verificadas) evitando con ello el rediseño, la modificación y verificación de la parte ya implementada. La herencia facilita la creación de objetos a partir de otros ya existentes, obteniendo características (métodos y atributos) similares a los ya existentes.
jueves, 5 de mayo de 2011
miércoles, 13 de abril de 2011
ANIMAL-EJECRCICIO DE HERENCIA 2
Las instrucciones que estaban equivocadas eran que las subclases que estaban inicializadas con public y esto no permitia heredar los objetos y en la clase main se invocaban los metodos con una sintaxis erronea el resto del programa funcionaba.
miércoles, 6 de abril de 2011
jueves, 31 de marzo de 2011
HERENCIA
La herencia es el mecanismo que permite crear clases basadas en otras existentes. Se dice que esas clases descienden de las primeras.
Esta herramienta facilita enormemente el trabajo porque ha permitido crear clases estándar para todos los programadores y a partir de ellas crear nuestras propias clases personales. Esto es más cómodo que tener que crear nuestras clases desde cero.
EJEMPLO:
Se podría crear una clase llamada vehículo cuyos métodos serían mover, parar, acelerar y frenar.
Luego de esto se podría crear una clase coche basada en la anterior que tendría esos mismos métodos (les heredaría) y además añadiría algunos propios, por ejemplo abrirCapó o cambiarRueda.
SINTAXIS DEL EJEMPLO:
class vehiculo {
public int velocidad;
public int ruedas;
public void parar() {
velocidad = 0;
}
public void acelerar(int kmh) {
velocidad += kmh;
}
class coche extends vehiculo{
public int ruedas=4;
public int gasolina;
public void repostar(int litros) {
gasolina+=litros;
}
}
...........................................................
public class app {
public static void main(String[] args) {
coche coche1=new coche();
coche.acelerar(80);//Método heredado
coche.repostar(12);
· Para que una clase herede las características de otra hay que utilizar la palabra clave extends tras el nombre de la clase. A esta palabra le sigue el nombre de la clase cuyas características se heredarán. Sólo se puede tener herencia de una clase (a la clase de la que se hereda se la llama superclase y a la clase heredada se la llama subclase).
OPERADOR THIS
La palabra clave
this
se refiere al objeto de contexto (comúnmente conocido como el objeto actual [current object]). En general, en un método, this
se refiere a la invocación del objeto.Sintaxis
this[.Nombrepropiedad]
Ejemplo:
class punto {
int posX, posY;//posición del punto
punto(posX, posY){
this.posX=posX;
this.posY=posY;
}
En el ejemplo hace falta la referencia this para clarificar cuando se usan las
propiedades posX y posY, y cuando los argumentos con el mismo nombre.
Los posibles usos de this son:
ü this. Referencia al objeto actual. Se usa por ejemplo pasarle como parámetro a un método cuando es llamado desde la propia clase.
ü this.atributo. Para acceder a una propiedad del objeto actual.
ü this.método(parámetros). Permite llamar a un método del objeto actual con los
parámetros indicados.
ü this(parámetros). Permite llamar a un constructor del objeto actual. Esta
llamada sólo puede ser empleada en la primera línea de un constructor.
CARACTERISTICAS:
ü Cuando se sobrecargan los constructores (se utilizan varias posibilidades de constructor), se pueden hacer llamadas a constructores mediante el objeto this.
ü Si this hace referencia a la clase actual, super hace referencia a la superclase respecto a la clase actual, con lo que se convierte en un método imprescindible para acceder a métodos por herencia anulados.
ü Un problema con este operador es que al usarlo dentro de una clase interna, this se refiere al objeto de la clase interna.
miércoles, 30 de marzo de 2011
jueves, 24 de marzo de 2011
miércoles, 23 de marzo de 2011
FUNCION CUADRATICA
En este programa semuestran las tres posibles soluciones de una funcion cuadratica comparando el discriminante con 0 ya sea mayor menor o igual
jueves, 17 de marzo de 2011
miércoles, 16 de marzo de 2011
jueves, 10 de marzo de 2011
TRY-CATCH
La instrucción try-catch consta de un bloque try seguido de una o más cláusulas catch, las cuales especifican controladores para diferentes excepciones.
El bloque try contiene el código protegido que puede causar la excepción. Este bloque se ejecuta hasta que se produce una excepción o hasta completarse satisfactoriamente; la cláusula catch se puede utilizar sin argumentos, en cuyo caso captura cualquier tipo de excepción y se conoce como cláusula catch general; también puede aceptar un argumento de objeto derivado de System.Exception, en cuyo caso trata una excepción específica.
Es posible utilizar más de una cláusula catch específica en la misma instrucción try-catch. En este caso, el orden de las cláusulas catch es importante, ya que las cláusulas catch se examinan por orden. Las excepciones más específicas se capturan antes que las menos específicas.
El bloque try contiene el código protegido que puede causar la excepción. Este bloque se ejecuta hasta que se produce una excepción o hasta completarse satisfactoriamente; la cláusula catch se puede utilizar sin argumentos, en cuyo caso captura cualquier tipo de excepción y se conoce como cláusula catch general; también puede aceptar un argumento de objeto derivado de System.Exception, en cuyo caso trata una excepción específica.
Es posible utilizar más de una cláusula catch específica en la misma instrucción try-catch. En este caso, el orden de las cláusulas catch es importante, ya que las cláusulas catch se examinan por orden. Las excepciones más específicas se capturan antes que las menos específicas.
jueves, 3 de marzo de 2011
jueves, 24 de febrero de 2011
ENCAPSULAMIENTO
Es el ocultamiento del estado, es decir, de los datos miembro, de un objeto de manera que sólo se puede cambiar mediante las operaciones definidas para ese objeto.
Cada objeto está aislado del exterior, es un módulo natural, y la aplicación entera se reduce a un agregado o rompecabezas de objetos. El aislamiento protege a los datos asociados a un objeto contra su modificación por quien no tenga derecho a acceder a ellos, eliminando efectos secundarios e interacciones.
De esta forma el usuario de la clase puede obviar la implementación de los métodos y propiedades para concentrarse sólo en cómo usarlos. Por otro lado se evita que el usuario pueda cambiar su estado de maneras imprevistas e incontroladas.
POLIMORFISMO
Es la capacidad para que varias clases derivadas de una antecesora utilicen un mismo método de forma diferente.
Por ejemplo, podemos crear dos clases distintas: Pez y Ave que heredan de la superclase Animal. La clase Animal tiene el método abstracto mover que se implementa de forma distinta en cada una de las subclases (peces y aves se mueven de forma distinta).
Como se mencionó anteriormente, el concepto de polimorfismo se puede aplicar tanto a funciones como a tipos de datos. Así nacen los conceptos de funciones polimórficas y tipos polimórficos. Las primeras son aquellas funciones que pueden evaluarse o ser aplicadas a diferentes tipos de datos de forma indistinta; los tipos polimórficos, por su parte, son aquellos tipos de datos que contienen al menos un elemento cuyo tipo no está especificado.
Por ejemplo, podemos crear dos clases distintas: Pez y Ave que heredan de la superclase Animal. La clase Animal tiene el método abstracto mover que se implementa de forma distinta en cada una de las subclases (peces y aves se mueven de forma distinta).
Como se mencionó anteriormente, el concepto de polimorfismo se puede aplicar tanto a funciones como a tipos de datos. Así nacen los conceptos de funciones polimórficas y tipos polimórficos. Las primeras son aquellas funciones que pueden evaluarse o ser aplicadas a diferentes tipos de datos de forma indistinta; los tipos polimórficos, por su parte, son aquellos tipos de datos que contienen al menos un elemento cuyo tipo no está especificado.
PALABRAS CLAVES
PRIVATE: Este termino indica que la clase tiene un acceso restringido, sobre todos los ususarios excepto el creador o programador, y usuarios seleccionados.
PROTECTED: Este termino indica que la clase mencionada esta protegida bajo seguridad, por el autor.
PUBLIC: Este termino indica que la clase mencionada es accesible para cualquier ususario.
PROTECTED: Este termino indica que la clase mencionada esta protegida bajo seguridad, por el autor.
PUBLIC: Este termino indica que la clase mencionada es accesible para cualquier ususario.
TIPOS DE CLASES
LA CLASE Math
La clase Math representa la librería matemática de Java. Las funciones que contiene son las de todos los lenguajes, parece que se han metido en una clase solamente a propósito de agrupación, por eso se encapsulan en Math, y lo mismo sucede con las demás clases que corresponden a objetos que tienen un tipo equivalente (Character, Float, etc.). El constructor de la clase es privado, por los que no se pueden crear instancias de la clase. Sin embargo, Math es public para que se pueda llamar desde cualquier sitio y static para que no haya que inicializarla.
LA CLASE Character
Al trabajar con caracteres se necesitan muchas funciones de comprobación y traslación. Estas funciones están empleadas en la clase Character. De esta clase sí que se pueden crear instancias, al contrario que sucede con la clase Math.
LA CLASE Float
Cada tipo numérico tiene su propia clase de objetos. Así el tipo float tiene el objeto Float. De la misma forma que con la clase Character, se han codificado muchas funciones útiles dentro de los métodos de la clase Float.
LA CLASE Double
Cada tipo numérico tiene su propia clase de objetos. Así el tipo double tiene el objeto Double. De la misma forma que con la clase Character, se han codificado muchas funciones útiles dentro de los métodos de la clase Double.
LA CLASE Integer
Cada tipo numérico tiene su propia clase de objetos. Así el tipo int tiene el objeto Integer. De la misma forma que con la clase Character, se han codificado muchas funciones útiles dentro de los métodos de la clase Integer.
LA CLASE Long
Cada tipo numérico tiene su propia clase de objetos. Así el tipo long tiene el objeto Long. De la misma forma que con la clase Character, se han codificado muchas funciones útiles dentro de los métodos de la clase Long.
LA CLASE Boolean
Los valores boolean también tienen su tipo asociado Boolean, aunque en este caso hay menos métodos implementados que para el resto de las clases numéricas
LA CLASE String
Java posee gran capacidad para el manejo de cadenas dentro de sus clases String y StringBuffer. Un objeto String representa una cadena alfanumérica de un valor constante que no puede ser cambiada después de haber sido creada. Un objeto StringBuffer representa una cadena cuyo tamaño puede variar.
Los Strings son objetos constantes y por lo tanto muy baratos para el sistema. La mayoría de las funciones relacionadas con cadenas esperan valores String como argumentos y devuelven valores String.
Hay que tener en cuenta que las funciones estáticas no consumen memoria del objeto, con lo cual es más conveniente usar Character que char. No obstante, char se usa, por ejemplo, para leer ficheros que están escritos desde otro lenguaje.
LA CLASE StringBuffer
Java posee gran capacidad para el manejo de cadenas dentro de sus clases String y StringBuffer. Un objeto String representa una cadena alfanumérica de un valor constante que no puede ser cambiada después de haber sido creada. Un objeto StringBuffer representa una cadena cuyo tamaño puede variar.
La clase StringBuffer dispone de muchos métodos para modificar el contenido de los objetos StringBuffer. Si el contenido de una cadena va a ser modificado en un programa, habrá que sacrificar el uso de objetos String en beneficio de StringBuffer, que aunque consumen más recursos del sistema, permiten ese tipo de manipulaciones.
La clase Math representa la librería matemática de Java. Las funciones que contiene son las de todos los lenguajes, parece que se han metido en una clase solamente a propósito de agrupación, por eso se encapsulan en Math, y lo mismo sucede con las demás clases que corresponden a objetos que tienen un tipo equivalente (Character, Float, etc.). El constructor de la clase es privado, por los que no se pueden crear instancias de la clase. Sin embargo, Math es public para que se pueda llamar desde cualquier sitio y static para que no haya que inicializarla.
LA CLASE Character
Al trabajar con caracteres se necesitan muchas funciones de comprobación y traslación. Estas funciones están empleadas en la clase Character. De esta clase sí que se pueden crear instancias, al contrario que sucede con la clase Math.
LA CLASE Float
Cada tipo numérico tiene su propia clase de objetos. Así el tipo float tiene el objeto Float. De la misma forma que con la clase Character, se han codificado muchas funciones útiles dentro de los métodos de la clase Float.
LA CLASE Double
Cada tipo numérico tiene su propia clase de objetos. Así el tipo double tiene el objeto Double. De la misma forma que con la clase Character, se han codificado muchas funciones útiles dentro de los métodos de la clase Double.
LA CLASE Integer
Cada tipo numérico tiene su propia clase de objetos. Así el tipo int tiene el objeto Integer. De la misma forma que con la clase Character, se han codificado muchas funciones útiles dentro de los métodos de la clase Integer.
LA CLASE Long
Cada tipo numérico tiene su propia clase de objetos. Así el tipo long tiene el objeto Long. De la misma forma que con la clase Character, se han codificado muchas funciones útiles dentro de los métodos de la clase Long.
LA CLASE Boolean
Los valores boolean también tienen su tipo asociado Boolean, aunque en este caso hay menos métodos implementados que para el resto de las clases numéricas
LA CLASE String
Java posee gran capacidad para el manejo de cadenas dentro de sus clases String y StringBuffer. Un objeto String representa una cadena alfanumérica de un valor constante que no puede ser cambiada después de haber sido creada. Un objeto StringBuffer representa una cadena cuyo tamaño puede variar.
Los Strings son objetos constantes y por lo tanto muy baratos para el sistema. La mayoría de las funciones relacionadas con cadenas esperan valores String como argumentos y devuelven valores String.
Hay que tener en cuenta que las funciones estáticas no consumen memoria del objeto, con lo cual es más conveniente usar Character que char. No obstante, char se usa, por ejemplo, para leer ficheros que están escritos desde otro lenguaje.
LA CLASE StringBuffer
Java posee gran capacidad para el manejo de cadenas dentro de sus clases String y StringBuffer. Un objeto String representa una cadena alfanumérica de un valor constante que no puede ser cambiada después de haber sido creada. Un objeto StringBuffer representa una cadena cuyo tamaño puede variar.
La clase StringBuffer dispone de muchos métodos para modificar el contenido de los objetos StringBuffer. Si el contenido de una cadena va a ser modificado en un programa, habrá que sacrificar el uso de objetos String en beneficio de StringBuffer, que aunque consumen más recursos del sistema, permiten ese tipo de manipulaciones.
SUBCLASE
Se puede decir que una subclase se deriva de una expresion que determinamos al comenzar el algoritmo, luego se deriva igual la expresion con caracteristicas diferentes por ejemplo entre mayusculas y minusculas; a continuacion damos un ejemplo claro de este:
EJEMPLO:
Una subclase se define mediante:
Java sólo permite asignar una expresión a una variable de tipo A si el tipo de la expresión es A o una subclase de A:
EJEMPLO:
Una subclase se define mediante:
class B extends A
{
// variables que B agrega a A
int z;
// Métodos que B agrega a A
// Observe que B también posee x
void Incz() { z= z+x; }
}
Java sólo permite asignar una expresión a una variable de tipo A si el tipo de la expresión es A o una subclase de A:
B b= new A(); // error, el objeto no pertence a // la clase B A a= new B(); // Ok ... B b= a; // error, la clase estática de a // no es una subclase de B.
SUB CLASES
Consideraciones importantes al usar subclases:
Se dice que A es el tipo estático de la variable a y B es el tipo dinámico de a. El tipo estático siempre se determina en tiempo de compilación mientras que el tipo dinámico en general sólo se puede conocer en tiempo de ejecución y puede cambiar.
Dada una variable a, Java sólo permite invocar los métodos y accesar las variables conocidas para el tipo estático de a.
Del mismo modo, Java sólo permite asignar una expresión a una variable de tipo A si el tipo de la expresión es A o una subclase de A:
Un objeto se puede convertir a una referencia de la clase B mediante un cast:
No todo objeto se puede convertir a la clase B.
Java chequea durante la ejecución todas las conversiones explícitas (casts). Si el objeto no pertence a la clase a la cual se pretende convertir, entonces se produce una excepción.
A a;
a= new B(); // Proyección
Se dice que A es el tipo estático de la variable a y B es el tipo dinámico de a. El tipo estático siempre se determina en tiempo de compilación mientras que el tipo dinámico en general sólo se puede conocer en tiempo de ejecución y puede cambiar.
Dada una variable a, Java sólo permite invocar los métodos y accesar las variables conocidas para el tipo estático de a.
a.Incx(); // Ok
a.x; // Ok
a.Incz(); // error, Incz no está definido para A
Del mismo modo, Java sólo permite asignar una expresión a una variable de tipo A si el tipo de la expresión es A o una subclase de A:
B b= new A(); // error, el objeto no pertence a
// la clase B
A a= new B(); // Ok
...
B b= a; // error, la clase estática de a
// no es una subclase de B.
Un objeto se puede convertir a una referencia de la clase B mediante un cast:
A a=new B();
B b=(B)a;
b.Incz(); // Ok
( (B)a ).Incz(); // Ok
No todo objeto se puede convertir a la clase B.
A a= new A();
...
B b=(B)a; // Ok, en compilación, pero
// error en tiempo de ejecución
Java chequea durante la ejecución todas las conversiones explícitas (casts). Si el objeto no pertence a la clase a la cual se pretende convertir, entonces se produce una excepción.
HERENCIA
Los métodos y variables que posee un objeto definen la clase a la cual pertenece. Por ejemplo, todos los objetos de la clase A poseen los métodos Set, Incx y Print y las variables x e y. En cambio los objetos de la clase Eslabon poseen el método Encadenar y las variables next y a.
Una variable de tipo Eslabon no puede contener una referencia a un objeto de la clase A.
Puede existir una clase B de objetos que poseen todos los métodos y todas las variables de A, pero además poseen otros métodos y/o variables que no poseen los objetos de A. En ese caso se dice que B es una subclase de A.
Una subclase se define mediante:
Se dice que la clase B hereda todas las variables y métodos de A. También se dice que B se deriva de A o que A es la clase base para B.
La jerarquía de clases permite apreciar fácilmente qué clases son subclases de otras.
Observe que todos los objetos pertenecen a la clase Object.
Una variable de tipo Eslabon no puede contener una referencia a un objeto de la clase A.
Eslabon e= new A(); // error de tipos
Puede existir una clase B de objetos que poseen todos los métodos y todas las variables de A, pero además poseen otros métodos y/o variables que no poseen los objetos de A. En ese caso se dice que B es una subclase de A.
Los objetos de la clase B también pertenecen a la clase A.El principio es que todo el código que se haya escrito para objetos de la clase A también funcionará con objetos de la clase B.
Una subclase se define mediante:
class B extends A
{
// variables que B agrega a A
int z;
// Métodos que B agrega a A
// Observe que B también posee x
void Incz() { z= z+x; }
}
Se dice que la clase B hereda todas las variables y métodos de A. También se dice que B se deriva de A o que A es la clase base para B.
La jerarquía de clases permite apreciar fácilmente qué clases son subclases de otras.
Observe que todos los objetos pertenecen a la clase Object.
DESTRUCTOR
No porque un destructor es un método que se invoca automáticamente cuando el objeto se destruye. Java no posee destructores, porque tiene recolección de basuras. C++ posee destructores.
CONSTRUCTOR
El constructor de una clase es un método estándar para inicializar los objetos de esa clase
Se invoca automáticamente cuando new crea un objeto de esa clase.
Los constructores se declaran en el momento de definir la clase.
El constructor puede tener parámetros. En este caso, se deben colocar los argumentos respectivos al crear el objeto:
Se invoca automáticamente cuando new crea un objeto de esa clase.
Los constructores se declaran en el momento de definir la clase.
class A {
int x, y;
A() { x=0; y=0; } // el constructor
...
}
A a= new A();
a.Print(); // 0 0El constructor puede tener parámetros. En este caso, se deben colocar los argumentos respectivos al crear el objeto:
class A {
int x, y;
A(int ix, int iy)
{ x=ix; y=iy; } // el constructor
...
}
A a= new A(1,2);
a.Print(); // 1 2
a= new A(); // error, hay que colocar
// los argumentos
a.A(1,2); // error, no se puede
// invocar el constructor
METODO
El metodo es la aplicacion la cual nos permite crear un algortimo con unas caracteristicas especificas, esto radica en los tipos de metodos, los cuales contiene diferentes estructuras como la visualizacion.
Por ejemplo:
Creamos el método main el cual nos ejecutara la aplicación, pero a la vez tiene restricciones en este caso no permite que el usuario ingrese datos.
METODO (SINTAXIS)
public static void main(String[] args) {
public class prueba {
int a,c,b;
public static void main () {
a=1;
b=5;
prueba opera = new prueba ()
opera.suma();
system.out.println(opera.suma(5,7));
}
public int suma (int a,int b) {
return a+b;
}
public class prueba {
int a,c,b;
public static void main () {
a=1;
b=5;
prueba opera = new prueba ()
opera.suma();
system.out.println(opera.suma(5,7));
}
public int suma (int a,int b) {
return a+b;
}
CREACION DE UN OBJETO
Todos los objetos se crean con new:
A es el tipo del objeto creado. También se dice que A es la clase del objeto o que el objeto es una instancia de la clase A. La variable a1 también es de tipo A, o análogamente a1 es de la clase A, porque a1 debe contener siempre referencias a objetos que pertenecen a la clase A.
Un objeto posee variables de instancia o campos que se pueden consultar o asignar. Los campos que posee un objeto se definen al momento de declarar la clase a la cual pertenece:
a.x= 1;
a.y= 2;
System.out.println(a.x+" "+a.y);
A a1= new A();
A es el tipo del objeto creado. También se dice que A es la clase del objeto o que el objeto es una instancia de la clase A. La variable a1 también es de tipo A, o análogamente a1 es de la clase A, porque a1 debe contener siempre referencias a objetos que pertenecen a la clase A.
Un objeto posee variables de instancia o campos que se pueden consultar o asignar. Los campos que posee un objeto se definen al momento de declarar la clase a la cual pertenece:
class A { int x, y; }
A a= new A();a.x= 1;
a.y= 2;
System.out.println(a.x+" "+a.y);
COMO CREA UNA CLASE
NOTA: Para crear la clase antes se debe haber creado un proyecto
en esta imagen podemos observar que la primera ventana que aparece es en la cual elegimos el tipo de clase a crear
en esta ventana introducimos el nombre de la clase y la ubicacion para guardar los avances
jueves, 17 de febrero de 2011
MENU
Este es el menu que recopila los ejemplos de los ejercicios:
- secuencial
- condicional
- for
- while
- do-while
- vector
- matriz
- switch
Suscribirse a:
Entradas (Atom)