miércoles, 18 de mayo de 2011
Polimorfismo
El concepto de Polimorfismo es uno de los fundamentos para cualquier lenguaje orientado a Objetos, las mismas raíces de la palabra pueden ser una fuerte pista de su significado:
El poder manipular un Objeto como si éste fuera de un tipo genérico otorga mayor flexibilidad al momento de programar con Objetos, el término Polimorfismo también es asociado con un concepto llamado Late-Binding (Ligamiento Tardío),
EJEMPLO:
En el código fuente de
$ java Musica
Guitarra.tocar()
Piano.tocar()
Saxofon.tocar()
Guzla.tocar()
Ukelele.tocar()
Poli = Multiple
, morfismo= Formas
, esto implica que un mismo Objeto puede tomar diversas formas.El poder manipular un Objeto como si éste fuera de un tipo genérico otorga mayor flexibilidad al momento de programar con Objetos, el término Polimorfismo también es asociado con un concepto llamado Late-Binding (Ligamiento Tardío),
EJEMPLO:
import java.util.*; class Instrumento { public void tocar() { System.out.println("Instrumento.tocar()"); } public String tipo() { return "Instrumento"; } public void afinar() {} } class Guitarra extends Instrumento { public void tocar() { System.out.println("Guitarra.tocar()"); } public String tipo() { return "Guitarra"; } public void afinar() {} } class Piano extends Instrumento { public void tocar() { System.out.println("Piano.tocar()"); } public String tipo() { return "Piano"; } public void afinar() {} } class Saxofon extends Instrumento { public void tocar() { System.out.println("Saxofon.tocar()"); } public String tipo() { return "Saxofon"; } public void afinar() {} } // Un tipo de Guitarra class Guzla extends Guitarra { public void tocar() { System.out.println("Guzla.tocar()"); } public void afinar() { System.out.println("Guzla.afinar()"); } } // Un tipo de Guitarra class Ukelele extends Guitarra { public void tocar() { System.out.println("Ukelele.tocar()"); } public String tipo() { return "Ukelele"; } } public class Musica { // No importa el tipo de Instrumento, // seguirá funcionando debido a Polimorfismo: static void afinar(Instrumento i) { // ... i.tocar(); } static void afinarTodo(Instrumento[] e) { for(int i = 0; i < e.length; i++) afinar(e[i]); } public static void main(String[] args) { Instrumento[] orquesta = new Instrumento[5]; int i = 0; // Up-casting al asignarse el Arreglo orquesta[i++] = new Guitarra(); orquesta[i++] = new Piano(); orquesta[i++] = new Saxofon(); orquesta[i++] = new Guzla(); orquesta[i++] = new Ukelele(); afinarTodo(orquesta); } }
Clase Musica
En el código fuente de
Musica.java
son diseñadas diversas Clases que demuestran el uso de Polimorfismo: Instrumento
: Es utilizada como la Clase Base para el resto de Clases y en ella son definidos tres métodos:tocar,tipo
yafinar
.Guitarra
: Hereda ("Inherit") de la ClaseInstrumento
y redefine ("Override") los métodos de ésta.Piano
: Hereda ("Inherit") de la ClaseInstrumento
y redefine ("Override") los métodos de ésta.Saxofon
: Hereda ("Inherit") de la ClaseInstrumento
y redefine ("Override") los métodos de ésta.Guzla
: Hereda ("Inherit") de la ClaseGuitarra
y redefine ("Override") los métodos de ésta.Ukelele
: Hereda ("Inherit") de la ClaseGuitarra
y redefine ("Override") los métodos de ésta.
Musica
son descritas en los siguientes incisos: - El primer método definido en esta Clase llamado
afinar
toma como valor de entrada una referencia del tipoInstrumento
, sobre la cual es invocado el métodotocar
. - Un segundo método nombrado
afinarTodo
toma como valor de inicia un arreglo deInstrumento
, el cual es procesado por un ciclo que a su vez manda llamar el métodoafinar
con los respectivos valores del arreglo. - Dentro del método principal se define lo siguiente:
- Primeramente se genera un arreglo de
Instrumento
para 5 Objetos. - Se inicializa un primitivo
i
con un valor de cero. - A través de la referencia
orquesta
son asignados distintos Objetos al arreglo, nótese que aunque el arreglo es de tipoInstrumento
es posible asignar los Objetos:Guitarra,Piano,Saxofon,Guzla,Ukelele
. - Finalmente se invoca el método
afinarTodo
con la referencia que representa el arreglo deInstrumento
.
$ java Musica
Guitarra.tocar()
Piano.tocar()
Saxofon.tocar()
Guzla.tocar()
Ukelele.tocar()
Herencias Múltiples
Herencia múltiple: una clase puede heredar características de una o más clases, por lo tanto, puede tener varios padres.
ejemplo:
ejemplo:
import java.util.*; interface PuedeCurar { void curar(); } interface PuedeConsultar { void consultar(); } interface PuedeRecetar{ void recetar(); } class Cirujano { public void operar() { System.out.println("Cirujano.operar()"); } } class Medico extends Cirujano implements PuedeCurar, PuedeConsultar, PuedeRecetar { public void curar() { System.out.println("Medico.curar()"); } public void consultar() { System.out.println("Medico.consultar()"); } public void recetar() { System.out.println("Medico.recetar()"); } } class Cardiologo { static void r(PuedeCurar x) { x.curar(); } static void s(PuedeConsultar x) { x.consultar(); } static void t(PuedeRecetar x) { x.recetar(); } static void u(Cirujano x) { x.operar(); } public static void main(String[] args) { Medico m = new Medico(); r(m); s(m); t(m); u(m); } }
Interfases PuedeCurar,PuedeConsultar,PuedeRecetar.
Cada una de estas interfases define un método el cual deberá ser implementado en las respectivas Clases que hagan uso de las interfases.Clase Cirujano.
Esta Clase simplemente define un método llamadooperar
que imprime un mensaje a pantalla.Clase Medico.
Contiene la mayor parte de código funcional de este archivo fuente:- Es definida al igual que cualquier otra Clase con el vocablo
class
. - Se utiliza el vocablo
extends
para heredar ("Inherit") el comportamiento de la ClaseCirujano
. - Seguido se implementan las interfases
PuedeCurar,PuedeConsultar,PuedeRecetar
a través deimplements
, esto obliga a que sean definidos los métodos de las diversas interfases. - Son escritas las diversas implementaciones de los métodos de cada interfase, los cuales envían un mensaje a pantalla.
Clase Cardiologo.
- Dentro del método principal (
main
) de esta Clase se genera una instancia de la ClaseMedico
. - A través de dicha referencia son invocados los diversos métodos locales
r,s,t,u
. - El método
r
manda llamar la funcióncurar
, nótese que aunque el dato de entrada aparece comoPuedeCurar
(Interfase) la invocación se lleva acabo directamente de la ClaseMedico
. - El método
s
manda llamar la funciónconsultar
, nótese que aunque el dato de entrada aparece comoPuedeConsultar
(Interfase) la invocación se lleva acabo directamente de la ClaseMedico
. - El método
t
manda llamar la funciónrecetar
, nótese que aunque el dato de entrada aparece comoPuedeRecetar
(Interfase) la invocación se lleva acabo directamente de la ClaseMedico
. - El método
u
invoca la funciónoperar
disponible en la ClaseCirujano
.
Interfases
Una Interfase es una Clase abstracta llevada al extremo, la cual permite pre-definir el uso de métodos/campos en futuras clases tal como: Una jerarquía de Instrumentos restringido al uso de una Interfase Instrumento, o bien, una estructura de Figuras al uso de la Interfase Figura.
Una Interfase básicamente dice: "Todas las Clases que implementen esta Interfase deben contener su misma estructura", para definir una Interfase se utiliza el vocablo
Una característica especifica de Interfases que no es posible a través de Clases Abstractas es el uso de Herencias Múltiples ("Multiple Inheritance"), este concepto reside en diseñar Clases que adoptan el comportamiento de más de una Clase
ejemplo:
Una Interfase básicamente dice: "Todas las Clases que implementen esta Interfase deben contener su misma estructura", para definir una Interfase se utiliza el vocablo
interface
y para especificar que una Clase debe utilizar determinada Interfase se utiliza el vocablo implements
.Una característica especifica de Interfases que no es posible a través de Clases Abstractas es el uso de Herencias Múltiples ("Multiple Inheritance"), este concepto reside en diseñar Clases que adoptan el comportamiento de más de una Clase
ejemplo:
import java.util.*; interface Instrumento { // Constante al compilar, automáticamente static y final int i = 5; // Métodos Automáticamente Públicos void tocar(); String tipo(); void afinar(); } class Guitarra implements Instrumento { public void tocar() { System.out.println("Guitarra.tocar()"); } public String tipo() { return "Guitarra"; } public void afinar() {} } class Piano implements Instrumento { public void tocar() { System.out.println("Piano.tocar()"); } public String tipo() { return "Piano"; } public void afinar() {} } class Saxofon implements Instrumento { public void tocar() { System.out.println("Saxofon.tocar()"); } public String tipo() { return "Saxofon"; } public void afinar() {} } // Un tipo de Guitarra class Guzla extends Guitarra { public void tocar() { System.out.println("Guzla.tocar()"); } public void afinar() { System.out.println("Guzla.afinar()"); } } // Un tipo de Guitarra class Ukelele extends Guitarra { public void tocar() { System.out.println("Ukelele.tocar()"); } public String tipo() { return "Ukelele"; } } public class Musica3 { // No importa el tipo de Instrumento, // seguirá funcionando debido a Polimorfismo: static void afinar(Instrumento i) { // ... i.tocar(); } static void afinarTodo(Instrumento[] e) { for(int i = 0; i < e.length; i++) afinar(e[i]); } public static void main(String[] args) { // Declarar un Arreglo SIN INSTANCIAS es válido en Clases Abstractas Instrumento[] orquesta = new Instrumento[5]; int i = 0; // Up-casting al asignarse el Arreglo orquesta[i++] = new Guitarra(); orquesta[i++] = new Piano(); orquesta[i++] = new Saxofon(); orquesta[i++] = new Guzla(); orquesta[i++] = new Ukelele(); afinarTodo(orquesta); } }
Clases Abstractas.
Al ser utilizado Herencias ("Inheritance") y/o Polimorfismo es muy común que en la Clase Base existan métodos diseñados únicamente con el propósito de ofrecer una guia para las Clases heredadas, en Java existe un vocablo que permite prohibir el uso de métodos en Clases Base, este calificativo es : abstract.Al ser definido un método como abstract se restringe que éste sea llamado directamente, cuando una Clase contiene un método de este tipo a ésta se le llama: Clase Abstracta.
Al ser definida una Clase, además de ser declarados los métodos/campos como abstract también es necesario utilizar el vocablo abstract en la definición de cada Clase.
Una de las características de las Clases que Heredan("Inherit") de una Clase abstracta, es que éstas deben definir los mismos métodos definidos en la Clase Base; en Java existe otro mecanismo que permite llevar acabo diseños donde se parte de una Estructura o Cápsula.
ejemplo
Al ser definida una Clase, además de ser declarados los métodos/campos como abstract también es necesario utilizar el vocablo abstract en la definición de cada Clase.
Una de las características de las Clases que Heredan("Inherit") de una Clase abstracta, es que éstas deben definir los mismos métodos definidos en la Clase Base; en Java existe otro mecanismo que permite llevar acabo diseños donde se parte de una Estructura o Cápsula.
ejemplo
import java.util.*; abstract class Instrumento { public abstract void tocar(); public String tipo() { return "Instrumento"; } public abstract void afinar(); } class Guitarra extends Instrumento { public void tocar() { System.out.println("Guitarra.tocar()"); } public String tipo() { return "Guitarra"; } public void afinar() {} } class Piano extends Instrumento { public void tocar() { System.out.println("Piano.tocar()"); } public String tipo() { return "Piano"; } public void afinar() {} } class Saxofon extends Instrumento { public void tocar() { System.out.println("Saxofon.tocar()"); } public String tipo() { return "Saxofon"; } public void afinar() {} } // Un tipo de Guitarra class Guzla extends Guitarra { public void tocar() { System.out.println("Guzla.tocar()"); } public void afinar() { System.out.println("Guzla.afinar()"); } } // Un tipo de Guitarra class Ukelele extends Guitarra { public void tocar() { System.out.println("Ukelele.tocar()"); } public String tipo() { return "Ukelele"; } } public class Musica2 { // No importa el tipo de Instrumento, // seguirá funcionando debido a Polimorfismo: static void afinar(Instrumento i) { // ... i.tocar(); } static void afinarTodo(Instrumento[] e) { for(int i = 0; i < e.length; i++) afinar(e[i]); } public static void main(String[] args) { // Declarar un Arreglo SIN INSTANCIAS es valido en Clases Abstractas Instrumento[] orquesta = new Instrumento[5]; // Generar una INSTANCIA de una la Clase Abstracta no es valido // Instrumento nuevo = new Instrumento(); int i = 0; // Up-casting al asignarse el Arreglo orquesta[i++] = new Guitarra(); orquesta[i++] = new Piano(); orquesta[i++] = new Saxofon(); orquesta[i++] = new Guzla(); orquesta[i++] = new Ukelele(); afinarTodo(orquesta); } }
jueves, 31 de marzo de 2011
herencia
La herencia en java
Java permite el empleo de la herencia , característica muy potente que permite definir una clase tomando como base a otra clase ya existente. Esto es una de las bases de la reutilización de código, en lugar de copiar y pegar.
En java, como ya vimos la herencia se especifica agregando la claúsula extends después del nombre de la clase. En la claúsula extends indicaremos el nombre de la clase base de la cuál queremos heredar.
Al heredar de una clase base, heredaremos tanto los atributos como los métodos, mientras que los constructores son utilizados, pero no heredados.
Practicas:
Construyamos la clase Taxista.java con el siguiente código:
public class Taxista extends Persona {
private int nLicencia;
public void setNLicencia(int num)
{
nLicencia = num;
}
public int getLicencia()
{
return nLicencia;
}
}
Java permite el empleo de la herencia , característica muy potente que permite definir una clase tomando como base a otra clase ya existente. Esto es una de las bases de la reutilización de código, en lugar de copiar y pegar.
En java, como ya vimos la herencia se especifica agregando la claúsula extends después del nombre de la clase. En la claúsula extends indicaremos el nombre de la clase base de la cuál queremos heredar.
Al heredar de una clase base, heredaremos tanto los atributos como los métodos, mientras que los constructores son utilizados, pero no heredados.
Practicas:
Construyamos la clase Taxista.java con el siguiente código:
public class Taxista extends Persona {
private int nLicencia;
public void setNLicencia(int num)
{
nLicencia = num;
}
public int getLicencia()
{
return nLicencia;
}
}
operador this
Apuntador this
Cuando hacemos una llamada a una función miembro de un objeto, el compilador se encargará de pasar implícitamente como argumento: a un apuntador que contenga la dirección del objeto.
A este apuntador se lo llama, el apuntador
this
(palabra reservada del lenguaje C++). Además de este uso implícito por parte del compilador, se puede usar this
explícitamente para referirse al objeto.Dependiendo del tipo de función en la cual se use
this
, tendrá diferente tipo.En una función miembro no constante:
NomObjeto * const //(apuntador constante a un objeto no constante)En una función miembro constante:
const NomObjeto * const //(apuntador constante a un objeto constante)A continuación veremos cómo utilizar el apuntador
this
, de manera implícita (como veníamos haciendolo) y de manera explícita. Cabe recalcar que cuando lo usemos de manera explícita, utilizaremos
->
(un menos y el mayor) ya que se trata de un apuntador y no del objeto en sí dónde deberíamos usar simplemente el .
(punto).#include <iostream> using std::cout; using std::endl; class Prueba { public: Prueba(int y = 0) { this->x = y; //usamos apuntador this explicito. } int Obtener(void) { return x; //usamos apuntador this implicito } private: int x; }; int main() { Prueba objeto1(5); cout << objeto1.Obtener() << endl; return 0; }Para compilar este programa utilizaremos:
g++ apuntThis.cpp -o apuntThis.out
miércoles, 30 de marzo de 2011
jueves, 17 de marzo de 2011
jueves, 10 de marzo de 2011
jueves, 24 de febrero de 2011
encapsulamiento
El encapsulamiento es el proceso por el cual los datos que se deben enviar a través de una red se deben colocar en paquetes que se puedan administrar y rastrear. El encapsulado consiste pues en ocultar los detalles de implementación de un objeto, pero a la vez se provee una interfaz pública por medio de sus operaciones permitidas. Considerando lo anterior también se define el encapsulado como la propiedad de los objetos de permitir el acceso a su estado únicamente a través de su interfaz o de relaciones preestablecidas con otros objetos.
POLIMORFISMO
Característica de Java que permite tomar como algo igual a un nivel superior dos cosas que son diferentes a
un nivel más bajo. Ejemplo: animal, gato y perro. Los dos son animales a un nivel alto de abstracción (animal) pero diferentes a un nivel inferior. El polimorfismo básicamente permite olvidarse de ciertas carcterísticas específicas de varios objetos para centrarse en lo que tengan en común, en lo que los haga iguales
un nivel más bajo. Ejemplo: animal, gato y perro. Los dos son animales a un nivel alto de abstracción (animal) pero diferentes a un nivel inferior. El polimorfismo básicamente permite olvidarse de ciertas carcterísticas específicas de varios objetos para centrarse en lo que tengan en común, en lo que los haga iguales
ENCAPSULAMIENTO DE CLASES
private: Solo se puede acceder a las variables desde el codigo de la propia clase.
protected: Se pude acceder a las variables desde las clases que esten en el mismo paquete o que "hereden" de esa clase.
public: Se puede acceder a las variables desde cualquier otra clase (no solo las del paquete).
protected: Se pude acceder a las variables desde las clases que esten en el mismo paquete o que "hereden" de esa clase.
public: Se puede acceder a las variables desde cualquier otra clase (no solo las del paquete).
TIPOS DE SUBCLASES
Tipos de Clases
Hasta ahora sólo se ha utilizado la palabra clave public para calificar el nombre de las clases que hemos visto, pero hay tres modificadores más. Los tipos de clases que podemos definir son:
abstract
Una clase abstract tiene al menos un método abstracto. Una clase abstracta no se instancia, sino que se utiliza como clase base para la herencia.
final
Una clase final se declara como la clase que termina una cadena de herencia. No se puede heredar de una clase final. Por ejemplo, la clase Math es una clase final.
public
Las clases public son accesibles desde otras clases, bien sea directamente o por herencia. Son accesibles dentro del mismo paquete en el que se han declarado. Para acceder desde otros paquetes, primero tienen que ser importadas.
synchronizable
Este modificador especifica que todos los métodos definidos en la clase son sincronizados, es decir, que no se puede acceder al mismo tiempo a ellos desde distintos threads; el sistema se encarga de colocar los flags necesarios para evitarlo. Este mecanismo hace que desde threads diferentes se puedan modificar las mismas variables sin que haya problemas de que se sobreescriban.
subclase
Un mecanismo clave que permite obtener estas ventajas es la redefinición, que especializa el comportamiento para algunos métodos. En ausencia de redefinición, cualquier alteración del comportamiento (aunque se trate de una alteración compatible) podría forzar una reimplementación completa
herencia
La idea de la herencia es permitir la creación de nuevas clases basadas en clases existentes.
Cuando heredamos de una clase existente, reusamos (o heredamos) métodos y campos, y agregamos nuevos campos y métodos para cumplir con la situación nueva.
Cada vez que encontremos la relación "es-un" entre dos clases, estamos ante la presencia de herencia.
La clase ya existente es llamada superclass, o clase base, o clase padre.
La clase nueva es llamada subclase, clase derivada, o clase hija.
A través de la herencia podemos agregar nuevos campos, y podemos agregar o sobre montar métodos (override). Sobre montar un método es redefinirlo en la case heredada.
Cuando heredamos de una clase existente, reusamos (o heredamos) métodos y campos, y agregamos nuevos campos y métodos para cumplir con la situación nueva.
Cada vez que encontremos la relación "es-un" entre dos clases, estamos ante la presencia de herencia.
La clase ya existente es llamada superclass, o clase base, o clase padre.
La clase nueva es llamada subclase, clase derivada, o clase hija.
A través de la herencia podemos agregar nuevos campos, y podemos agregar o sobre montar métodos (override). Sobre montar un método es redefinirlo en la case heredada.
destructor?
Cuando un objeto no va a ser utilizado, el espacio de memoria de dinámica que utiliza ha de ser explícitamente.
El recolector de basura será el encargado de liberar una zona de memoria dinámica que había sido reservada mediante el operador new, cuando el objeto ya no va a ser utilizado más durante el programa (por ejemplo, sale del ámbito de utilización, o no es referenciado nuevamente).
constructor
El constructor es un tipo específico de método que siempre tiene el mismo nombre que la clase.
Cuando se declara una clase en Java, se pueden declarar uno o más constructores opcionales que realizan la inicialización cuando se instancia (se crea una ocurrencia) un objeto de dicha clase.
public class Arboles {
public Arboles() {
System.out.println("Un árbol genérico");
}
public Arboles(String tipo) {
System.out.println("Un árbol tipo " + tipo);
}
public Arboles(int altura) {
System.out.println("Un árbol de " + altura + " metros");
}
public Arboles(int altura,String tipo) {
System.out.println("Un " + tipo + " de " + altura + " metros");
}
public static void main(String args[]) {
Arboles arbol1 = new Arboles(4);
Arboles arbol2 = new Arboles("Roble");
Arboles arbol3 = new Arboles();
Arboles arbol4 = new Arboles(5,"Pino");
}
}
Cuando se declara una clase en Java, se pueden declarar uno o más constructores opcionales que realizan la inicialización cuando se instancia (se crea una ocurrencia) un objeto de dicha clase.
public class Arboles {
public Arboles() {
System.out.println("Un árbol genérico");
}
public Arboles(String tipo) {
System.out.println("Un árbol tipo " + tipo);
}
public Arboles(int altura) {
System.out.println("Un árbol de " + altura + " metros");
}
public Arboles(int altura,String tipo) {
System.out.println("Un " + tipo + " de " + altura + " metros");
}
public static void main(String args[]) {
Arboles arbol1 = new Arboles(4);
Arboles arbol2 = new Arboles("Roble");
Arboles arbol3 = new Arboles();
Arboles arbol4 = new Arboles(5,"Pino");
}
}
definicion de un metodo
como se crea
cuenta1.depositar(300);
Esta línea de código invoca al método despositar y provoca un cambio de valor en el atributo saldo del objeto de la clase CuentaBancaria cuya referencia es cuenta1: antes de la llamada, el saldo era de 1000, pero después será de 1300.
Ejemplo:
...
...
cuenta1.depositar(300);
Esta línea de código invoca al método despositar y provoca un cambio de valor en el atributo saldo del objeto de la clase CuentaBancaria cuya referencia es cuenta1: antes de la llamada, el saldo era de 1000, pero después será de 1300.
Ejemplo:
...
public void retirar(double cantidad) throws NoFondosDisponiblesException {
if (saldo >= cantidad) {
saldo = saldo - cantidad;
}else
throw new NoFondosDisponiblesException("No hay suficientes fondos");
}
public void depositar(double cantidad){
}
if(cantidad > 0){
saldo = saldo + cantidad;
}
...
metodo
Los métodos permiten a las clases modificar el comportamiento de los objetos, cambiando los valores de los atributos e interactuando con otros métodos de la clase que expongan una determinada funcionalidad precisada
Los métodos son funciones que pueden ser llamadas dentro de la clase o por otras clases:
Los métodos son funciones que pueden ser llamadas dentro de la clase o por otras clases:
- Un bloque de código que tiene un nombre,
- recibe unos parámetros o argumentos (opcionalmente),
- contiene sentencias o instrucciones para realizar algo (opcionalmente) y
- devuelve un valor de algún Tipo conocido (opcionalmente).
objeto
un objeto es una representacion de una entidad real, de manera que cuando nos referimos a este estamos hablando del conjunto de características que posee.
un objeto consta de atributos y métodos.
como se crea?
se definen las características del objeto(en este caso uno de clase 'persona' )
class Persona
{
string Nombre; // Campo de cada objeto Persona que almacena su nombre
int Edad; // Campo de cada objeto Persona que almacena su edad string NIF; // Campo de cada objeto Persona que almacena su NIF
void Cumpleaños() // Incrementa en uno la edad del objeto Persona
{
Edad++;
}
Persona (string nombre, int edad, string nif) // Constructor
{
Nombre = nombre;
Edad = edad;
NIF = nif;
}
}
un objeto consta de atributos y métodos.
como se crea?
se definen las características del objeto(en este caso uno de clase 'persona' )
class Persona
{
string Nombre; // Campo de cada objeto Persona que almacena su nombre
int Edad; // Campo de cada objeto Persona que almacena su edad string NIF; // Campo de cada objeto Persona que almacena su NIF
void Cumpleaños() // Incrementa en uno la edad del objeto Persona
{
Edad++;
}
Persona (string nombre, int edad, string nif) // Constructor
{
Nombre = nombre;
Edad = edad;
NIF = nif;
}
}
clase
una clase explica los atributos y métodos que puede tener un objeto que pertenezca a esa clase (un objeto una representacion de las cualidades de una entidad real).
Como se crea:
1. Importar un paquete io de JAVA (import java.io.*;)
2. Definir el flujo de caracteres de la entrada :
public class readData {
public static String readStr() {
String sdato = "";
try{
BufferedReader readIn = new BufferedReader(new InputStreamReader(System.in));
sdato = readIn.readLine();
} catch( IOException e) {
System.err.println("Error: " + e.getMessage());
}
return sdato;
}
}
compilacion:
Así que des pues de esto compilamos, la clase para crear el *.class, una vez compilada la clase podemos utilizarla en nuestros programas, nada mas que solo nos serviría para datos de tipo String. Aquí un ejemplo de como se utilizaría:
import java.io.*;
class testRead01{
public static void main(String args[]){
String Nombre = "";
System.out.println("Escribe tu nombre: "); Nombre = readData.readStr();
System.out.println("Tu nombre es: " + Nombre);
}
}
Como se crea:
1. Importar un paquete io de JAVA (import java.io.*;)
2. Definir el flujo de caracteres de la entrada :
public class readData {
public static String readStr() {
String sdato = "";
try{
BufferedReader readIn = new BufferedReader(new InputStreamReader(System.in));
sdato = readIn.readLine();
} catch( IOException e) {
System.err.println("Error: " + e.getMessage());
}
return sdato;
}
}
compilacion:
Así que des pues de esto compilamos, la clase para crear el *.class, una vez compilada la clase podemos utilizarla en nuestros programas, nada mas que solo nos serviría para datos de tipo String. Aquí un ejemplo de como se utilizaría:
import java.io.*;
class testRead01{
public static void main(String args[]){
String Nombre = "";
System.out.println("Escribe tu nombre: "); Nombre = readData.readStr();
System.out.println("Tu nombre es: " + Nombre);
}
}
Suscribirse a:
Entradas (Atom)