早上好,我必须做以下练习,我有几个问题:
要创建车辆,我必须在主类中进行,我如何从车辆类中了解getVehiclesCreatives()方法我创建了多少辆车?
使用方法时,请使用vehicle1让我们说“100km”如何将其添加到车辆1的里程数中?
非常感谢
创建一个具有类方法getVehiclesCreated()和getKmTotals()的Vehicle类;以及getKmRecorridos()的方法。通过至少执行以下操作的应用程序测试该类: - 创造3辆车 - 去车辆1 - 去车辆2 - 去车辆3 - 查看车辆里程数1 - 查看车辆里程数2 - 查看车辆里程3 - 查看车辆总里程数
<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();
?>
Class 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++;
}
}
答案 0 :(得分:0)
要获取实例化的类数,您应该在所有类之间拥有共享变量。您可以通过将$vehiculosCreados
声明为静态变量来执行此操作。然后,您只需要在类的构造函数中增加此变量。
要更新行驶公里数,您需要将$kmRecorridos
的值增加$kms
。您在函数andar
中反转了变量,它应该是$kmRecorridos += $kms
。
要获得行驶公里总数,您还需要将$kmTotales
声明为静态变量!
答案 1 :(得分:0)
为了获得课程实例的数量,你需要做两件事:
__construct
方法中增加您的分数
引用vehiculosCreados
而非引用self
时的this
属性
vehiculosCreados
。 self
的静态函数
也引用this
而非class vehiculo {
public static $vehiculosCreados = 0;
public static $kmTotales;
public $kmRecorridos;
public function __construct() {
self::$vehiculosCreados++;
}
function getVehiculosCreados() {
return self::$vehiculosCreados;
}
..
}
。有关详细信息,请参阅this问题/答案。
vehiculo::getVehiculosCreados()
您可以使用public function andar($kms) {
$this->kmRecorridos += $kms;
self::$kmTotales += $this->kmRecorridos;
}
至于增加您前往的距离,您似乎有两个变量,一个用于跟踪特定车辆的距离,另一个用于跟踪所有车辆的距离?要增加两者,我们可以在同一个函数中执行:
vehiculo::$kmTotales
您可以使用$vehiculo->getKmRecorridos()
和self::$kmTotales
与特定车辆的距离访问总计。
vehiculo
将跟踪kmRecorridos
距离的所有实例,而List<ChartGroups>()
将仅跟踪当前对象的行进距离。不过,我可能会误解你想要的东西,所以请告诉我它是不是!