SlideShare una empresa de Scribd logo
1 de 8
Descargar para leer sin conexión
PRACTICA

Aplicación Básica en Java
EJEMPLO 1.
La siguiente aplicación sirve para mostrar, de forma práctica, los conceptos de
clases,objetos,atributos,métodos,herencia.La aplicación en sí se divide en 3 clases:
- La clase Exploit que define los atributos y métodos de los objetos-Exploit
- La clase WinExploit, heredada de la clase Exploit. Hereda los mismos atributos y
métodos que la clase Exploit y, a su vez, define nuevos atributos y métodos a
implementar.
- La clase Pa., que contiene el método Main para la ejecución de la aplicación (clase
principal). En esta clase se crean 2 objetos-Exploit y 2 objetos-WinExploit invocando
a los métodos Constructores de sus respectivas clases. También accede a los
objetos creados a través de sus métodos getters y setters.

Clase Exploit

Código
class Exploit
{
        //Definimos las variables o atributos

        String Autor;
        String Vulnerabilidad;
        String Lenguaje;


        //Constructor - Construye el objeto-exploit e identifica sus atributos
        //con los parámetros recibidos.

        Exploit(String a, String v, String l)
        {
                Autor = a;
                Vulnerabilidad = v;
                Lenguaje = l;
        }


        //Métodos

        String getAutor()
 {
                return Autor; //Devuelve autor
        }

        String getVulnerabilidad()
        {
return Vulnerabilidad;
         }

         String getLenguaje()
         {
                 return Lenguaje;
         }

        String getInfoComun() //Devuelve toda la información de golpe
        {
                 return (quot;tAutor: quot; + Autor + quot;ntVulnerabilidad : quot; + Vulnerabilidad +
quot;ntLenguaje: quot; + Lenguaje);
        }


         int setOffset(String o)
{
                  //Se implementa el parámetro offset en la función que se quiera
                  System.out.println(quot;nn[*] Implementando la direccion offset quot; + o + quot;
en el exploit...nquot;);

                //Un ejemplo de esta implementación:
                //Se configura el código del exploit en C para que necesite como
                // parámetro de entrada la direccion offset. Este método de la
                // aplicación Java, realizaría una llamada externa al ejecutable
                // del exploit y le pasaría como parámetro de entrada, este offset

                //Si se ha implementado con exito, el método devuelve 0.

                return (0);

         }

Clase WinExploit
Código
class WinExploit extends Exploit
{
       //Además de disponer de los atributos heredados de la clase padre...
       //Definimos las nuevas variables o atributos a añadir

         String CodigoMS;


       //Constructor - Construye el objeto-exploit e identifica sus atributos con los
parámetros recibidos.

         WinExploit(String a, String v, String l, String cms)
{
                super(a,v,l); //Estos atributos son implementados por el constructor
de la clase padre
                CodigoMS = cms;
         }


         //Además de disponer de los métodos heredados de la clase padre...
         //Definimos los nuevos métodos
String getCodigoMS()
         {
                 return CodigoMS;
         }

        String getInfoWin() //Devuelve toda la información de golpe
        {
                String s;
                s = this.getInfoComun() + quot;ntCogigo MS: quot; + CodigoMS;
       return s;
      }
}


Clase app

Código
class app
{
        public static void main (String[] args)
        {
               //Creamos dos objetos-Exploit llamando al Constructor
               Exploit e1 = new Exploit (quot;Lionquot;, quot;Serv-U FTPD SITE CHMOD
Command Stack Buffer Overflowquot;, quot;Cquot;);

                   Exploit e2 = new Exploit (quot;fiNisquot;, quot;Jordan Telnet Server Buffer
Overflowquot;, quot;Cquot;);


             //Creamos dos objetos-WinExploit llamando al Constructor
             WinExploit w1 = new WinExploit (quot;Wirepairquot;, quot;Windows Workstation
Service WKSSVC.DLL Buffer Overflowquot;, quot;Cquot;, quot;MS03-049quot;);

                 WinExploit w2 = new WinExploit (quot;HoDquot;, quot;Lsasrv.dll RPC buffer
overflowquot;, quot;Cquot;, quot;MS04-011quot;);


                   //Imprimimos las características de los objetos (se puede hacer de
dos formas)

