Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Haaste: Toteuta Staattiset Ominaisuudet ja Metodit Luokassa | JavaScript-luokkien ja Perinnän Hallinta
Javascript-logiikka ja Vuorovaikutus

Haaste: Toteuta Staattiset Ominaisuudet ja Metodit Luokassa

Pyyhkäise näyttääksesi valikon

Tehtävä

Kuvittele, että rakennat varastonhallintajärjestelmää verkkokaupalle. Product-luokan tulee seurata varastoon lisättyjen tuotteiden kokonaismäärää sekä tarjota toiminnallisuus kahden tuotteen hintojen vertailuun.

  1. Määrittele staattinen ominaisuus:
    • Luo Product-luokkaan staattinen ominaisuus totalProducts, joka alustetaan arvoon 0;
    • Joka kerta kun uusi Product-olio luodaan, kasvata totalProducts-arvoa yhdellä, jotta voidaan seurata varastoon lisättyjen tuotteiden määrää.
  2. Määrittele staattinen metodi: Määrittele staattinen metodi comparePrices(product1, product2), joka ottaa kaksi Product-oliota parametreina ja palauttaa:
    • "Product 1 is more expensive", jos product1 on kalliimpi;
    • "Product 2 is more expensive", jos product2 on kalliimpi;
    • "Both products have the same price", jos hinnat ovat samat.
12345678910111213141516171819202122232425262728293031
class Product { _____ _____ = 0; // Define static property for total products constructor(name, price) { this.name = name; this.price = price; Product._____+=1; // Increment totalProducts } // Static method to compare prices _____ comparePrices(product1, product2) { if (product1.price > product2.price) { return _____; } else if (_____ < _____) { return _____; } else { return 'Both products have the same price'; } } } // Testing const product1 = new Product('Laptop', 1200); const product2 = new Product('Smartphone', 800); const product3 = new Product('Tablet', 1200); console.log(Product.comparePrices(product1, product2)); // Expected: Product 1 is more expensive console.log(Product.comparePrices(product1, product3)); // Expected: Both products have the same price console.log(Product.comparePrices(product2, product3)); // Expected: Product 2 is more expensive console.log(Product.totalProducts); // Expected: 3
  • Määrittele staattinen ominaisuus nimeltä totalProducts ja alusta se arvoon 0;
  • Konstruktori-metodissa kasvata Product.totalProducts arvoa yhdellä aina, kun uusi Product-olio luodaan;
  • Määrittele staattinen metodi comparePrices(product1, product2), joka ottaa kaksi parametria: product1 ja product2;
  • Käytä comparePrices-metodissa if-lausetta tarkistaaksesi, onko product1.price suurempi kuin product2.price. Jos kyllä, palauta "Product 1 is more expensive";
  • Käytä else if-lausetta tarkistaaksesi, onko product1.price pienempi kuin product2.price. Jos kyllä, palauta "Product 2 is more expensive".
12345678910111213141516171819202122232425262728293031
class Product { static totalProducts = 0; // Define static property for total products constructor(name, price) { this.name = name; this.price = price; Product.totalProducts+=1; // Increment totalProducts } // Static method to compare prices static comparePrices(product1, product2) { if (product1.price > product2.price) { return 'Product 1 is more expensive'; } else if (product1.price < product2.price) { return 'Product 2 is more expensive'; } else { return 'Both products have the same price'; } } } // Testing const product1 = new Product('Laptop', 1200); const product2 = new Product('Smartphone', 800); const product3 = new Product('Tablet', 1200); console.log(Product.comparePrices(product1, product2)); // Output: Product 1 is more expensive console.log(Product.comparePrices(product1, product3)); // Output: Both products have the same price console.log(Product.comparePrices(product2, product3)); // Output: Product 2 is more expensive console.log(Product.totalProducts); // Output: 3

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 13

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Haaste: Toteuta Staattiset Ominaisuudet ja Metodit Luokassa

Tehtävä

Kuvittele, että rakennat varastonhallintajärjestelmää verkkokaupalle. Product-luokan tulee seurata varastoon lisättyjen tuotteiden kokonaismäärää sekä tarjota toiminnallisuus kahden tuotteen hintojen vertailuun.

  1. Määrittele staattinen ominaisuus:
    • Luo Product-luokkaan staattinen ominaisuus totalProducts, joka alustetaan arvoon 0;
    • Joka kerta kun uusi Product-olio luodaan, kasvata totalProducts-arvoa yhdellä, jotta voidaan seurata varastoon lisättyjen tuotteiden määrää.
  2. Määrittele staattinen metodi: Määrittele staattinen metodi comparePrices(product1, product2), joka ottaa kaksi Product-oliota parametreina ja palauttaa:
    • "Product 1 is more expensive", jos product1 on kalliimpi;
    • "Product 2 is more expensive", jos product2 on kalliimpi;
    • "Both products have the same price", jos hinnat ovat samat.
12345678910111213141516171819202122232425262728293031
class Product { _____ _____ = 0; // Define static property for total products constructor(name, price) { this.name = name; this.price = price; Product._____+=1; // Increment totalProducts } // Static method to compare prices _____ comparePrices(product1, product2) { if (product1.price > product2.price) { return _____; } else if (_____ < _____) { return _____; } else { return 'Both products have the same price'; } } } // Testing const product1 = new Product('Laptop', 1200); const product2 = new Product('Smartphone', 800); const product3 = new Product('Tablet', 1200); console.log(Product.comparePrices(product1, product2)); // Expected: Product 1 is more expensive console.log(Product.comparePrices(product1, product3)); // Expected: Both products have the same price console.log(Product.comparePrices(product2, product3)); // Expected: Product 2 is more expensive console.log(Product.totalProducts); // Expected: 3
  • Määrittele staattinen ominaisuus nimeltä totalProducts ja alusta se arvoon 0;
  • Konstruktori-metodissa kasvata Product.totalProducts arvoa yhdellä aina, kun uusi Product-olio luodaan;
  • Määrittele staattinen metodi comparePrices(product1, product2), joka ottaa kaksi parametria: product1 ja product2;
  • Käytä comparePrices-metodissa if-lausetta tarkistaaksesi, onko product1.price suurempi kuin product2.price. Jos kyllä, palauta "Product 1 is more expensive";
  • Käytä else if-lausetta tarkistaaksesi, onko product1.price pienempi kuin product2.price. Jos kyllä, palauta "Product 2 is more expensive".
12345678910111213141516171819202122232425262728293031
class Product { static totalProducts = 0; // Define static property for total products constructor(name, price) { this.name = name; this.price = price; Product.totalProducts+=1; // Increment totalProducts } // Static method to compare prices static comparePrices(product1, product2) { if (product1.price > product2.price) { return 'Product 1 is more expensive'; } else if (product1.price < product2.price) { return 'Product 2 is more expensive'; } else { return 'Both products have the same price'; } } } // Testing const product1 = new Product('Laptop', 1200); const product2 = new Product('Smartphone', 800); const product3 = new Product('Tablet', 1200); console.log(Product.comparePrices(product1, product2)); // Output: Product 1 is more expensive console.log(Product.comparePrices(product1, product3)); // Output: Both products have the same price console.log(Product.comparePrices(product2, product3)); // Output: Product 2 is more expensive console.log(Product.totalProducts); // Output: 3

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 13
some-alt