Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: paramonso en 07 de Enero 2018, 10:24

Título: JavaScript cómo definir propiedades y métodos estáticos o de clase CU01148E
Publicado por: paramonso en 07 de Enero 2018, 10:24
Hola. Dejo el Ejercicio del tema CU01148E JavaScript propiedades y métodos estáticos, del tutorial pdf de programación web de aprenderaprogramar.

EJERCICIO

Define un tipo de objeto Meteorito cuyas propiedades de instancia (específicas de cada objeto) sean diametro, temperatura y nombre. La temperatura será un valor numérico que suponemos está en grados centígrados. Como propiedad estática del tipo meteorito define definicionSegunDiccionario (que debe contener la definición de meteorito) y como métodos estáticos obtenerRadio (que debe devolver el radio a partir de un parámetro diametro) y obtenerTemperaturaFarenheit (que debe devolver el valor de temperatura expresado en grados Farenheit a partir de un parámetro temperatura).  Crea un objeto de tipo Meteorito con un diámetro, temperatura y nombre y comprueba que puedes acceder a las propiedades y métodos estáticos mostrando por pantalla la definición de meteorito, la superficie del objeto creado y la temperatura Farenheit del objeto creado.

Código: [Seleccionar]
<!DOCTYPE html>

<html>
<head>
<title>Ejemplo aprenderaprogramar.com</title>
<meta charset="utf-8">
<script type="text/javascript">

/* =====================================================================
/* =========================   EJERCICIO  ==============================
/* ===================================================================== */

function Meteorito(Diametro, Temperatura, Nombre)
{
this.Diametro = Diametro;
this.Temperatura = Temperatura;
this.Nombre = Nombre;
     
}
//Propiedad estatica
Meteorito.definicionSegunDiccionario=
'El término meteoro proviene del griego meteoron, que significa «fenómeno en el cielo». Se emplea para describir el destello<br/>'+
'luminoso que acompaña la caída de materia del sistema solar sobre la atmósfera terrestre. <br/>'+
'Dicho destello se produce por la incandescencia temporal que sufre el meteoroide a causa de la presión de choque (el aire<br/>'+
'atmosférico se comprime al chocar con el cuerpo y, al aumentar la presión, aumenta la temperatura, que se transfiere al meteoroide),<br/>'+
'no de la fricción.Esto ocurre generalmente a alturas entre 80 y 110 kilómetros sobre la superficie de la Tierra. <br/>'+
'Un meteoroide es un cuerpo menor del sistema solar de, aproximadamente, entre 100 µm hasta 50 m (de diámetro máximo).<br/>'+
'El límite superior de tamaño, 50 m, se emplea para diferenciarlo de los cometas y de los asteroides, mientras que el<br/>'+
'límite inferior de tamaño, 100 µm, se emplea para diferenciarlo del polvo cósmico; no obstante, los límites de tamaño<br/>'+
'no suelen usarse muy estrictamente siendo ambigua la designación de los objetos que se encuentren cercanos a estos límites.<br/><br/>'+
'Definicion extraida de  Wikipedia';
//Metodos estaticos
Meteorito.obtenerRadio=function(Diametro){
Radio=Diametro/2;
return Radio
};

Meteorito.obtenerTemperaturaFarenheit= function (Temperatura) { 
var GradFhar = Temperatura * 1.8 + 32;     
return GradFhar;
}


  function CrearObjetos()
{
//Creación de los objetos
var Meteoritos=new Array();
Meteoritos[0]=new Meteorito(50, 100, "Luso");
Meteoritos[1]=new Meteorito(20, 85, "Galileo");
Meteoritos[2]=new Meteorito(15.5, -15, "Reventon");
//Llamar funcion de presentar datos en Pantalla
PresentarDatos(Meteoritos)
}

/* =====================================================================
/* ===================== FIN DEL EJERCICIO =============================
/* ===================================================================== */

function PresentarDatos(Meteoritos){
var msg="",i=0;
//Presentar datos en pantalla
msg=msg+"DEFINICION DE LOS METEORITOS <BR/><BR/>"+Meteorito.definicionSegunDiccionario+'<br/><br/>'
for(var i in Meteoritos)
{
msg=msg+'Nombre del Meteorito'+i+' = '+Meteoritos[i].Nombre+'<br/>'+
'Diametro del Meteorito'+i+' = '+Meteoritos[i].Diametro+' metros de diametro<br/>';
Meteoritos[i].Diametro=Meteorito.obtenerRadio(Meteoritos[i].Diametro);
msg=msg+'Radio del Meteorito'+i+' = '+Meteoritos[i].Diametro+' metros de radio <br/>'+
'Temperatura del Meteorito'+i+'= '+Meteoritos[i].Temperatura+' Grados Celsius<br/>';
Meteoritos[i].Temperatura=Meteorito.obtenerTemperaturaFarenheit(Meteoritos[i].Temperatura);
msg=msg+'Temperatura del Meteorito'+i+'= '+Meteoritos[i].Temperatura+' Grados Fahrenheit<br/><br/>';

}
document.all.pizarra.innerHTML=msg;
}
</script>

<style type="text/css">
body{background-color:green;}
  h1,h2,h3{
text-align:center;
margin:0;
padding:0;
color:white;
width:300;
height:200;
}

.boton {
border:outset white  2px; 
width:200px;
border-radius:25px 25px;
box-shadow:3px 3px 2px 2px #AFF6AF;
text-align:center;
    background-color:#90EE90;
color:black;
font-size:19px;
margin-top :2px;
margin-left:5px;
margin-bottom:5px;

}
.boton, #externa{margin-left:150px;}


.boton:hover {
border:inset 2px green;
box-shadow:3px 3px 2px 2px  #0BF50B ;
    }
#pizarra {

background-color:black;
border:groove red 8px;
border-radius:25px 25px;


color:white;
font-size:19px;
padding:15px;
overflow:hidden;
float:left;
margin-left:10px;
margin-top:10px;
}
#Pizarras{float:left;}
</style>
</head>

<body>
<div id="cabecera">
<h2>Cursos aprenderaprogramar.com</h2>
<h3>Ejemplos JavaScript<br/>Ejercicio CU01148E<br/>Los Meteoritos</h3>
</div>
<div id="Pizarras">
<div class="boton" onclick="CrearObjetos()">Comprobar</div>
<div id="pizarra"></div>
</body>

</html>


Gracias.
 ;)
Título: Re:JavaScript cómo definir propiedades y métodos estáticos o de clase CU01148E
Publicado por: Ogramar en 09 de Junio 2018, 20:01
Buenas, el código es una buena solución del ejercicio, bien estructurado

El código es muy similar al del ejercicio CU01147E, si bien tiene pequeños matices. Para quien revise el código puede estar bien comprobar las pequeñas diferencias que tiene e interpretarlas, ya que en un caso se trabaja con herencia y en este con propiedades y métodos estáticos

Salu2