                 System.out.println(quot;nInfo de e1nquot;);
                 System.out.println(quot;tAutor: quot; + e1.getAutor());
                 System.out.println(quot;tVulnerabilidad: quot; + e1.getVulnerabilidad());
                 System.out.println(quot;tLenguaje: quot; + e1.getLenguaje());

               System.out.println(quot;nnInfo de e2nquot;);
               System.out.println(e2.getInfoComun());
  System.out.println(quot;nInfo de w1nquot;);
               System.out.println(quot;tAutor: quot; + w1.getAutor());
               System.out.println(quot;tVulnerabilidad: quot; + w1.getVulnerabilidad());
               System.out.println(quot;tLenguaje: quot; + w1.getLenguaje());
               System.out.println(quot;tCodigo MS: quot; + w1.getCodigoMS());

                 System.out.println(quot;nnInfo de w2nquot;);
                 System.out.println(w2.getInfoWin());

                 int resultado = w2.setOffset(quot;0x7517123cquot;);
                 if (resultado == 0)
                 {
                         System.out.println(quot;[!] La direccion offset se implemento con
exitonquot;);

                              }
                 else
                 {
                        System.out.println(quot;[!] Error durante la implementacion de la
direccion offsetnquot;);
                 }
}


EJEMPLO 2.
Operador instanceof

El operador instanceof sirve para consultar si un objeto es una instancia de una clase
determinada, o de su padre. Pareciera absurdo tratar de conocer cuál es la clase que
da lugar a una instancia específica, sin embargo es de mucha utilidad cuando se
trabaja con interfaces y herencia a la vez. Veamos un ejemplo:

public class primo {

private int numero;
private int vectorPrimos[];
private int tamañoV;
public primo(){
this.tamañoV=25;
this.vectorPrimos= new int [this.tamañoV];
this.numero=0;
}
}


public class Main {
public static void main(String[] args) {

primo p = new primo();

if (esPrimo(p)){
System.out.println(quot;ES INSTANCIA DE PRIMOquot;);
}
}
public static boolean esPrimo(primo p) {
return (p instanceof primo);
}
}


Lo que realiza este sencillo ejemplo es comprobar si la instancia llamada “p”
corresponde a la clase primo, definida anteriormente, con la ayuda del método
estático “esPrimo” que verifica con el operador instanceof si la instancia que se
traslada por el parámetro es de la clase que se evalúa. El resultado de dicha
operación es true o false.
EJEMPLO 3.
La superclase de dicha jerarquía podría ser muy parecida a ésta:

public abstract class figura {

protected String nombre;
protected int color;
protected int grosorBorde;

public String getNombre(){
return this.nombre;
}
public void setNombre(String n){
this.nombre=n;
}

public int getColor(){
return this.color;
}
public void setColor(int c){
this.color=c;
}

public int getGrosorBorde(){
return this.grosorBorde;
}

public void setGrosorBorde(int g){
this.grosorBorde=g;
}

public abstract void dibujar();
}

Las siguientes clases en el nivel de la jerarquía podrían quedar muy parecidas a
éstas:

public abstract class figura2D extends figura {

public abstract int calcularArea();

public abstract int calcularPerimetro();
}

public abstract class figura3D extends figura {

public abstract int calcularVolumen();
}

Se le pide que forme las clases de la parte inferior de la jerarquía y que
representarían los objetos a instanciarse.

Además, debe de realizar una implementación de esta librería, en donde el usuario
pueda crear nuevas figuras y que éstas se almacenen en un arreglo de figuras.
EJEMPLO 3.
Se le pide que forme las clases de la parte inferior de la jerarquía y que
representarían los objetos a instanciarse.
Además, debe de realizar una implementación de esta librería, en donde el usuario
pueda crear nuevas figuras y que éstas se almacenen en un arreglo de figuras. class
Empleado {
protected:
   static const unsigned int SUELDO_BASE = 700; // Supuesto sueldo base para
todos

public:
/* OTROS MÉTODOS */
     virtual unsigned int sueldo() = 0;
};


class Director : public Empleado {
public:
   /* OTROS MÉTODOS */
   unsigned int sueldo() { return SUELDO_BASE*100; }
};


class Ventas : public Empleado {
private:
   unsigned int ventas_realizadas; // Contador de ventas realizadas por el vendedor

public:
   /* OTROS MÉTODOS */
   unsigned int sueldo() { return SUELDO_BASE + ventas_realizadas*60; }
};


class Mantenimiento : public Empleado {
public:
   /* OTROS MÉTODOS */
   unsigned int sueldo() { return SUELDO_BASE + 300; }
};


class Becario : public Empleado {
private:
   bool jornada_completa; // Indica si el becario trabaja a jornada completa

public:
   /* OTROS MÉTODOS */
   unsigned int sueldo() {
      if (jornada_completa) return SUELDO_BASE/2;
      else return SUELDO_BASE/4;
   }
};


/* AHORA HAREMOS USO DE LAS CLASES */
int main() {
   Empleado* e[4]; // Punteros a Empleado
   Director d;
   Ventas v; // Estas dos las declararemos como objetos normales en la pila
e[0] = &d; // Asignamos a un puntero a Empleado la dirección de un objeto del tipo
Director
  e[1] = &v; // Lo mismo con Ventas
  e[2] = new Mantenimiento();
  e[3] = new Becario();

    unsigned int sueldo = 0;
    for (int i = 0; i < 4; ++i) sueldo += e[i]->sueldo();

    cout << quot;Este mes vamos a gastar quot; << sueldo << quot; dinero en sueldosquot; << endl;
}

Más contenido relacionado

La actualidad más candente (17)

C sharp intro1
C sharp intro1C sharp intro1
C sharp intro1
 
Ejemplo de aplicación cliente-servidor en C#
Ejemplo de aplicación cliente-servidor  en C#Ejemplo de aplicación cliente-servidor  en C#
Ejemplo de aplicación cliente-servidor en C#
 
Introducción a C SHARP
Introducción a C SHARPIntroducción a C SHARP
Introducción a C SHARP
 
Programacion ii
Programacion iiProgramacion ii
Programacion ii
 
Lecture 37
Lecture 37Lecture 37
Lecture 37
 
Tema3 p2%20
Tema3 p2%20Tema3 p2%20
Tema3 p2%20
 
Ejercicios tema1
Ejercicios tema1Ejercicios tema1
Ejercicios tema1
 
Semana 2 Fundamentos de Python(Ciclos y Listas)
Semana 2   Fundamentos de Python(Ciclos y Listas)Semana 2   Fundamentos de Python(Ciclos y Listas)
Semana 2 Fundamentos de Python(Ciclos y Listas)
 
Guia para examen java
Guia para examen javaGuia para examen java
Guia para examen java
 
Pqueues
PqueuesPqueues
Pqueues
 
Arreglos
ArreglosArreglos
Arreglos
 
NOTACIÓN POSTFIJA E INFIJA - JAVA
NOTACIÓN POSTFIJA E INFIJA - JAVANOTACIÓN POSTFIJA E INFIJA - JAVA
NOTACIÓN POSTFIJA E INFIJA - JAVA
 
Taller de programación clase #3
Taller de programación   clase #3Taller de programación   clase #3
Taller de programación clase #3
 
Codificaciones c++
Codificaciones c++Codificaciones c++
Codificaciones c++
 
Elemento 4
Elemento 4Elemento 4
Elemento 4
 
Practicas de programacion 11 20
Practicas de programacion 11 20Practicas de programacion 11 20
Practicas de programacion 11 20
 
Semana 1 Estructuras de Control en Java
Semana 1   Estructuras de Control en JavaSemana 1   Estructuras de Control en Java
Semana 1 Estructuras de Control en Java
 

Destacado

Primer parcial solucionario
Primer parcial solucionarioPrimer parcial solucionario
Primer parcial solucionarioclimancc
 
notas mat-1103
notas mat-1103notas mat-1103
notas mat-1103climancc
 
ECUACIONES
ECUACIONESECUACIONES
ECUACIONESclimancc
 
Notas De Prcticas En Clases
Notas De Prcticas En ClasesNotas De Prcticas En Clases
Notas De Prcticas En Clasesclimancc
 

Destacado (8)

Basura
BasuraBasura
Basura
 
Primer parcial solucionario
Primer parcial solucionarioPrimer parcial solucionario
Primer parcial solucionario
 
notas mat-1103
notas mat-1103notas mat-1103
notas mat-1103
 
Sag41564
Sag41564Sag41564
Sag41564
 
Chillca
ChillcaChillca
Chillca
 
ECUACIONES
ECUACIONESECUACIONES
ECUACIONES
 
Notas De Prcticas En Clases
Notas De Prcticas En ClasesNotas De Prcticas En Clases
Notas De Prcticas En Clases
 
Notas
NotasNotas
Notas
 

Similar a P R A C T I C A2

Unit Testing - Trovit
Unit Testing - TrovitUnit Testing - Trovit
Unit Testing - TrovitJordi Gerona
 
Clase 11 De Septiembre 2009
Clase 11 De Septiembre 2009Clase 11 De Septiembre 2009
Clase 11 De Septiembre 2009mtemarialuisa
 
Ejerciciosdeprogramacionconcurrente 111021172712-phpapp01
Ejerciciosdeprogramacionconcurrente 111021172712-phpapp01Ejerciciosdeprogramacionconcurrente 111021172712-phpapp01
Ejerciciosdeprogramacionconcurrente 111021172712-phpapp01cursobeta
 
Unit Testing - GTUG
Unit Testing - GTUGUnit Testing - GTUG
Unit Testing - GTUGJordi Gerona
 
Ejercicios
EjerciciosEjercicios
EjerciciosEzmee XD
 
Presentación arraysobjetos
Presentación arraysobjetosPresentación arraysobjetos
Presentación arraysobjetossilsilvetti
 
Informe compilador divisor
Informe compilador divisorInforme compilador divisor
Informe compilador divisorSoraya Lara
 
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)Videoconferencias UTPL
 
