Aquí se publicarán algunos ejemplos de POO
Ejemplo de Herencia simple y sin clases abstractas
//////////CLASE RECTANGULO
package poo_herencia1;
public class Rectangulo {
private double largo;
private double ancho;
public Rectangulo(double largo, double ancho){
this.largo = largo;
this.ancho = ancho;
}
public double area(){
double res = ancho * largo;
return res;
}
public String soy(){
return "Soy de la clase RECTANGULO";
}
}
/////CLASE TERRENO
package poo_herencia1;
public class Terreno extends Rectangulo{
private double pm2;
public Terreno(double largo, double ancho, double pm2){
super(largo,ancho);
this.pm2 = pm2;
}
public double costoTerreno(){
return super.area() * pm2;
}
@Override
public String soy(){
return "Soy de la clase TERRENO";
}
}
////CLASE PRINCIPAL
package poo_herencia1;
public class Principal {
public static void main(String[] args) {
Terreno t = new Terreno(20, 10, 2000);
System.out.println("Precio:" + t.costoTerreno() );
System.out.println("Area: " + t.area() );
// ARREGLO DE LA CLASE PADRE
Rectangulo arr[] = new Rectangulo[3];
arr[0] = new Rectangulo(20,15);
arr[1] = new Terreno(15, 5, 100);
arr[2] = new Rectangulo(10,5);
////POLIMORFISMO
for (int i=0; i<3; i++){
System.out.println("..."+arr[i].soy() );
}
}
}
Ejemplo de herencia con clase abstracta
//// CLASE ABSTRACTA FIGURA
package poo_herenciaabstractatics;
public abstract class Figura {
public abstract double area();
public abstract String soy();
}
/// CLASE CIRCULO
package poo_herenciaabstractatics;
public class Circulo extends Figura{
private double radio;
public Circulo(double ra){
this.radio = ra;
}
@Override
public double area(){
return Math.PI * radio * radio;
}
@Override
public String soy() {
return "Soy un Círculo...";
}
}
///CLASE ROMBO
package poo_herenciaabstractatics;
public class Rombo extends Figura {
private double dMenor;
private double dMayor;
public Rombo(double diagMenor, double diagMayor){
this.dMenor = diagMenor;
this.dMayor = diagMayor;
}
@Override
public double area() {
return (dMayor * dMenor)/2;
}
@Override
public String soy() {
return "Soy rombo...";
}
}
///CLASE PRINCIPAL
package poo_herenciaabstractatics;
public class Principal {
public static void main(String[] args) {
Circulo c = new Circulo(5.5);
Rombo r = new Rombo(10,5);
Figura arreglo[]= new Figura[2];
arreglo[0] = c;
arreglo[1] = r;
///POLIMORFISMO
for(int i=0; i<2;i++){
System.out.println("Soy:"+ arreglo[i].soy() );
System.out.println("Area:"+arreglo[i].area() );
}
}
}
Ejemplo de archivos de texto sin buffer
///CLASE MANEJADOR ARCHIVO
package poo_archivostexto;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class ManejadorArchivo {
private String archivo;
public ManejadorArchivo(String archivo) {
this.archivo = archivo;
}
public void añadir(String frase ){
File objFile = new File(archivo);
try { // true es para añadir
FileWriter escritor = new FileWriter(objFile,true);
for(int i = 0; i<frase.length(); i++){
escritor.write(frase.charAt(i));
}
escritor.write('\n');
escritor.close();
} catch (FileNotFoundException ex) {
System.out.println("Archivo no se pudo crear");
} catch (IOException ioe){
System.out.println("Error de escritura");
}
}
public void leer(){
File objFile = new File(archivo);
try {
FileReader lector = new FileReader(objFile);
int numcar = lector.read();
while(numcar!=-1){
char car = (char) numcar;
System.out.print(car);
numcar = lector.read();
}
lector.close();
} catch (FileNotFoundException ex) {
System.out.println("Archivo inexistente");
} catch (IOException ioe){
System.out.println("Error de lectura");
}
}
}
////CLASE PRINCIPAL
package poo_archivostexto;
public class POO_archivosTexto {
public static void main(String[] args) {
ManejadorArchivo m =
new ManejadorArchivo("C:\\temporal\\texto.txt");
//LECTURA
m.leer();
//AÑADIR LINEAS
System.out.println("Añadiendo");
m.añadir("se acerca el fin de semestre");
}
}
Ejemplo de archivos de texto CON BUFFER
///CLASE MANEJADORA
package poo_archivostextobuffered;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class Manejador {
private String archivo;
public Manejador(String archivo) {
this.archivo = archivo;
}
public void añadir(String frase ){
File objFile = new File(archivo);
try { // true es para añadir
FileWriter escritor = new FileWriter(objFile,true);
BufferedWriter escritorRapido =
new BufferedWriter(escritor);
escritorRapido.write(frase);
escritorRapido.newLine();
escritorRapido.flush();
escritorRapido.close();
} catch (FileNotFoundException ex) {
System.out.println("Archivo no se pudo crear");
} catch (IOException ioe){
System.out.println("Error de escritura");
}
}
public void crear(String frase ){
File objFile = new File(archivo);
try {
FileWriter escritor = new FileWriter(objFile);
BufferedWriter escritorRapido =
new BufferedWriter(escritor);
escritorRapido.write(frase);
escritorRapido.newLine();
escritorRapido.flush();
escritorRapido.close();
} catch (FileNotFoundException ex) {
System.out.println("Archivo no se pudo crear");
} catch (IOException ioe){
System.out.println("Error de escritura");
}
}
public String leer(){
File objFile = new File(archivo);
String respuesta="";
try {
FileReader lector = new FileReader(objFile);
BufferedReader lectorRapido = new BufferedReader(lector);
String linea=lectorRapido.readLine();
while( linea!=null ){
respuesta+=linea+"\n";
linea=lectorRapido.readLine();
}
lectorRapido.close();
} catch (FileNotFoundException ex) {
System.out.println("Archivo inexistente");
} catch (IOException ioe){
System.out.println("Error de lectura");
}
return respuesta;
}
}
/// CLASE PRINCIPAL, se incluye uso de StringTokenizer para manipular campos de registro
package poo_archivostextobuffered;
import static java.lang.System.exit;
import java.util.Scanner;
import java.util.StringTokenizer;
public class Principal {
public static void main(String[] args) {
Manejador manager = new Manejador("C:\\temporal\\texto.txt");
Scanner scanner = new Scanner(System.in);
for(;;){
System.out.println("\n1.-Crear archivo");
System.out.println("2.-Leer archivo");
System.out.println("3.-Añadir al archivo");
System.out.println("4.-Salir");
System.out.print("Elija---> ");
int opcion = Integer.parseInt(scanner.nextLine());
if(opcion>=1 && opcion<=3){
switch(opcion){
case 1: ///CREAR
System.out.println("Teclea nombre: ");
String nombrec = scanner.nextLine();
System.out.println("Teclea NoControl: ");
String ncc = scanner.nextLine();
System.out.println("Teclea Edad: ");
String edadc = scanner.nextLine();
manager.crear(nombrec+"|"+ncc+"|"+edadc ); break;
case 2: ///AÑADIR
String r=manager.leer();
StringTokenizer str = new StringTokenizer(r, "\n");
while( str.hasMoreTokens()==true ) {
String f=str.nextToken();
StringTokenizer str2 = new StringTokenizer(f, "|");
String campoNombre= str2.nextToken();
String campoNc = str2.nextToken();
String campoEdad = str2.nextToken();
System.out.println("Nombre:" +campoNombre );
System.out.println("NC :" +campoNc );
System.out.println("Edad :" +campoEdad );
}
break;
case 3: //LEER
System.out.println("Teclea nombre: ");
String nombre = scanner.nextLine();
System.out.println("Teclea NoControl: ");
String nc = scanner.nextLine();
System.out.println("Teclea Edad: ");
String edad = scanner.nextLine();
manager.añadir(nombre+"|"+nc+"|"+edad ); break;
}
}
else
exit(0);
}
}
}
Ejemplo de archivos binarios para SERIALIZAR OBJETOS
////CLASE ESTUDIANTES serializable
package poo_archivosobjetos;
import java.io.Serializable;
public class Estudiante implements Serializable {
private int numeroDeControl;
private String nombre;
public Estudiante(int nc, String nombre){
this.numeroDeControl =nc;
this.nombre = nombre;
}
@Override
public String toString (){
return "soy " + nombre + " con número de control "
+ numeroDeControl;
}
public int getNumeroDeControl() {
return numeroDeControl;
}
public void setNumeroDeControl(int numeroDeControl) {
this.numeroDeControl = numeroDeControl;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
}
//// CLASE MANEJADOR
package poo_archivosobjetos;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
public class ManejadorObjetos {
private String archivo;
public ManejadorObjetos(String archivo) {
this.archivo = archivo;
}
public Estudiante [] leer(){
Estudiante estudiantes[]=null ;
try{
File objFile = new File(archivo);
FileInputStream in = new FileInputStream(objFile);
ObjectInputStream lectorobj = new ObjectInputStream(in);
estudiantes = (Estudiante []) lectorobj.readObject();
lectorobj.close();
}
catch (ClassNotFoundException ex) {
System.out.println("Clase no hallada");}
catch(IOException e){
System.out.println("Falla de entrada salida");
}
return estudiantes;
}
public void escribir(){
Estudiante estudiantes[] = { new Estudiante(123,"juan"),
new Estudiante(124,"nacho"),
new Estudiante(123,"ana"),
new Estudiante(888,"Gualo"),
};
try{
File objFile = new File(archivo);
FileOutputStream ou = new FileOutputStream(objFile);
ObjectOutputStream escritorobj =
new ObjectOutputStream(ou);
escritorobj.writeObject(estudiantes);
escritorobj.flush();
escritorobj.close();
}
catch(IOException e){
System.out.println("Falla de entrada salida");
}
}
}
////CLASE PRINCIPAL
package poo_archivosobjetos;
public class Principal {
public static void main(String[] args) {
ManejadorObjetos objetos =
new ManejadorObjetos("C:\\temporal\\texto.dat");
objetos.escribir();
Estudiante arr []= objetos.leer();
for(int i=0;i<arr.length; i++){
System.out.println( arr[i].toString() );
}
}
}