Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Usuario Invitado

#681
Sólo por compatibilidad, vayan a cambiar a y b a int, por lo que la división solo devolvería la parte entera. Si ambos operandos son reales como en este caso, no es necesario hacer el casting.
#682
Primero declaras variables como division, multiplicacion, suma y resta pero nunca las utilizas. Dentro del switch estás creando éstas mismas variables. IO, supongo que es una clase que la has creado y has implementado métodos estáticos como el que has usado readNumber(). Yo lo he hecho con el clásico Scanner porque no sé si tu método estará bien programado.


Código (java) [Seleccionar]
import java.util.*;
import java.lang.*;
import java.io.*;

class HelloWorld
{
    public static void main(String[] args) {

           Scanner t = new Scanner(System.in);
           
           System.out.println("Introduce el primer numero");
           double a = t.nextDouble();
           System.out.println("Introduce el segundo numero");
           double b =t.nextDouble();
     
           System.out.println("Introduzca 1 para dividir, 2 para multiplicar, 3 para sumar y 4 para restar");
           int opcion = t.nextInt();
           
           switch(opcion){
     
               case 1:
               {
                   double division= (double) a/b;
                   System.out.println("el resultado de la division es " +division);
                   break;
               }
               case 2:
               {
                   double multiplicacion= a*b;
                   System.out.println("el resultado de la division es " +multiplicacion);
                   break;
               }
               case 3:
               {
                   double suma= a+b;
                   System.out.println("el resultado de la suma es " +suma);
                   break;
               }
               case 4:
               {
                   double resta= a-b;
                   System.out.println("el resultado de la resta es " +resta);
                   break;
               }
               default: System.out.println("No has introducido una opcion correcta");
           }
       }
     
}
#683
Para eso necesito saber qué contenedor es el que tiene el margen. Si tu no le has dado ese margen, podrías aplicar un reset general al principio de tu hoja de estilos. Es necesario que sea al principio de todo.

Código (=css) [Seleccionar]

*
{
    margin: 0;
    padding: 0;
}
#684
Formulario:
Código (html4strict) [Seleccionar]

<section class="panel">

  <section class="panel-head">
    <span class="logo"></span>
    <p class="panel-title">Título del form</p>
  </section>

  <section class="panel-body">

    <section class="form-group-hoz">
      <label for="nombre">Nombre:</label>
      <input type="text" id="nombre" class="textfield"/>
    </section>

    <section class="form-group-hoz">
      <label for="apellido">Apellido:</label>
      <input type="text" id="apellido" class="textfield"/>
    </section>

    <section class="form-btn-group-hoz">
      <button type="submit" class="btn btn-primary">Enviar</button>
      <button type="reset" class="btn btn-default">Limpiar</button>
    </section>

  </section>

</section>


CSS:

Código (css) [Seleccionar]
.panel
{
border: 1px solid #ccc;
box-shadow: 0px 0px 10px 1px rgba(0,0,0,.14);
width: 450px;
}
.panel-head
{
align-items: center;
display: flex;
justify-content: space-between;
padding: .5rem .25rem;
}
.logo
{
display: block;
background: url('php-logo.png') no-repeat;
background-size: cover;
height: 100px;
width: 100px;
}
.panel-title
{
display: flex;
color: #777;
font-family: 'segoe ui';
justify-content: flex-start;
font-size: 14pt;
width: calc(100% - 120px);
}
.panel-body
{
padding: 1rem 1.8rem;
}
.form-group-hoz
{
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 35px;
}
.form-btn-group-hoz
{
display: flex;
align-items: center;
justify-content: flex-end;
}
label
{
color: #777;
font-family: 'segoe ui';
font-size: 14pt;
}
.textfield
{
    border: 1px solid #ccc;
    box-shadow: 0px 0px 0px 10px #fff,
       0px 0px 0px 11px #ccc,
       0px 2px 0px 11px #999;
    border-radius: 2px;
    color: #888;
    font-size: 14pt;
    padding: .25rem .5rem;
    transition: all .25s linear;
    width: 60%;
}
.textfield:focus
{
    border: 1px solid rgba(0,144,255,.4);
}
.btn {
border: 1px solid #ccc;
border-radius: 2px;
font-family: "segoe ui";
padding: 12px 26px;
}
.btn:hover {
outline: none;
}
.btn:last-child
{
margin-left: 10px;
}
.btn-default {
background-color: #E7E7E7;
border: 1px solid #E7E7E7;
color: #555;
}
.btn-default:hover {
background-color: #B9B9B9;
border: 1px solid #B9B9B9;
color: #333;
}
.btn-primary {
background-color: #337AB7;
border: 1px solid #337AB7;
color: rgba(255,255,255,.9);
}
.btn-primary:hover {
background-color: #286090;
border: 1px solid #286090;
}


Resultado:


Podrías aumentar la fuente del botón editando el CSS, en .btn, agrega un font-size: 16pt;.

Como lo quieres grandote, pues hice los botones más grandes mediante la propiedad padding. Personalmente, haría todo tamaño estándar.
#685
Sí, así te vale.
#686
Tu Formulario:

