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.

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.

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

Banco

Podemos ver como se ejecuta el programa de funcion logica, relacionado a una oficina bancaria.

jueves, 31 de marzo de 2011

HERENCIA


Podemos ver como se invoca los objetos desde el metodo Main

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, 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, 10 de marzo de 2011

PUNTO NUMERO CUATRO

AREAS

CLASE OPERACIONES BASICAS

PUNTO NUMERO 2

TRY-CATCH

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.

SEGUNDO PROGRAMA


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.

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.

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.

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:
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:
Una variable de la clase A, también puede contener referencias a objetos de la clase B, porque estos objetos pertenecen a la clase B y a la clase A. Este concepto se denomina proyecció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.
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.

class A {
  int x, y;
  A() { x=0; y=0; } // el constructor
  ...
}

A a= new  A();
a.Print(); // 0 0


El 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;
}

CREACION DE UN OBJETO

Todos los objetos se crean con new:

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:
  1. secuencial
  2. condicional
  3. for
  4. while
  5. do-while
  6. vector
  7. matriz
  8. switch