SlideShare ist ein Scribd-Unternehmen logo
1 von 8
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;
}

Weitere ähnliche Inhalte

Was ist angesagt? (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
 

Andere mochten auch

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
 

Andere mochten auch (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
 

Ähnlich wie 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
 

Ähnlich wie 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
 

Mehr von 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
 

Mehr von 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
 

Kürzlich hochgeladen

Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armadob7fwtwtfxf
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxhasbleidit
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024u20211198540
 
Nomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de NóminaNomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de Nóminacuellosameidy
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1ivanapaterninar
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docxobandopaula444
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersIván López Martín
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfcristianrb0324
 
Clasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxClasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxCarolina Bujaico
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar24roberto21
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)JuanStevenTrujilloCh
 
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaYeimys Ch
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDAVIDROBERTOGALLEGOS
 
PROYECCIÓN DE VISTAS planos de vistas y mas
PROYECCIÓN DE VISTAS planos de vistas y masPROYECCIÓN DE VISTAS planos de vistas y mas
PROYECCIÓN DE VISTAS planos de vistas y maslida630411
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdfBetianaJuarez1
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosAlbanyMartinez7
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfKarinaCambero3
 

Kürzlich hochgeladen (20)

Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armado
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
 
Nomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de NóminaNomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de Nómina
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1
 
El camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVPEl camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVP
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdf
 
Clasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxClasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptx
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)
 
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptx
 
PROYECCIÓN DE VISTAS planos de vistas y mas
PROYECCIÓN DE VISTAS planos de vistas y masPROYECCIÓN DE VISTAS planos de vistas y mas
PROYECCIÓN DE VISTAS planos de vistas y mas
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos Juridicos
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdf
 

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