Академический Документы
Профессиональный Документы
Культура Документы
Un método de instancia es el que se invoca siempre sobre una instancia (objeto) de una clase. Por ejemplo
p1.getNombre(); siendo p1 un objeto de tipo Persona es un método de instancia: para invocarlo necesitamos
una instancia de persona. Un método de clase es aquel que puede ser invocado sin existir una
instancia.
Un método de clase se define agregando la palabra clave static antes del tipo en la signatura del método.
Ejemplos:
//Ejemplo aprenderaprogramar.com
public static String getNombre () { … }
public static int getNumeroDeDiasDelMes () { …
}
Los métodos de clase pueden ser invocados con la notación de punto de estas dos maneras:
//Ejemplo aprenderaprogramar.com
NombreDeLaClase.nombreDelMétodo (parámetros si los
hay);
NombreDelObjeto.nombreDelMétodo (parámetros si los
hay);
Por ejemplo si la clase Enero tuviera un método estático getNumeroDeDiasDelMes() podríamos escribir: int dias
= Enero.getNumeroDeDiasDelMes();. La diferencia con un uso de método “normal” es que aquí no invocamos
a un objeto, sino a una clase y por ello decimos que un método estático es un método de clase. Por ejemplo,
los métodos de la clase Arrays del API de Java son métodos estáticos: no los invocamos sobre un objeto, sino
sobre una clase. Otra clase que se basa en métodos estáticos es Math. Por ejemplo el método pow (double a,
double b) es un método que devuelve la potencia ab. Es un método estático porque no se invoca sobre un objeto.
Nosotros podemos crear métodos estáticos en nuestro código. Los interpretaremos como paquetes de código
asociados a la clase.
BlueJ es un entorno de desarrollo especial que permite trabajar con objetos y métodos de instancia
directamente. En otros entornos esto no es posible y debe indicársele al IDE una clase “de arranque”. Una vez
se especifica esa clase, Java busca e invoca automáticamente el método main ubicado en dicha clase, y a partir
de ese método comienza la creación de objetos y desarrollo de la aplicación. Los métodos de clase (estáticos)
tienen estas limitaciones:
a) No pueden acceder a campos de instancia (lógico, pues los campos van asociados a objetos).
b) No pueden invocar a un método de instancia de la misma clase (lógico pues los métodos de instancia
van asociados a objetos).
Ahora estamos en condiciones de reflexionar con un poco más de detenimiento sobre el método main.
Recordemos su sintaxis: public static void main (String[ ] Args). El método main será siempre un método público,
ya que por su papel de iniciador de la aplicación no tendría sentido que fuera privado y por tanto inaccesible
desde el exterior. El método main siempre es un método estático, ya que cuando se invoca no existen
objetos creados con anterioridad porque la ejecución del programa aún no ha comenzado. Si un programa no
ha comenzado, existen clases pero no objetos (aunque BlueJ es un entorno educativo especial que sí permite
crear objetos e interactuar con ellos antes de ejecutar el método main, esto debemos verlo como algo no habitual
en el desarrollo de programas). El tipo de main siempre será void (nulo) ya que no es un tipo función que
devuelva un valor: su misión es arrancar la ejecución, no devolver un valor.
En el método main se incluye como parámetro para su invocación un array de Strings. Este array permitiría
iniciar el programa con argumentos adicionales: por ejemplo podríamos indicarle una gama de colores de
presentación entre varias posibles, o si se trata de un juego, si se ejecuta en modo 1 ó 2 jugadores, etc. En este
caso suponiendo que la clase que contiene el main se llama juego, para la ejecución por consola escribiríamos
> java juego TwoPlayers Red, donde TwoPlayers y Red son parámetros que condicionan la ejecución del
programa. Cada palabra después del nombre de la clase se introduce en un array que se pasa al array Args[ ]
que va como parámetro de la clase main. No obstante, es muy frecuente que los programas se inicien sin
parámetros, para lo cual simplemente en consola habríamos de escribir java y el nombre de la clase.
En teoría, el cuerpo de un método main puede contener todo lo que se quiera y ser tan largo como se quiera.
No obstante, ya hemos indicado que un buen diseño pasa por hacer el método main lo más corto posible y evitar
que contenga la lógica del programa. En esencia, debe limitarse a crear objetos e invocar sus métodos. El código
que controla la lógica del programa no tiene por qué estar en la clase con el método main. En main nos
limitaríamos a crear un objeto que llevara el control del programa.
EJERCICIO
¿Qué mensaje de error se obtiene? ¿Por qué se obtiene este mensaje de error? ¿Cómo podemos solucionarlo
para que se ejecute lo que pretendemos? Puedes comprobar si tus respuestas son correctas consultando en los
foros aprenderaprogramar.com
Flujo neto total de caja por unidad monetaria desembolsada o comprometida: determina
las veces que se recupera el desembolso inicial con la suma de los flujos de caja que
proporciona la inversión cada año.
No tiene en cuenta los momentos en los que se obtienen los flujos, que las rentas
disponibles producen intereses desde el principio hasta el final de la vida de la inversión
→ suma cantidades heterogéneas.
La rentabilidad sería lo que excede de la unidad, para obtenerla debemos restarle 1 a la
fórmula anterior.
La rentabilidad viene referida a una base temporal anual. La fórmula anterior se refiere a
toda la vida de la inversión.
Suma rentas heterogéneas en el tiempo, una unidad monetaria tiene el mismo valor
durante el primer año que la obtenida en el último año.
Alcanzando el período de recuperación, las inversiones siguen produciendo flujos que
este criterio no toma en consideración.
Estos criterios no tienen rigor financiero.
A = Desembolso inicial
Qn = Cuasi-rentas
K1 = Coste de Capital o tasa de descuento
Nos ofrece la rentabilidad del proyecto, que debe ser única e independiente del coste asumido
por los recursos aportados.
Cuando el coste de capital es igual a la TIR se obtiene la misma rentabilidad por los recursos
empleados que el coste que soportan y el VAN es cero:
la TIR es la relación entre el valor del flujo y el desembolso inicial. El pay-back cuando los
flujos de caja son constantes:
Q1 = Q2 =
…=Q
Flujos de
caja son
constantes:
n→∞
VAN TIR
Ventajas Reconocen explícitamente los vencimientos de los diferentes flujos de caja en el tiempo.
El criterio del VAN y de la TIR no son independientes. Una inversión con un VAN igual a cero
tendrá una TIR igual al coste de capital. Si el VAN es positivo, la TIR será superior al coste de
capital y si el VAN es negativo la TIR de inversión será inferior al coste de capital invertido. En
inversiones simples, las cuasi-rentas son positivas, salvo el desembolso inicial, ambos
métodos producen el mismo resultado. Cuando se ordenan proyectos los resultados son
diferentes. El VAN da resultado en términos absolutos y la TIR determina el valor de forma
relativa, nos indica la rentabilidad que obtendremos del capital invertido. Se apoyan en
hipótesis distintos: rentabilidad absoluta en VAN y relativa en TIR.
inversión simple: el desembolso inicial es negativo y todos los demás flujos de caja son
positivos.
inversión no simple: cuando el desembolso inicial es negativo y algunos flujos de caja
también.
Según el resultado de la TIR: distingue entre inversiones con resultado coherente y las que no
lo tienen.
se producen cambios de signo en los flujos de caja durante el desarrollo del proyecto
el saldo del proyecto en algún momento, descontando al tipo TIR es positivo.
La premisa básica del VAN es que las variables son homogéneas: si incluimos los flujos de
cajas nominales, la tasa de descuento es nominal y si los flujos reales la tasa de descuento a
aplicar será real.
Transformar los flujos de caja reales Qr a nominales QN se multiplica a los primeros por la tasa
correspondiente a la inflación g:
QN = Qr(1+g)
Para conseguir la homogeneidad del proyecto, tipo de descuento nominal Kn y real Kr:
El valor capital con la tasa modificada:
El valor del VAN coincide cuando en valores reales o nominales las variables son
homogéneas.
estado cierto: se conocen los valores de las variables, riego nulo o cero.
estado aleatorio: no se conocen los valores de las variables, pero si su probabilidad de
ocurrencia o probabilidad objetiva: estado de riesgo.
estado de incertidumbre: no conocemos el valor de las variables ni su probabilidad de
ocurrencia.
El ajuste al riesgo en los flujos de caja se realiza a través del coeficiente de riesgo α, que se
derivan de las curvas de indiferencia del sujeto inversor en la comparación entre los valores
con riesgo y sin riesgo. El flujo sin riesgo Q es aquel valor cierto que tiene la misma
consideración para el inversor que el valor con riesgo Qr, el que tiene valor mayor estimado
puede sufrir distorsiones y ser diferente al real:
Qr . a = Q
A = Q / Qr
Cuanto menor sea el coeficiente de riesgo mayor será el riesgo asumido. Cada flujo tiene su
propio coeficiente ya que el riesgo es diferente en cada período. Valor actual neto:
La tasa de descuento deberá ser una tasa sin riesgo con las variables homogeneizadas del
VAN. El desembolso inicial no se ve afectado por partir de la base de que es una variable
determinista al producirse en el año inicial.
Ajuste del riesgo en la tasa de descuento obliga a aplicar una prima p de riesgo al coste de los
recursos implicados. La relación analítica entre la tasa con riesgo Kr y sin riesgo K es: Kr = K +
p
los flujos empleados aquí son flujos con riesgo. El valor del VAN de un proyecto es el mismo.
Igualdad entre el equivalente financiero de un flujo en condiciones de certeza y en condiciones
de riesgo:
un período más:
está la relación entre ambos procedimientos de ajuste. Uno ajusta el riesgo de manera
particular en cada período y el otro global. El último está afectado por períodos de previsión
lejanos e incrementos exponenciales en las tasas de descuento.
Análisis de sensibilidad en los proyectos de
inversión
El efecto de riesgo genera incertidumbre sobre le valor de las variables por las diferencias que
puedan surgir entre la previsión y el dato real. Cuando la variable es negativa causa que el
rendimiento de la inversión baje. Se analiza el intervalo de valores para un VAN positivo. Este
análisis se denomina análisis de sensibilidad. Se realiza individualmente para las variables del
proyecto.
Variaciones en el desembolso inicial: el VAN será positivo cuando el desembolso, como parte
negativa del proyecto sea inferior a la parte positiva, la suma de los flujos de caja
descontados:
Del sumatorio de cash-flow se obtiene el extremo superior del intervalo de variación del
desembolso inicial. El desembolso siempre tendrá valor negativo (el inversor no recibe dinero
por invertir en el momento inicial). El intervalo de variación de desembolso para el cual el VAN
es positivo aconseja la realización del proyecto.
Variaciones en los flujos de caja: para obtener la cuasi-renta se toma como punto de partida el
VAN y se despeja el flujo deseado mostrando el valor mínimo del VAN cero por lo que la
inigualdad deberá ser mayor que el valor. La primera cuasi-renta del valor capital:
Generalmente:
Cuando mayor es la renta mayor será el valor actual neto.