Advertisement
fcamuso

Javascript Lezione 63

Aug 4th, 2022
1,080
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4.   <meta charset="UTF-8">
  5.   <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6.   <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7.   <title>Classi</title>
  8. </head>
  9. <body>
  10.    
  11.  
  12.   <script>
  13. 'use strict';
  14.  
  15.     class Auto {
  16.      
  17.       //fields
  18.       #marca="sconosciuta";
  19.       #modello="sconosciuta";
  20.       #max_velocita = 0;
  21.    
  22.       constructor (marca, modello) {
  23.        
  24.         if (marca === undefined) throw new Error('Marca non specificata');
  25.  
  26.         this.#marca = marca;
  27.         this.#modello = modello;
  28.        
  29.         Object.seal(this);
  30.       }
  31.  
  32.       #sendMail() {console.log('email inviata')};
  33.  
  34.       //setter tradizionale
  35.       Set_max_velocita(nuovaVelocita){
  36.         if (nuovaVelocita>100) this.#max_velocita = nuovaVelocita;
  37.       }
  38.  
  39.       //getter tradizionale
  40.       Get_max_velocita() {return this.#max_velocita;}
  41.  
  42.       set max_velocita(nuovaVelocita) {
  43.         if (nuovaVelocita>100) this.#max_velocita = nuovaVelocita;
  44.       }
  45.  
  46.       get max_velocita() {return this.#max_velocita;}
  47.  
  48.       Print() {
  49.         console.log(`${this.#marca} - ${this.#modello} - ${this.#max_velocita}`);
  50.       }
  51.     }
  52.  
  53.     let auto = null;
  54.     try {
  55.       auto = new Auto("Fiat");
  56.     }
  57.     catch (eccezione)
  58.     {
  59.       console.log(eccezione.message);
  60.     }
  61.  
  62.     if (auto !==null)
  63.     {
  64.       //auto.#marca = ""; //vietato: field privato
  65.       //auto.paperino = "slakjfljfd"; //vietato: oggetto sealed
  66.  
  67.       console.log(auto);
  68.       //auto.#sendMail(); //no, privato
  69.  
  70.       //auto.Set_max_velocita(130);
  71.  
  72.       auto.max_velocita = 130;
  73.       console.log(auto.max_velocita);
  74.  
  75.  
  76.       auto.Print();
  77.  
  78.     }
  79.  
  80.   </script>
  81. </body>
  82. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement