Você está na página 1de 15

Actividad 1 - Fase 1

programación orientada a objetos

Presentado por:
Camilo Andrés Moros Clavijo
Código: 1094859675

Universidad Nacional Abierta y a Distancia


Unad
2018
- Cuál es la diferencia entre programación estructurada y
programación orientada a objetos.
R:
la programación orientada a objetos es un estilo que trata los
datos como objetos con atributos y métodos que pueden
aplicarse a estos objetos y también ser heredados por otros
objetos. Java es un gran ejemplo de un lenguaje que emplea
este concepto. Pero Java es un lenguaje multi-paradigma y
también utiliza algunos conceptos familiares para la
Programación Procedimental.
La programación estructurada por otro lado, es un tipo de
programación imperativa, donde las declaraciones se ponen en
procedimientos, que se pueden volver a llamar cuando sea
necesario. C usa programación procedimental.
- Ventajas y desventajas de la programación orientada a objetos.
R:
VENTAJAS
 Todo el código se encuentra en un solo lugar
 Los objetos pueden tener varios atributos, por ejemplo, que lea
un sensor y a la vez encienda.
 Son más fáciles de entender los códigos.
 Le ejecución del programa es rápida y sencilla, todo se
encuentra en una sola ventana.
DESVENTAJAS
Los programas no pueden ser moldeados enteramente por la
programación orientada a objetos.
Para leer, modificar, o hacerles algo simplemente; en algunos
programas debes realizar un paso extra para realizar estas
acciones.
Si se fuerza el lenguaje puede perder algunos objetos y
características.
Los objetos requieren una extensa documentación.
Los objetos al ser abstracto pueden no coincidir la visión de un
programador a otro.

- Sintaxis para definir variable en java.


R:
Tipos Primitivos referencias a Objetos
int, short, byte, long Strings
char, boolean Arreglos
float, double otros objetos
- Sintaxis para imprimir en consola en java
R: Para imprimir por pantalla se hace uso del objeto System.out,
que representa la salida estándar. Típicamente este objeto se
corresponde con la pantalla u otra salida especificada en las
variables de entorno del sistema en el que se ejecuta.

El objeto System.out es del tipo java.io.PrintStream y, por ello,


dispone de métodos para escribir con formato en el flujo de
salida, usualmente el monitor. Los más interesantes son: print,
método sobrecargado que puede recoger cualquier tipo de datos
básico, cadena u objeto; println, idéntico a print salvo en que
imprime un salto de línea final; o format, que permite escribir los
datos ajustándose a un determinado formato, de modo similar a
cómo lo hace el printf de C.

- Sintaxis para realizar comentarios en java


