Buenos días, tengo que hacer el siguiente ejercicio y tengo un par de preguntas:
Para crear los vehículos tendría que hacerlo en la clase principal, ¿cómo puedo saber por la clase de vehículo con el método getVehiclesCreatives () cuántos vehículos he creado?
Cuando se usa el método ir con el vehículo1 digamos "100km" ¿Cómo se puede agregar al kilometraje del vehículo1?
Muchas gracias
Cree una clase Vehicle que tenga los métodos de clase getVehiclesCreated () y getKmTotals (); así como el método de getKmRecorridos (). Pruebe la clase a través de una aplicación que realice, al menos, las siguientes acciones: - Crea 3 vehículos - Ir con el vehículo 1 - Ir con el vehículo 2 - Ir con el vehículo 3 - Ver kilometraje del vehículo1 - Ver kilometraje del vehículo2 - Ver kilometraje del vehículo3 - Ver el kilometraje total del vehículo
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<?php
include ("./vehiculo.php");
$vehiculo1 = new vehiculo();
$vehiculo2 = new vehiculo();
$vehiculo3 = new vehiculo();
$vehiculo1 ->andar(100);
$vehiculo1 ->getKmRecorridos();
?>
Clase vehiculo
<?php
class vehiculo {
public static $vehiculosCreados = 0;
public static $kmTotales;
public $kmRecorridos;
function getVehiculosCreados() {
return $this->vehiculosCreados;
}
function getKmTotales() {
return $this->kmTotales;
}
function getKmRecorridos() {
return $this->kmRecorridos;
}
function setVehiculosCreados($vehiculosCreados) {
$this->vehiculosCreados = $vehiculosCreados;
}
function setKmTotales($kmTotales) {
$this->kmTotales = $kmTotales;
}
function setKmRecorridos($kmRecorridos) {
$this->kmRecorridos = $kmRecorridos;
static $kmTotales;
$this->kmTotales = $kmRecorridos + $kmTotales;
}
function andar($kms) {
$kmRecorridos = $kms + $kmRecorridos;
}
function crearVehiculo($vehiculosCreados) {
$this->$vehiculosCreados++;
}
}
2 respuestas
Para obtener el número de instancias de su clase, debe hacer dos cosas:
- En el método
__construct
de su clase, incremente su
PropiedadvehiculosCreados
al hacer referencia aself
en lugar de
this
. - Cree una función estática que devuelva el
vehiculosCreados
propiedad que también hace referencia aself
en lugar dethis
.
Consulte esta pregunta / respuesta para obtener más información.
class vehiculo {
public static $vehiculosCreados = 0;
public static $kmTotales;
public $kmRecorridos;
public function __construct() {
self::$vehiculosCreados++;
}
function getVehiculosCreados() {
return self::$vehiculosCreados;
}
..
}
Y puedes obtener el total de instancias de tu clase con vehiculo::getVehiculosCreados()
En cuanto a sumar a la distancia que ha viajado, parece tener dos variables, una para rastrear la distancia específica del automóvil y otra para rastrear todas las distancias del automóvil. Para incrementar ambos podemos hacerlo en la misma función:
public function andar($kms) {
$this->kmRecorridos += $kms;
self::$kmTotales += $this->kmRecorridos;
}
Y puede acceder al total con vehiculo::$kmTotales
y la distancia específica del automóvil con $vehiculo->getKmRecorridos()
.
self::$kmTotales
rastreará todas tus instancias de la distancia de vehiculo
mientras que kmRecorridos
rastreará solo la distancia recorrida del objeto actual. Sin embargo, puedo estar malinterpretando lo que quieres, ¡así que avísame si es así!
Para obtener la cantidad de clases de las que ha creado una instancia, debe tener una variable compartida entre todas ellas. Puede hacer esto declarando $vehiculosCreados
como una variable estática. Luego, simplemente necesita incrementar esta variable en el constructor de su clase.
Para actualizar el número de kilómetros recorridos, debe incrementar el valor de $kmRecorridos
en $kms
. Invirtió las variables en su función andar
, debería ser $kmRecorridos += $kms
.
Para tener el número total de kilómetros recorridos, ¡también deberá declarar $kmTotales
como variable estática!
Nuevas preguntas
php
PHP es un lenguaje de secuencias de comandos interpretado, dinámico, orientado a objetos y ampliamente utilizado, diseñado principalmente para el desarrollo web del lado del servidor. Se utiliza para preguntas sobre el lenguaje PHP.