Manejo de excepciones en Java
Manejo de excepciones en JavaManejo de excepciones en Java
Manejo de excepciones en JavaJohn Ortiz
 
Compilador divisor de cantidades con Jflex y Cup
Compilador divisor de cantidades con Jflex y CupCompilador divisor de cantidades con Jflex y Cup
Compilador divisor de cantidades con Jflex y CupSoraya Lara
 
Curso de Desarrollo Web 2
Curso de Desarrollo Web 2Curso de Desarrollo Web 2
Curso de Desarrollo Web 2juliocombativo
 
Compilador (divisor de cantidades )
Compilador (divisor de cantidades )Compilador (divisor de cantidades )
Compilador (divisor de cantidades )Soraya Lara
 
Constructores & excepciones
Constructores & excepcionesConstructores & excepciones
Constructores & excepcionesJuan Mancilla
 
6 Upv Solo Pruebas 2009
6 Upv Solo Pruebas 20096 Upv Solo Pruebas 2009
6 Upv Solo Pruebas 2009Pepe
 
SCJP, Clase 8: Inner Classes
SCJP, Clase 8: Inner ClassesSCJP, Clase 8: Inner Classes
SCJP, Clase 8: Inner Classesflekoso
 

Similar a P R A C T I C A2 (20)

Unit Testing - Trovit
Unit Testing - TrovitUnit Testing - Trovit
Unit Testing - Trovit
 
