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: Makako en 26 de Junio 2017, 19:11

Título: Clases PHP atributos y métodos básicos get y set ejemplo código coordenadas
Publicado por: Makako en 26 de Junio 2017, 19:11
Estimados buenas tardes, espero de su gran ayuda a orientarme sobre este problema que ne ha dado por vencido...

Declare en PHP una clase llamada “Punto” que contenga atributos y métodos necesarios que permitan la definición de un punto en un plano geométrico. Considere la incorporación de una coordenada X, Y, constructor, etc. Tenga presente los modos de acceso necesarios para su clase. Esta clase llamada “Punto” debe heredar de una clase llamada “Figura” la cual debe contener como atributos nombre, color y en sus métodos el constructor y el método imprimir.

Fui construyendo el código pero este no me corre, a continuación les dejo el código para que por favor me lo corrijan, ya me he dado por vencido.

Código: [Seleccionar]
<?php
class Punto {
  var 
$coordenadax;
  var 
$coordenaday;
    public function 
setcoordenada($coordenadax){
      
$this->nombre $coordenadax;
    }
  public function 
getcoordenada(){
      return 
$this->coordenada;
    }
  public function 
setcoordenada($coordenaday){
      
$this->coordenada $coordenaday;
    }
  public function 
getcoordenada(){
      return 
$this->coordenada;
    }
}
class 
Figura extends Punto{
  var 
$Figura;
  var 
$nombre;
  var 
$color;
    public function 
setPunto($Figura){
      
$this ->Figura $Figura;
    }
  public function 
getFigura(){
      return 
$this->Figura;
    }
public function 
setPunto($nombre){
      
$this ->nombre $nombre;
    }
  public function 
getnombre(){
      return 
$this->nombre;
    }
public function 
setPunto($color){
      
$this ->color $color;
    }
  public function 
getcolor(){
      return 
$this->color;
    }
}

$Figura = new Punto();
$Figura->setcolor("verde ");
$color = new punto();
$color->setfigura("circulo ");
print 
$Figura->getcoordenada($coordenadax$coordenaday), "es "$Figura->getcolor(), "Verde ",".";
?>



Título: Re:Ayuda con codigo PHP
Publicado por: pedro,, en 27 de Junio 2017, 09:46
Hola Makako.

Tienes algunas cosas mal en tú código.

Para empezar el enunciado dice que la clase Punto debe de heredar de la clase Figura y no al contrario como tu hiciste.

Te dejo el código con algunos cambios:
Código: [Seleccionar]
<?php
class 
Figura{

protected $nombre;
protected $color;

public function Figura() {
$this->nombre "Figura 99999";
$this->color "negro";
}

public function setNombre($nombre) {
$this->nombre $nombre;
}

public function setColor($color) {
$this->color $color;
}

public function getnombre(){
return $this->nombre;
}

public function getcolor(){
return $this->color;
}

public function imprimir() {
echo "<br/>" $this->nombre " es de color " $this->color;
}
}

class Punto extends Figura{

private $coordenadaX;
private $coordenadaY;

public function Punto() {
$this->nombre "Punto 99999";
$this->color "azul";
$this->coordenadaX 0;
$this->coordenadaY 0;
}

public function setCoordenadaX($coordenadaX){
$this->coordenadaX $coordenadaX;
}

public function setCoordenadaY($coordenadaY){
$this->coordenadaY $coordenadaY;
}

public function getCoordenadaX(){
return $this->coordenadaX;
}

public function getCoordenadaY(){
return $this->coordenadaY;
}

public function imprimir() {

parent::imprimir();
echo ", su coordenada X es " $this->coordenadaX .  " y su coordenada Y es " .  $this->coordenadaY "<br/>";
}
}


$cuadrado = new Figura();
$cuadrado->imprimir(); // imprime solo valores por defectos
$puntoA = new Punto();
$puntoA->imprimir(); // imprime solo valores por defectos

$cuadrado->setNombre("Cuadrado");
$cuadrado->setColor("Rojo");
$cuadrado->imprimir();

$puntoA->setNombre("PuntoA");
$puntoA->setColor("Verde");
$puntoA->setCoordenadaY(88);
$puntoA->setCoordenadaX(55);
$puntoA->imprimir();
?>

Saludos. ;D
Título: Re:Ayuda con codigo PHP
Publicado por: Makako en 27 de Junio 2017, 12:11
Pedro muchísimas gracias, toda la razón intérprete mal la lectura, nuevamente muchas gracias.

Atte.

Makako