Documentos de Académico
Documentos de Profesional
Documentos de Cultura
¿Que es un objeto?
Un objeto tiene un tiempo de vida y un espacio en la memoria. Los objetos se
construyen a partir de las clases.
¿Cuáles son las métricas que definen una clase bien diseñada?
Encapsulamiento:
La abstracción y el encapsulamiento son conceptos complementarios: la abstracción se
centra en el comportamiento observable de un objeto, mientras el encapsulamiento se
centra en la implementación que da lugar a este comportamiento. El encapsulamiento
se consigue a menudo mediante la ocultación de información, que es el proceso de
ocultar todos los secretos de un objeto que no contribuyen a sus características
esenciales; típicamente, la estructura de un objeto está oculta, así como la implantación
de sus métodos.
El encapsulamiento proporciona barreras explícitas entre abstracciones diferentes y por
tanto conduce a una clara separación de intereses.
Modularidad :
Jerarquía :
Tipos :
Los tipos son la implementación práctica de las clases de objetos, lo que implica que objetos de
diferentes tipos no pueden ser intercambiados o, en el mejor de los casos, solo pueden ser
intercambiados de manera muy limitada.
Concurrencia :
La concurrencia es la propiedad que distingue un objeto activo de uno que no está activo.
Persistencia:
Si, porque aunque no pueda instanciar una clase abstracta, lo puedo utilizar desde las clases
herederas
¿ Que es un constructor?
Un constructor es una operación dentro de una clase que se utiliza establecer el estado inicial
de un objeto pero jamás crea el objeto
¿Qué es un destructor?
Un destructor es una operación que libera espacio de memoria de todos los elementos que
utilizó este objeto.
Composición : Las relaciones en una composición son requeridas, hay una contención
física y los ciclos de vida están íntimamente ligados
¿ cuales son los 3 tipos de actores que pueden ser los objetos? :
Cliente : puede consumir servicios de objetos y no provee servicios de otros objetos
Servidor : Solo proveen servicio pero no pueden consumirlos
Agente : Consumen y proveen servicios.
¿ Que es una clase sellada y cual es el modificador que lo define como sellada?
Una clase sellada es un tipo de clase el cual se puede instanciar pero no se puede heredar y
se denota con la palabra sealed
¿ Cuáles son los tipos de visibilidad y que función cumple cada uno?
hay una contención física y los ciclos de vida están íntimamente ligados
Encapsulamiento
Según Booch, clasificar objetos a partir de sus elementos específicos se le conoce como
:
Los tres enfoques de la clasificación son la categorización clásica (clasificación por
propiedades),
agrupamiento conceptual (clasificación por conceptos) y teoría de prototipos
(clasificación por asociación con un prototipo).
Indique las opciones que correspondan a las métricas que indican que una clase este
bien diseñada
o semántica funcional
o Sintaxis
o Suficiencia
o Primitivo
o Bajo Acoplamiento
Responsabilidades ( Son 7) :
El Framework detecta (al darse cuenta que ese objeto perdió una de sus
referencias de puntero) y lo marca como “Disposable”
Entonces cada vez que “pasemos” el Garbage Collector ( para pasar el garbage
collector en C# usamos el método “CG.Collect(); “ , el framework detectará
esos objetos
marcados como “Disposable” y los borrará.
Se encarga de proveer todos los elementos para poder trabajar además permite extender ( lo
puedes heredar para hacer objetos mas específicos). Y se encuentran agrupados en
Namespaces.
MSIL
METADATOS (versionado, recursos que utiliza, target)
CTS : Especificacion común de tipos : va dentro del CLS, se trata de especificaciones de tipos de
datos
CLS : comon languaje especification (especificacione de lenguaje común ) son “Las Reglas
del Juego” para generar código en otros lenguajes, hay mas de 200 lenguajes de programación
que trabajan con .NET, pero todos al finalizarlos se “guardan” en una extensión assemblie
LINQ :
Es una estructura que nos permite realizar búsquedas, ordenamientos, uniones de listas de
objetos, etc y se implementa en cualquier clase,
Fig 1
Fig 2
Se genera una estructura del tipo LinQ para realizar el filtrado de los objetos de esa lista que
poseen cierto estado, en este caso puntual se requiere que se filtren las personas que tienen
edades mayores a 25 años ( según la lista de la Fig 2. Debería tener a “Maria” y a “Ana”)
Fig 3.
Tal como lo habíamos visto anteriormente la lista 2 que generamos retorna los valores
previstos :
siguiente sintaxis
Usamos “From” + elemento
individual + IN + lista de
elementos
Usamos “Where” para la condición
Métodos.
Operaciones (geter y setter) . las Operaciones también se llaman Propiedades
Eventos
Todo lo que está declarado dentro de la interfaz es público, yo solamente puedo declarar un
método mas NO implementarlo, y las puedo ir implementando en las clases, funciona “algo
muy parecido a una clase abstracta” todo lo que declaro en la interfaz a momento de usarla lo
tengo que implementar
las interfaces son declarativas y solo se pueden declarar métodos operaciones y eventos. Están
vinculadas estrictamente al comportamiento
Las interfaces SI se pueden heredar para poder crear interfaces más específicas.
Fig 1
Fig 2
3.- cuando quiero Implementar la interfaz en cualquier clase puedo o arrastrar como herencia
esa interfaz o simplemente con “:” al lado del nombre de la clase la puedo llamar
Fig 3
Fig 4
(Cuando se utiliza una interfaz no es necesario usar el override a menos que la interfaz se haya
implementado en la clase “Padre” y quiera traerla a la clase hijo)
1- IComparable
2- IClonable
3- IDisposable
interfaz Icomparable :
Sirve para comparar una lista de objetos, al implementarla podemos utilizar el método
Sort( ) Para implementarla seguimos los pasos de la Fig 3 y la Fig 4 descritos anteriormente
con estas salvedades :
Cuando se llame a la interfaz se le pase por < > la lista de objetos de esa clase a comparar es
decir :
1.- validamos que el objeto a comparar no sea nulo, en caso de serlo que devuelva “1” (
Verificar que lo que reciba por parámetros en esa función sea el tipo de objeto a comparar,
esto se hace solo cuando ponemos <Persona> o la clase que queremos en la declaración de la
intefaz)
2.- sino se Retorna la recursividad con el atributo que quiero comparar ( SI LE PONGO * -1 lo
ordena al revés)
Interfaz IClonable :
Sirve para clonar un objeto, Su método principal es el Clone() , para clonar tengo que clonar
todos sus atributos y escribirlos uno por uno en este método para evitar esto existe un método
mas performante que se llama MemberWiseClone( );
Fig 1
Para utilizarlo una vez realizado los pasos que veníamos realizando para agregar una interfaz a
la clase y una vez realizado el paso de la Fig 1 para llamar al método de esta interfaz lo
realizamos de la siguiente manera :
Fig 2
Fig 1
1.- Validamos si estamos desechando es decir si el objeto esta marcado como disposable para
esto creo un booleano (fuera del metodo) y pregunto Fig 2
2.- Cerramos todos los objetos No administrados, pero además vamos a usar el método del
Garbage Collector “SuppressFinalize(this)” Esto quita el constructor al objeto para que no
haya forma de que el constructor lo borre
Fig 2
Para implementarlo :
Fig 3
Excepciones
Las Excepciones son acciones que se ejeutan en un método,
Fig 1
2.- Escribimos Public Override como para llamar a algún método de la clase “Exception” y
seleccionamos message
Fig 2
3.- luego del ” =>” agregamos el string a mostrar :
Fig 3
Fig 4
5.- Ahora para llamar a ese Evento necesitamos hacer el try catch :
Fig 5
Eventos
Los eventos son mecanismos utilizados para notificar a los objetos interesados cuando ocurre
algún tipo de acción o cambio en otro objeto. Un evento puede ser considerado como una
señal que indica que algo ha sucedido. Y se definen usando delegados
Fig 1
2.- Dentro del evento ya va a estar creado el delegado y lo que voy a hacer es cambiar el tipo
de dato de entrada
Fig 2
3.- Después voy a la clase que yo quiera tener el evento , y declaro el evento, así como uno
declara los atributos y los métodos también se crean eventos :
Fig 3
Los objetos eventos creados en la Fig 3 son como los eventos del button:
Fig 4
4.- Después de declararlas las “Invoco” en la misma clase donde las declaré, dentro de un
método, :
Fig 5
5.- Voy al Form y primero instancio un objeto nuevo de la clase que implementé el Evento :
( “Esto igual no es nada particular al evento, es solo que necesitamos para que se ejecute el evento que
esa clase esté instanciada, como normalmente sucede si queremos por ejemplo ejecutar un método “)
Fig 6
Y luego dentro del constructor como se aprecia en la Fig 6 asigno a las instancias que había
creado en la clase ( Fig 3 )
Fig 7
Fig 8
Dentro del Método “UnaPersona_Si” borramos el throw que viene por defectoy agrego el
MessageBox con la variable string “mensaje”
Fig 9
6.- Por ultimo voy al evento del elemento disparador, en este caso es el evento Click de uno de
los botones del form, cada vez que se presione el botón va a ejecutar el método :
Preguntas
¿ Que diferencia hay entre un programa y un proceso?
- From (Correcta)
- Where (Correcta)
- Isnull (incorrecta)
- Select (Correcta)
Para capturar un mismo tipo de excepción en 2 catch diferentes se debe utilizar la instrucción
- When
- Falso
Para Desarrollar un programa en .NET que se intercambie por la red utilizando un protocolo
orientado a la conexión se utilizan los objetos :
- TcpListener
- TcpClient
-Eventos
-Metodos
Para utilizar el método Sort de una lista genérica, la clase debe tener implementada la
interfaz
- Icomparable
-Clonación Profunda
- Verdadero
- Falso
- Verdadero
- Compilacion JIT
- -Manejo De memoria
- Capacidad de trabajar en MultiHilo (MultiThreat)
- TypeChecker
- MarshallCOM
- Manejo De excepciones
- Políticas de seguridad
Si yo quisiera generar una excepción del mismo tipo (idénticas) tener 2 catch con la misma
excepción pero con condiciones diferentes se deberá usar la palabra reservada when por ejemplo:
- MSIL
- METADATA (versionado, recursos que utiliza, target)
El TCP Es como una llamada telefónica, necesita que el destino atienda, con un TCP client te
conectas (pedis conexión) y del otro lado la tiene que aceptar TCP Listener y una vez que lo
acepta recién ahí se puede dialogar
Si yo quiero utilizar una estructura USING ( interfaz) para instanciar un objeto y que se libere
la memoria rápido, que interfaz tengo que utilizar?
- Idisposable
Siempre el parse (NO IMPORTA DEL TIPO DE DATO QUE ESTEMOS HABLANDO) recibe un string
y lo convierte en ese tipo de dato, de otra manera estaría casteando.
o Verdadero
o Falso (ES ICOMPARABLE)
o Instanciar objetos sin importar las interfaces que implementen, para liberar
espacio de memoria deshechos
o Instanciar objetos que implementen la interfaz “Idisposable”, para liberar
espacio de memoria al desecharlos
o Llamar al método Dispose antes de finalizar
o Todas las anteriores son correctas
o Ninguna de las anteriores es correcta
Cual es el Método dentro de un objeto que implementa la interfaz “Iclonable” que se debe
utilizar dentro de la función Clone() para clonar todo el estado del objeto :
o MemberWiseClone()
o CloneAtributes()
o CloneObjet()
o Todas las anteriores
o Ninguna de las anteriores
La capacidad de clonar el estado de los atributos de un objeto y los objetos compuestos por
el mismo se conoce como :
o Clonación Integral
o Clonación de gran escala
o Clonación superficial
o Todas las anteriores
o Ninguna de las anteriores ----- Clonación profunda
¿ Que función cumple el Constructor Compartido?
o IpEndpoint
o Socket
o IpAdress
o Todas las anteriores
o Ninguna de las anteriores
o UdpListener
o UdpClient
o UdpSender
o Todas las anteriores
o Ninguna de las anteriores
o IpEndpoint
Acercad de delegados
o Puede asignar mas de un método a un evento dado que posee una colección
de manejadores implícita
o Puede asignar sólo un método a un evento dado
o El evento se genera siempre dentro del objeto pero se atiende en el cliente
o Todas las anteriores son correctas
o Ninguna de las anteriores es correcta
o No permiten sobrecarga
o Nunca son públicos
o No pueden estar implementados en una clase abstracta
o Ninguna de las anteriores
Throw()
o Compilación JIT
o Manejo de Memoria
o MarshallerCOM
select Alumno)