Clase 11 De Septiembre 2009
Clase 11 De Septiembre 2009Clase 11 De Septiembre 2009
Clase 11 De Septiembre 2009
 
Ejerciciosdeprogramacionconcurrente 111021172712-phpapp01
Ejerciciosdeprogramacionconcurrente 111021172712-phpapp01Ejerciciosdeprogramacionconcurrente 111021172712-phpapp01
Ejerciciosdeprogramacionconcurrente 111021172712-phpapp01
 
Unit Testing - GTUG
Unit Testing - GTUGUnit Testing - GTUG
Unit Testing - GTUG
 
Ejercicios
EjerciciosEjercicios
Ejercicios
 
Presentación arraysobjetos
Presentación arraysobjetosPresentación arraysobjetos
Presentación arraysobjetos
 
C# calculadora
C# calculadoraC# calculadora
C# calculadora
 
Java básico
Java  básicoJava  básico
Java básico
 
Informe compilador divisor
Informe compilador divisorInforme compilador divisor
Informe compilador divisor
 
Javaintroduccion 2010
Javaintroduccion 2010Javaintroduccion 2010
Javaintroduccion 2010
 
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
 
Manejo de excepciones en Java
Manejo de excepciones en JavaManejo de excepciones en Java
Manejo de excepciones en Java
 
