Piccoli dubbi esercizio PHP (id univoco progressivo, metodo per aumentare il prezzo)

di il
1 risposte

Piccoli dubbi esercizio PHP (id univoco progressivo, metodo per aumentare il prezzo)

Salve, ho due piccoli problemi (sottolineati e scritti in corsivo) su questo esercizio in PHP. Ci ho provato in entrambi i casi ma non sono per nulla certo. Sul resto invece penso di aver fatto più o meno bene, in ogni caso i consigli sono ben accetti. Ringrazio in anticipo chi riuscirà a darmi una mano. (Sono esercizi di vecchi esami, mi sto solo esercitando).
L'esercizio:
Creare in PHP una classe libro per una libreria online in cui mantenere come dati privati id (generato automaticamente) autore, titolo, casa editrice, prezzo.
Definire un costruttore cui vengono passati i valori di inizializzazione delle variabili (e che assegna un id unico progressivo ad ogni nuova istanza).
1. Basterebbe inizializzarlo a 0 nel costruttore in questo modo?
$this -> id=0;

Definire quindi metodi getter e setter per le variabili e un metodo che aumenta il prezzo di una quantità passata come parametro al metodo.
2. Bisogna fare una roba del genere? Sinceramente non mi è ben chiaro il quesito
public function aumentoprezzo ($p) {
$this -> prezzo=$this->prezzo+$p;

Definire quindi una sottoclasse libro universitario che oltre alle variabili del libro introduce una variabile che specifica la materia del libro.

<?php
//classe Libro e dati privati
class Libro {
private $id;
private $titolo;
private $casaeditrice;
private $prezzo;
}
//definisco il costruttore
public function_construct ($i, $tit, $caed, $p){
$this-> id= $i;
$this-> titolo= $tit;
$this-> casaeditrice= $caed;
$this-> prezzo= $p;
}
//getter e setter
public function getid () {
return $this-> id
}
public function setid ($i) {
$this -> id= $id
}
public function gettitolo () {
return $this-> titolo
}
public function settitolo ($tit) {
$this -> titolo= $tit
}
public function getcasaeditrice () {
return $this-> casaeditrice
}
public function setcasaeditrice ($caed) {
$this -> casaeditrice= $caed
}
public function getprezzo () {
return $this-> Prezzo
}
public function setid ($p) {
$this -> prezzo= $p
}
//sottoclasse
class Libro extends Librouniversitario {
private $materia;

public function_ construct ($ma) {
$this -> materia = $ma

1 Risposte

  • Re: Piccoli dubbi esercizio PHP (id univoco progressivo, metodo per aumentare il prezzo)

    Ciao, premesso che sono alle prime armi, e anche io sto cercando di sfruttare le enormi potenzialità della programmazione OOP.
    Leggendo il tuo codice mi è venuto qualche dubbio che spero tu abbia tempo e voglia di aiutarmi a risolvere.
    
    //classe Libro e dati privati
    class Libro {
    private $id;
    private $titolo;
    private $casaeditrice;
    private $prezzo;
    }
    //definisco il costruttore
    public function_construct ($i, $tit, $caed, $p){
    $this-> id= $i;
    $this-> titolo= $tit;
    $this-> casaeditrice= $caed;
    $this-> prezzo= $p;
    }
    
    Hai una classe libro che immagino sia finalizzata alla gestione di una database con le informazioni relative ai libri disponibili, se così non fosse chiedo scusa e evita di perdere tempo continuando a leggere.

    Parto dunque dalla premessa che la classe abbia un fine pratico, anche perché fatico a comprendere il senso logico
    di un metodo che mi torna semplicemente uno dei parametri dell'istanza della classe.

    Nella tabella dei libri avrai i campi corrispondenti alle informazioni passate alla classe ,
    $nuovolibro = new libro('Africa', 'Mondadori', 12.88)
    il campo ID non solo sarebbe di difficile e complessa gestione, ma peggio sarebbe del tutto inutile,
    nel salvataggio del record avendo impostato un campi ID PK AI avrai automaticamente un valore int
    univoco che potrai utilizzare come vuoi.

    Di conseguenza avrai risolto anche il problema dell'aggiornamento passando l'ID ad un metodo che
    selezioni il record in base all'ID, legga il prezzo e applichi l'aumento.

    Si dovrebbe certo valutare dove e come passare il parametro dell'aumento ed il tipo di aumento, fisso o percentuale
    la la procedura in se sarebbe semplicissima.

    Spero di non averti fatto perdere tempo.
Devi accedere o registrarti per scrivere nel forum
1 risposte