R: En el lenguaje Java existen tres formas de poner comentarios.
La primera es cuando la línea de comentario solo ocupa una línea de
código. En este caso deberemos de anteponer dos barras inclinadas
(//) antes del texto.

1. // Comentario de una línea

En el caso de que queramos poner un comentario de más de una línea


(eso es que estamos inspirados) deberemos de empezar por una
barra inclinada y un asterisco (/*) y finalizar a la inversa, asterisco y
barra inclinada (*/). El código nos quedará de la siguiente forma:

1. /* Comentario
2. de varias
3. líneas */

El último caso son los comentarios para la herramienta de


documentación JavaDoc. En este caso, antes del comentario
pondremos una barra inclinada y dos asteriscos (/**) y finaliza con un
asterisco y una barra inclinada (*/)

1. /** Comentario para JavaDoc */

- Sintaxis de los operadores lógicos y relacionales.


R: Se llaman operadores relacionales o de comparación a
aquellos que permiten comparar dos valores evaluando si se
relacionan cumpliendo el ser menor uno que otro, mayor uno que
otro, igual uno que otro, etc. Los operadores lógicos permiten
además introducir nexos entre condiciones como “y se cumple
también que” ó. “o se cumple que”.

Operadores lógicos Muy utilizados en informática, lógica


proposicional y Algebra Booleana, entre otras disciplinas. Los
operadores lógicos nos proporcionan un resultado a partir de que
se cumpla o no una cierta condición. Esto genera una serie de
valores que, en los casos más sencillos, pueden ser
parametrizados con los valores numéricos 0 y 1, como se puede
apreciar en los ejemplos de abajo. La combinación de dos o más
operadores lógicos conforma una función lógicos.

- Defina clase, instancia de clase, atributo, comportamiento,


identidad, constructor e identificadores.
R:
una clase es una plantilla para la creación de objetos de datos
según un modelo predefinido. Las clases se utilizan para
representar entidades o conceptos, como los sustantivos en el
lenguaje. Cada clase es un modelo que define un conjunto de
variables -el estado, y métodos apropiados para operar con
dichos datos -el comportamiento. Cada objeto creado a partir de
la clase se denomina instancia de la clase.
Una clase es la estructura de un objeto, es decir, la definición de
todos los elementos que componen un objeto. Un objeto es, por
lo tanto, el "resultado" de una clase. En realidad, un objeto es
una instancia de una clase, por lo que se pueden intercambiar
los términos objeto o instancia (o incluso evento).

un atributo es una especificación que define una propiedad de un


objeto, elemento o archivo. También puede referirse o establecer
el valor específico para una instancia determinada de los
mismos.

Los modelos de comportamiento se utilizan para describir el


comportamiento del sistema en su totalidad. Entre los modelos
de comportamiento existentes se distinguen dos de estos:
modelos de flujo de datos, que modelan el procesamiento de los
datos en el sistema, y modelos de máquinas de estado, que
modelan como el sistema reacciona a los eventos. Estos
modelos pueden usarse de forma separada o conjuntamente,
dependiendo del tipo de sistema que se esté desarrollando.

un constructor es una subrutina cuya misión es inicializar un


objeto de una clase. En el constructor se asignan los valores
iniciales del nuevo objeto.

Se utiliza para crear tablas de clases virtuales y poder así


desarrollar el polimorfismo, una de las herramientas de la
programación orientada a objetos. Al utilizar un constructor, el
compilador determina cuál de los objetos va a responder al
mensaje (virtual) que hemos creado. Tiene un tipo de acceso, un
nombre y un paréntesis.

Identificadores. Un identificador es un conjunto de caracteres


alfanuméricos de cualquier longitud que sirve para identificar las
entidades del programa (clases, funciones, variables, tipos
compuestos) Los identificadores pueden ser combinaciones de
letras y números. Cada lenguaje tiene sus propias reglas que
definen como pueden estar construidos. Cuando un identificador
se asocia a una entidad concreta, entonces es el "nombre" de
dicha entidad, y en adelante la representa en el programa.

- Informes de tipos de clase


R: En general, podemos decir que existen cuatro tipos de
informes según su contenido o función:
o Informes científicos: son aquellos centrados en un tema de
investigación científica y caracterizados por el uso de
un lenguaje propio riguroso, así como tecnicismos. Estos
informes se engloban en la categoría de "memorias científicas" y
están dirigidos a un público exclusivo (investigadores, médicos,
físicos, etc.)
o Informes técnicos: son aquellos dirigidos a las organizaciones
públicas o privadas que han encargado un estudio o una
investigación sobre un tema específico. El lenguaje utilizado en
estos informes es similar al que se emplea en los informes
científicos, aunque se procura que sea accesible a los
destinatarios (sociólogos, psicólogos, etc.).
o Informes de divulgación: son aquellos destinados a un público
general y que, por consiguiente, deben ser redactados con
un lenguaje comprensible y accesible para los lectores. Pueden
publicarse en periódicos, revistas, etc.
o Informes mixtos: son aquellos que suelen estar destinados a una
organización al mismo tiempo que pueden darse a conocer al
público en general.
- Describa el concepto de modularizacion y de un ejemplo
R:
El modularidad es, en programación modular y más
específicamente en programación orientada a objetos, la
propiedad que permite subdividir una aplicación en partes más
pequeñas (llamadas módulos), cada una de las cuales debe ser
tan independiente como sea posible de la aplicación en sí y de
las restantes partes.

Estos módulos que se puedan compilar por separado, pero que


tienen conexiones con otros módulos. Al igual que la
encapsulación, los lenguajes soportan la Modularidad de
diversas formas. El modularidad debe seguir los conceptos de
acoplamiento y cohesión.

Según Bertrand Meyer: «El acto de particional un programa en


componentes individuales para reducir su complejidad en algún
grado… A pesar de particional un programa es útil por esta
razón, una justificación más poderosa para particional un
programa es que crea una serie de límites bien definidos y
documentados en el programa. Estos límites, o interfaces, son
muy valiosos en la comprensión del programa».

Por ejemplo, cuando se realice la implementación de tipos de


datos abstractos definidos por el programador, lo normal será
incluir todas las funciones que acceden al tipo definido en el
mismo fichero. Esto supone varias ventajas importantes:

1.
La estructura de datos se puede utilizar de forma sencilla en
otros programas.
2.
Las funciones relacionadas se almacenan juntas.
3.
Cualquier cambio posterior en la estructura de datos, requiere
que se modifique y recompile el mínimo número de ficheros y
sólo los imprescindibles.

- Describa el concepto de herencia y de un ejemplo


R:
Es la relación entre una clase general y otra clase más
específica. Es un mecanismo que nos permite crear clases
derivadas a partir de clase base, nos permite compartir
automáticamente métodos y datos entre clases subclases y
objetos. Por ejemplo: Si declaramos una clase párrafo derivada
de una clase texto todos los métodos y variables asociadas con
la clase texto son automáticamente heredados por la subclase
párrafo. La herencia, junto con la encapsulación y el
polimorfismo, es una de las tres características principales (o
"pilares") de la programación orientada a objetos.

Ejemplo:

import javax.*;
import javax.swing.JOptionPane;

public class Mamifero{


private int patas;
private String nombre;

public void imprimirPatas(){


JOptionPane.showMessageDialog(null," Tiene " + patas + "
patas\n", "Mamifero", JOptionPane.INFORMATION_MESSAGE);
}

public Mamifero(String nombre, int patas){


this.nombre = nombre;
this.patas = patas;
}
}

public class Perro extends Mamifero {


public Perro(String nombre){
super(nombre, 4);
}
}

public class Gato extends Mamifero {


public Gato(String nombre){
super(nombre, 4);
}
}

public class CrearPerro {


public static void main(String[] args) {
Perro perrito = new Perro("Pantaleon");
perrito.imprimirPatas(); /*Está en la clase mamífero*/
}
}
Se declaran las clases mamíferos, gato y perro, haciendo que
gato y perro sean unos mamíferos (derivados de esta clase), y
se ve cómo a través de ellos se nombra al animal, pero así
también se accede a patas dándole el valor por defecto para esa
especie.

Es importante destacar tres cosas. La primera, es que la


herencia no es un mecanismo esencial en el paradigma de
programación orientada a objetos; en la mayoría de los
lenguajes orientados a objetos basados en prototipos las clases
no existen, en consecuencia, tampoco existe la herencia y el
polimorfismo se logra por otros medios. La segunda, es que el
medio preferido para lograr los objetivos de extensibilidad y
reutilización es la agregación o composición. La tercera, es que,
en lenguajes con un sistema de tipos débiles, el polimorfismo se
puede lograr sin utilizar la herencia.

Por otra parte, y aunque la herencia no es un concepto


indispensable en el paradigma de programación orientada a
objetos, es mucho más que un mecanismo de los lenguajes
basados en clases, porque implica una forma de razonar sobre
cómo diseñar ciertas partes de un programa. Es decir, no sólo es
un mecanismo que permite implementar un diseño, sino que
establece un marco conceptual que permite razonar sobre cómo
crear ese diseño.

- Describa el concepto de polimorfismo y de un ejemplo


R: el polimorfismo se refiere a la propiedad por la que es posible
enviar mensajes sintácticamente iguales a objetos de tipos
distintos. El único requisito que deben cumplir los objetos que se
utilizan de manera polimórfica es saber responder al mensaje
que se les envía.
La apariencia del código puede ser muy diferente dependiendo
del lenguaje que se utilice, más allá de las obvias diferencias
sintácticas.

Por ejemplo, en un lenguaje de programación que cuenta con un


sistema de tipos dinámico (en los que las variables pueden
contener datos de cualquier tipo u objetos de cualquier clase)
como Smalltalk se requiere que los objetos que se utilizan de
modo polimórfico sean parte de una jerarquía de clases.

Ejemplo:
En el siguiente ejemplo hacemos uso del lenguaje C++ para
ilustrar el polimorfismo. Se observa a la vez el uso de las
funciones virtuales puras, como se les conoce en C++, estas
funciones constituyen una interfaz más consistente cuando se
trabaja con una jerarquía de clases, puesto que hacen posible el
enlace durante la ejecución. Sin embargo, como se verá, para
que el polimorfismo funcione no es una condición obligatoria que
todas las funciones en la clase base sean declaradas como
virtuales.

#incluye<iostream>
#include <math.h>
using namespace std;

class Figura {
private:
float base;
float altura;
public:
void captura();
virtual unsigned float perimetro()=0;
virtual unsigned float area()=0;
};

class Rectangulo: public Figura {


public:
void imprime();
unsigned float perimetro(){return 2*(base+altura);}
unsigned float area(){return base*altura;}
};

class Triangulo: public Figura {


public:
void muestra();
unsigned float perimetro(){return
2*sqrt(altura^2+(base/2)^2)+base;} //Usando pitágoras
unsigned float area(){return (base*altura)/2;}
};

void Figura::captura()
{
cout << "CALCULO DEL AREA Y PERIMETRO DE UN
TRIANGULO ISÓSCELES Y UN RECTANGULO:" << endl;
cout << "escribe la altura: ";
cin >> altura;
cout << "escribe la base: ";
cin >> base;
cout << "EL PERIMETRO ES: " << perimetro();
cout << "EL AREA ES: " << area();
getchar();
return 0;
}

- Describa el concepto de encapsulamiento y de un ejemplo


R: n programación modular, y más específicamente en
programación orientada a objetos, se denomina
encapsulamiento al ocultamiento del estado, es decir, de los
datos miembro de un objeto de manera que solo se pueda
cambiar mediante las operaciones definidas para ese objeto.

Cada objeto está aislado del exterior, es un módulo natural, y la


aplicación entera se reduce a un agregado o rompecabezas de
objetos. El aislamiento protege a los datos asociados de un
objeto contra su modificación por quien no tenga derecho a
acceder a ellos, eliminando efectos secundarios e interacciones.

De esta forma el usuario de la clase puede obviar la


implementación de los métodos y propiedades para concentrarse
solo en cómo usarlos. Por otro lado se evita que el usuario
pueda cambiar su estado de maneras imprevistas e
incontroladas.

- Informe como convertir un string a entero en java y viceversa


R:
Para pasarle un int a un TextBox, tienes que pasarlo a string o
formar una cadena con él. Tienes 2 opciones:

-Crear un string con el valor del entero:

int plata = 5;
String enteroTxt = plata + ""; //en enteroTxt ahora tenemos "5",
un String.
-Formar una cadena a la hora de pasarlo al textbox:

int plata = 5;
textBox.setText(plata + "");
Otra cosa que te puede pasar, aunque dices que con string te
funciona, es que intentas modificar algo de la interfaz desde otro
hilo, igual te está dando una excepción por eso, aunque al
funcionarte con cadenas no debería lanzar esa excepción.

- Defina el concepto de método y realice un ejemplo constructor


R: En la programación, un método es una subrutina cuyo código
es definido en una clase y puede pertenecer tanto a una clase,
como es el caso de los métodos de clase o estáticos, como a un
objeto, como es el caso de los métodos de instancia.
Análogamente a los procedimientos en lenguajes imperativos, un
método consiste generalmente de una serie de sentencias para
llevar a cabo una acción, un juego de parámetros de entrada que
regularán dicha acción o, posiblemente, un valor de salida (o
valor de retorno) de algún tipo.

Ejemplo: Ejemplo 7.2

Se Desea crear un objeto del tipo Coordenadas, que indique, la


posición de un punto en el plano cartesiano, y permita calcular la
distancia existente con otro punto, además del punto medio entre
ellos.

1 /*Archivo Coordenadas.java*/
2
3 public class Coordenadas {
4 private int x,y;//Atributos
5 public Coordenadas (int x1 , int y1)//constructor
6 {
7 //asignamos esos valores
8 x=x1;
9 y=y1;
10 }
11 public double Distancia (int x1, int y1)
12 {
13 //este método recibe como parametros
14 //las coordenadas del segundo punto
15 double D;
16 D=Math.sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));
17 return D;//Retornamops el valor de la
distancia
18 }
19 public void Pmedio(int x1, int y1)
20 {
21 double p1, p2;
22 p1=(x+x1)/2;
23 p2=(y+y1)/2;
24 System.out.println("El puntomedio es:
"+p1+","+p2);
25 }
26 }

1 /*Archivo UsaCoordenadas.java*/
2 public class UsaCoordenadas {
3 public static void main (String args []){
4 Coordenadas P=new Coordenadas (10,20);
5 //calculamos la Distancia:
6 System.out.println("La Distancia es: "+P.Distancia(5,6));
7 //Punto Medio
8 P.Pmedio(5,6);
9 }
10 }

- Consultar la estructura y sintaxis de cómo funcionan las


excepciones en java.
R: En Java los errores en tiempo de ejecución (cuando se está
ejecutando el programa) se denominan excepciones, y esto
ocurre cuando se produce un error en alguna de las
instrucciones de nuestro programa, como por ejemplo cuando se
hace una división entre cero, cuando un objeto es 'null' y no
puede serlo, cuando no se abre correctamente un fichero, etc.
Cuando se produce una excepción se muestra en la pantalla un
mensaje de error y finaliza la ejecución del programa.

En Java (al igual que en otros lenguajes de programación),


existen mucho tipo de excepciones y enumerar cada uno de
ellos sería casi una labor infinita. En lo referente a las
excepciones hay que decir que se aprenden a base experiencia,
de encontrarte con ellas y de saber solucionarlas.

Cuando en Java se produce una excepción se crear un objeto de


una determina clase (dependiendo del tipo de error que se haya
producido), que mantendrá la información sobre el error
producido y nos proporcionará los métodos necesarios para
obtener dicha información. Estas clases tienen como clase padre
la clase Throwable, por tanto, se mantiene una jerarquía en las
excepciones. A continuación, mostramos algunas de las clases
para que nos hagamos una idea de la jerarquía que siguen las
excepciones, pero existen muchísimas más excepciones que las
que mostramos:

Você também pode gostar