P1
P1P1
P1
 
Compilador divisor de cantidades con Jflex y Cup
Compilador divisor de cantidades con Jflex y CupCompilador divisor de cantidades con Jflex y Cup
Compilador divisor de cantidades con Jflex y Cup
 
Curso de Desarrollo Web 2
Curso de Desarrollo Web 2Curso de Desarrollo Web 2
Curso de Desarrollo Web 2
 
MéTodos
MéTodosMéTodos
MéTodos
 
Compilador (divisor de cantidades )
Compilador (divisor de cantidades )Compilador (divisor de cantidades )
Compilador (divisor de cantidades )
 
Constructores & excepciones
Constructores & excepcionesConstructores & excepciones
Constructores & excepciones
 
6 Upv Solo Pruebas 2009
6 Upv Solo Pruebas 20096 Upv Solo Pruebas 2009
6 Upv Solo Pruebas 2009
 
SCJP, Clase 8: Inner Classes
SCJP, Clase 8: Inner ClassesSCJP, Clase 8: Inner Classes
SCJP, Clase 8: Inner Classes
 

Más de climancc

Primer parcial solucionario
Primer parcial solucionarioPrimer parcial solucionario
Primer parcial solucionarioclimancc
 
examen de calculo 1
examen de calculo 1examen de calculo 1
examen de calculo 1climancc
 
DIAGONALIZACION DE MATRICES
DIAGONALIZACION DE MATRICESDIAGONALIZACION DE MATRICES
DIAGONALIZACION DE MATRICESclimancc
 
Transformaciones Lineales
Transformaciones LinealesTransformaciones Lineales
Transformaciones Linealesclimancc
 
algebra lineal
algebra linealalgebra lineal
algebra linealclimancc
 
ALGEBRA LINEAL
ALGEBRA LINEALALGEBRA LINEAL
ALGEBRA LINEALclimancc
 
Mat 1100 R
Mat 1100 RMat 1100 R
Mat 1100 Rclimancc
 
Mat 1100 R
Mat 1100 RMat 1100 R
Mat 1100 Rclimancc
 

Más de climancc (9)

Examen
ExamenExamen
Examen
 
Primer parcial solucionario
Primer parcial solucionarioPrimer parcial solucionario
Primer parcial solucionario
 
examen de calculo 1
examen de calculo 1examen de calculo 1
examen de calculo 1
 
DIAGONALIZACION DE MATRICES
DIAGONALIZACION DE MATRICESDIAGONALIZACION DE MATRICES
DIAGONALIZACION DE MATRICES
 