Código (html4strict) [Seleccionar]
<div><form action="enviar.php" method="post">
<p><input id="nombre" class="textfield" name="nombre" type="text" />&nbsp;</p>
<p><input id="apellido" class="textfield" name="apellido" type="password" /><br />
<input type="submit" value="Enviar" />&nbsp;
</form></div>


Y en tu hoja de estilos (.css) agregas el código que te puse:

Código (css) [Seleccionar]
.textfield
{
    border: 1px solid #ccc;
    box-shadow: 0px 0px 0px 10px #fff,
       0px 0px 0px 11px #ccc,
       0px 2px 0px 11px #999;
    border-radius: 2px;
    color: #888;
    font-size: 20pt;
    padding: .25rem .5rem;
    transition: all .25s linear;
}
.textfield:focus
{
    border: 1px solid rgba(0,144,255,.4);
}


Y eso es todo. Como recomendación te diría no utilizar saltos de línea en HTML (<br />), ya que puedes posicionar los elementos como desees (en la mayoría de los casos xD) con CSS. Pero ese ya es otro tema, tienes que estudiar CSS.
#687
En tu HTML, por ejemplo (lo único que importa para poder utilizar el estilo es que le asignes a los input que desees la clase 'textfield'):

Código (html4strict) [Seleccionar]
<input type="text" class="textfield" />

Y en tu hoja de estilos:

Código (css) [Seleccionar]
.textfield
{
    border: 1px solid #ccc;
     box-shadow: 0px 0px 0px 10px #fff,
       0px 0px 0px 11px #ccc,
       0px 2px 0px 11px #999;
     border-radius: 2px;
     color: #888;
     font-size: 20pt;
     padding: .25rem .5rem;
     transition: all .25s linear;
}
.textfield:focus
{
     border: 1px solid rgba(0,144,255,.4);
}
#688
¿Porqué no haces ese mismo efecto con puro CSS?



Código (css) [Seleccionar]

.textfield
{
  border: 1px solid #ccc;
  box-shadow: 0px 0px 0px 10px #fff,
    0px 0px 0px 11px #ccc,
    0px 2px 0px 11px #999;
  border-radius: 2px;
  color: #888;
  font-size: 20pt;
  padding: .25rem .5rem;
  transition: all .25s linear;
}
.textfield:focus
{
  border: 1px solid rgba(0,144,255,.4);
}
#689
@MinusFour gracias por responder. Efectivamente, estaba pensando en eso pero no estaba seguro, ya que no sabía a ciencia cierta cómo funcionaba this en PHP, y si funciona igual que en Java.

Dado que funciona igual que en Java y como las entidades 'Customer' y 'User' heredan de ActiveRecord, un simple this hace referencia al objeto mismo, y éso era de lo que no estaba seguro.

Un saludo y gracias por terminarlo de aclarar. Si se pudiera dar reputación te las daría.
#690
Supongamos que tengo una interface:

Código (php) [Seleccionar]
<?php

interface ActiveRecord
{
public function save();
public function update();
public function delete();
public function find($id);
public function all();
}


Y una clase que lo implementa:

Código (php) [Seleccionar]
<?php

abstract class ActiveRecordImpl implements ActiveRecord
{

public function save()
{

}

public function update()
{

}

public function delete()
{

}

public function find($id)
{

}

public function all()
{

}

}


Además dos clases: Customer y User (con sus __get y __set) que heredan de Active Record.

Bien, supongamos que el método save() de ActiveRecord necesita guardar un objeto en la BD de la siguiente manera:

Código (php-brief) [Seleccionar]
<?php

public function save()
{
$caller REFERENCIA_AL_OBJETO_LLAMANTE;
$callerClass get_class($caller); // 'Customer' o 'User'

// obtiene el servicio dinámicamente, de acuerdo al objeto llamante
$service ServiceFactory::create($callerClass);

// le envía el objeto llamante al servicio Customer para que
// lo guarde en la BD
$service->save($caller);
}


El método save() obtiene una referencia al método que lo llamó (que puede ser un objeto tipo Customer o User), y obtiene la clase del objeto llamante para poder crear su servicio respectivo. Posteriormente, el servicio guarda el objeto por medio del método save()

La clase ServiceFactory solo crea y devuelve un servicio para el tipo de clase indicado:

Código (php) [Seleccionar]
<?php

public static function create($class)
{
switch ($class) {
case 'Customer':
return new CustomerService();

case 'User':
return new UserService();
}
}


Y los servicios de 'Customer' y 'User' hacen uso de sus DAOs respectivos:

Código (php) [Seleccionar]
<?php

class CustomerService
{
public function save(Customer $customer)
{
new CustomerDAO()->save($customer);
}
}


Código (php) [Seleccionar]
<?php

class UserService
{
public function create(User $user)
{
new UserDAO()->save($user);
}
}


Ahora, para guardar un objeto 'Customer' y 'User' se haría lo siguiente:

Código (php) [Seleccionar]
<?php

$customer 
= new Customer();
$customer->username $username;
$customer->email $email;
$customer->password $password;
$customer->dni $dni;
$customer->address $address;

$user = new User();
$user->username $username;
$user->email $email;
$user->password $password;


¿Es ésto posible? Si es es así, ¿cómo podría obtener la referencia del objeto llamante?