Transformaciones Lineales
Transformaciones LinealesTransformaciones Lineales
Transformaciones Lineales
 
algebra lineal
algebra linealalgebra lineal
algebra lineal
 
ALGEBRA LINEAL
ALGEBRA LINEALALGEBRA LINEAL
ALGEBRA LINEAL
 
Mat 1100 R
Mat 1100 RMat 1100 R
Mat 1100 R
 
Mat 1100 R
Mat 1100 RMat 1100 R
Mat 1100 R
 

Último

Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...OLGAMILENAMONTAEZNIO
 
Carta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdfCarta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdfangelinebocanegra1
 
VIDEOS DE APOYO.docx E
VIDEOS DE APOYO.docx                                  EVIDEOS DE APOYO.docx                                  E
VIDEOS DE APOYO.docx Emialexsolar
 
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOSPRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOSLincangoKevin
 
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfTENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfJoseAlejandroPerezBa
 
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETDe Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETGermán Küber
 
La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2montoyagabriela340
 
Análisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdfAnálisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdfcastrodanna185
 
La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....Aaron Betancourt
 
Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.marianarodriguezc797
 
Los mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfLos mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfodalistar77
 
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfActividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfalejandrogomezescoto
 
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...RaymondCode
 
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfInmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfOBr.global
 
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfPresentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfymiranda2
 
Inteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidadInteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidaddanik1023m
 
Matriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxMatriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxPaolaCarolinaCarvaja
 
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosEl diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosLCristinaForchue
 

Último (20)

Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
 
Carta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdfCarta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdf
 
VIDEOS DE APOYO.docx E
VIDEOS DE APOYO.docx                                  EVIDEOS DE APOYO.docx                                  E
VIDEOS DE APOYO.docx E
 
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOSPRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
 
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfTENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
 
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETDe Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
 
La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2
 
Análisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdfAnálisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdf
 
La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....
 
Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.
 
Los mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfLos mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdf
 
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfActividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
 
BEDEC Proyecto y obra , novedades 2024 - Xavier Folch
BEDEC Proyecto y obra , novedades 2024 - Xavier FolchBEDEC Proyecto y obra , novedades 2024 - Xavier Folch
BEDEC Proyecto y obra , novedades 2024 - Xavier Folch
 
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
 
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfInmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
 
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfPresentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
 
BEDEC Sostenibilidad, novedades 2024 - Laura Silva
BEDEC Sostenibilidad, novedades 2024 - Laura SilvaBEDEC Sostenibilidad, novedades 2024 - Laura Silva
BEDEC Sostenibilidad, novedades 2024 - Laura Silva
 
Inteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidadInteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidad
 
Matriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxMatriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docx
 
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosEl diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
 

P R A C T I C A2

  • 1. PRACTICA Aplicación Básica en Java EJEMPLO 1. La siguiente aplicación sirve para mostrar, de forma práctica, los conceptos de clases,objetos,atributos,métodos,herencia.La aplicación en sí se divide en 3 clases: - La clase Exploit que define los atributos y métodos de los objetos-Exploit - La clase WinExploit, heredada de la clase Exploit. Hereda los mismos atributos y métodos que la clase Exploit y, a su vez, define nuevos atributos y métodos a implementar. - La clase Pa., que contiene el método Main para la ejecución de la aplicación (clase principal). En esta clase se crean 2 objetos-Exploit y 2 objetos-WinExploit invocando a los métodos Constructores de sus respectivas clases. También accede a los objetos creados a través de sus métodos getters y setters. Clase Exploit Código class Exploit { //Definimos las variables o atributos String Autor; String Vulnerabilidad; String Lenguaje; //Constructor - Construye el objeto-exploit e identifica sus atributos //con los parámetros recibidos. Exploit(String a, String v, String l) { Autor = a; Vulnerabilidad = v; Lenguaje = l; } //Métodos String getAutor() { return Autor; //Devuelve autor } String getVulnerabilidad() {
  • 2. return Vulnerabilidad; } String getLenguaje() { return Lenguaje; } String getInfoComun() //Devuelve toda la información de golpe { return (quot;tAutor: quot; + Autor + quot;ntVulnerabilidad : quot; + Vulnerabilidad + quot;ntLenguaje: quot; + Lenguaje); } int setOffset(String o) { //Se implementa el parámetro offset en la función que se quiera System.out.println(quot;nn[*] Implementando la direccion offset quot; + o + quot; en el exploit...nquot;); //Un ejemplo de esta implementación: //Se configura el código del exploit en C para que necesite como // parámetro de entrada la direccion offset. Este método de la // aplicación Java, realizaría una llamada externa al ejecutable // del exploit y le pasaría como parámetro de entrada, este offset //Si se ha implementado con exito, el método devuelve 0. return (0); } Clase WinExploit Código class WinExploit extends Exploit { //Además de disponer de los atributos heredados de la clase padre... //Definimos las nuevas variables o atributos a añadir String CodigoMS; //Constructor - Construye el objeto-exploit e identifica sus atributos con los parámetros recibidos. WinExploit(String a, String v, String l, String cms)
  • 3. { super(a,v,l); //Estos atributos son implementados por el constructor de la clase padre CodigoMS = cms; } //Además de disponer de los métodos heredados de la clase padre... //Definimos los nuevos métodos String getCodigoMS() { return CodigoMS; } String getInfoWin() //Devuelve toda la información de golpe { String s; s = this.getInfoComun() + quot;ntCogigo MS: quot; + CodigoMS; return s; } } Clase app Código class app { public static void main (String[] args) { //Creamos dos objetos-Exploit llamando al Constructor Exploit e1 = new Exploit (quot;Lionquot;, quot;Serv-U FTPD SITE CHMOD Command Stack Buffer Overflowquot;, quot;Cquot;); Exploit e2 = new Exploit (quot;fiNisquot;, quot;Jordan Telnet Server Buffer Overflowquot;, quot;Cquot;); //Creamos dos objetos-WinExploit llamando al Constructor WinExploit w1 = new WinExploit (quot;Wirepairquot;, quot;Windows Workstation Service WKSSVC.DLL Buffer Overflowquot;, quot;Cquot;, quot;MS03-049quot;); WinExploit w2 = new WinExploit (quot;HoDquot;, quot;Lsasrv.dll RPC buffer overflowquot;, quot;Cquot;, quot;MS04-011quot;); //Imprimimos las características de los objetos (se puede hacer de
  • 4. dos formas) System.out.println(quot;nInfo de e1nquot;); System.out.println(quot;tAutor: quot; + e1.getAutor()); System.out.println(quot;tVulnerabilidad: quot; + e1.getVulnerabilidad()); System.out.println(quot;tLenguaje: quot; + e1.getLenguaje()); System.out.println(quot;nnInfo de e2nquot;); System.out.println(e2.getInfoComun()); System.out.println(quot;nInfo de w1nquot;); System.out.println(quot;tAutor: quot; + w1.getAutor()); System.out.println(quot;tVulnerabilidad: quot; + w1.getVulnerabilidad()); System.out.println(quot;tLenguaje: quot; + w1.getLenguaje()); System.out.println(quot;tCodigo MS: quot; + w1.getCodigoMS()); System.out.println(quot;nnInfo de w2nquot;); System.out.println(w2.getInfoWin()); int resultado = w2.setOffset(quot;0x7517123cquot;); if (resultado == 0) { System.out.println(quot;[!] La direccion offset se implemento con exitonquot;); } else { System.out.println(quot;[!] Error durante la implementacion de la direccion offsetnquot;); } } EJEMPLO 2. Operador instanceof El operador instanceof sirve para consultar si un objeto es una instancia de una clase determinada, o de su padre. Pareciera absurdo tratar de conocer cuál es la clase que da lugar a una instancia específica, sin embargo es de mucha utilidad cuando se trabaja con interfaces y herencia a la vez. Veamos un ejemplo: public class primo { private int numero; private int vectorPrimos[]; private int tamañoV;
  • 5. public primo(){ this.tamañoV=25; this.vectorPrimos= new int [this.tamañoV]; this.numero=0; } } public class Main { public static void main(String[] args) { primo p = new primo(); if (esPrimo(p)){ System.out.println(quot;ES INSTANCIA DE PRIMOquot;); } } public static boolean esPrimo(primo p) { return (p instanceof primo); } } Lo que realiza este sencillo ejemplo es comprobar si la instancia llamada “p” corresponde a la clase primo, definida anteriormente, con la ayuda del método estático “esPrimo” que verifica con el operador instanceof si la instancia que se traslada por el parámetro es de la clase que se evalúa. El resultado de dicha operación es true o false. EJEMPLO 3. La superclase de dicha jerarquía podría ser muy parecida a ésta: public abstract class figura { protected String nombre; protected int color; protected int grosorBorde; public String getNombre(){ return this.nombre; } public void setNombre(String n){ this.nombre=n; } public int getColor(){ return this.color; }
  • 6. public void setColor(int c){ this.color=c; } public int getGrosorBorde(){ return this.grosorBorde; } public void setGrosorBorde(int g){ this.grosorBorde=g; } public abstract void dibujar(); } Las siguientes clases en el nivel de la jerarquía podrían quedar muy parecidas a éstas: public abstract class figura2D extends figura { public abstract int calcularArea(); public abstract int calcularPerimetro(); } public abstract class figura3D extends figura { public abstract int calcularVolumen(); } Se le pide que forme las clases de la parte inferior de la jerarquía y que representarían los objetos a instanciarse. Además, debe de realizar una implementación de esta librería, en donde el usuario pueda crear nuevas figuras y que éstas se almacenen en un arreglo de figuras. EJEMPLO 3. Se le pide que forme las clases de la parte inferior de la jerarquía y que representarían los objetos a instanciarse. Además, debe de realizar una implementación de esta librería, en donde el usuario pueda crear nuevas figuras y que éstas se almacenen en un arreglo de figuras. class Empleado { protected: static const unsigned int SUELDO_BASE = 700; // Supuesto sueldo base para todos public:
  • 7. /* OTROS MÉTODOS */ virtual unsigned int sueldo() = 0; }; class Director : public Empleado { public: /* OTROS MÉTODOS */ unsigned int sueldo() { return SUELDO_BASE*100; } }; class Ventas : public Empleado { private: unsigned int ventas_realizadas; // Contador de ventas realizadas por el vendedor public: /* OTROS MÉTODOS */ unsigned int sueldo() { return SUELDO_BASE + ventas_realizadas*60; } }; class Mantenimiento : public Empleado { public: /* OTROS MÉTODOS */ unsigned int sueldo() { return SUELDO_BASE + 300; } }; class Becario : public Empleado { private: bool jornada_completa; // Indica si el becario trabaja a jornada completa public: /* OTROS MÉTODOS */ unsigned int sueldo() { if (jornada_completa) return SUELDO_BASE/2; else return SUELDO_BASE/4; } }; /* AHORA HAREMOS USO DE LAS CLASES */ int main() { Empleado* e[4]; // Punteros a Empleado Director d; Ventas v; // Estas dos las declararemos como objetos normales en la pila
  • 8. e[0] = &d; // Asignamos a un puntero a Empleado la dirección de un objeto del tipo Director e[1] = &v; // Lo mismo con Ventas e[2] = new Mantenimiento(); e[3] = new Becario(); unsigned int sueldo = 0; for (int i = 0; i < 4; ++i) sueldo += e[i]->sueldo(); cout << quot;Este mes vamos a gastar quot; << sueldo << quot; dinero en sueldosquot; << endl; }