Luokkakentät, yksityiset #‑kentät ja staattiset jäsenet
Luo luokkia julkisilla kentillä, piilota data yksityisillä #‑kentillä ja lisää staattisia ominaisuuksia ja metodeja
Luokkakentät, yksityiset #‑kentät ja staattiset jäsenet on ilmainen JavaScript Academy-oppitunti CoddyKitissä. Tämä on oppitunti 1/3. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu JavaScript Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. JavaScript Academy-kurssilla on yhteensä 3 oppituntia.
Miksi luokkia?
Tavoite: Rakentaa pieniä ja selkeitä luokkia.
- Julkiset kentät ja metodit
- #private-kentät piilotetulle tilalle
- static-ominaisuudet ja -metodit luokkatasoisia apureita varten
- Esimerkit pidetään pieninä ja helposti luettavina

Julkiset kentät ja konstruktori
Luokaa luokka, jossa on julkinen kenttä ja pieniä metodeja; pitäkää logiikka aloittelijoille yksinkertaisena.
// Public fields and a simple method
class Counter {
// public field with default
value = 0;
constructor(start) {
// use a default if start is not provided
this.value = Number.isFinite(start) ? start : 0;
}
inc() {
this.value = this.value + 1;
}
}
const c1 = new Counter(2);
c1.inc();
console.log("value:", c1.value); // 3

Yksityiset #-kentät
#private-kentät ovat kielen valvomia, ja niitä voi käyttää vain luokan rungon sisällä. Tarvittaessa toteuttakaa lukumetodeja arvojen lukemista varten.
// Private # fields hide internal state
class SafeCounter {
// private field (only inside the class)
#value = 0;
constructor(start) {
this.#value = Number.isFinite(start) ? start : 0;
}
inc() { this.#value = this.#value + 1; }
getValue() { return this.#value; } // expose via method
}
const sc = new SafeCounter(5);
sc.inc();
console.log("safe value:", sc.getValue());
// External access fails (uncommenting the next line would throw):
// console.log(sc.#value);

Getterit turvallisia lukuja varten
Getter voi palauttaa johdetun tai validoidun arvon samalla, kun kenttä pysyy yksityisenä.
// Getters provide read-only views; simple guard logic
class User {
#name = "Anonymous";
constructor(name) {
if (typeof name === "string" && name.trim().length > 0) {
this.#name = name.trim();
}
}
get name() {
return this.#name;
}
}
const u = new User(" Ayla ");
console.log("name:", u.name);

Staattiset jäsenet
static-jäseniä kutsutaan luokan kautta (esimerkiksi MathHelp.circleArea()), ei instanssien kautta.
// Static = belongs to the class, not to instances
class MathHelp {
static PI = 3.14159;
static circleArea(r) {
if (!(typeof r === "number" && r >= 0)) return 0;
return MathHelp.PI * r * r;
}
}
console.log("PI:", MathHelp.PI);
console.log("area r=2:", MathHelp.circleArea(2));
// Instances do not have the static members:
const mh = new MathHelp();
console.log("instance has PI?", "PI" in mh); // false

Aloittelijalle sopivat käytännöt
Vinkkejä:
- Suosikaa pieniä luokkia, joissa on vain muutama selkeä metodi.
- Käyttäkää #private-kenttiä todelliseen yksityisyyteen; alaviivat ovat vain nimeämiskäytäntö.
- Sijoittakaa vakiot ja apuohjelmat static-jäseniin.
- Tarvittaessa tarjotkaa ulkopuoliseen käyttöön vain vähimmäismäärä lukumetodeja eli gettereitä.

Yksityisten kenttien perusteiden visa
Pikatarkistus: #private-kentät.

Kertaus
Kertaus: Käyttäkää julkisia kenttiä yksinkertaiseen tilaan, #private-kenttiä sisäisten tietojen piilottamiseen ja static-jäseniä luokkatasoisiin apureihin. Pitäkää jokainen luokka pienenä ja helposti luettavana.

Opi JavaScript tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 59
- Oppitunnit
- 200
Usein kysytyt kysymykset
Onko oppitunti ”Luokkakentät, yksityiset #‑kentät ja staattiset jäsenet” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa JavaScript Academy-oppimispolun 3 oppituntia, myös oppitunnin “Luokkakentät, yksityiset #‑kentät ja staattiset jäsenet”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. JavaScript Academy-kurssilla on yhteensä 3 oppituntia.
Mitä opin oppitunnilla ”Luokkakentät, yksityiset #‑kentät ja staattiset jäsenet”?
Luo luokkia julkisilla kentillä, piilota data yksityisillä #‑kentillä ja lisää staattisia ominaisuuksia ja metodeja Harjoittelet JavaScript Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni JavaScript Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin JavaScript Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/3.
Kuinka kauan ”Luokkakentät, yksityiset #‑kentät ja staattiset jäsenet”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä JavaScript Academy-oppitunnilla?
Kyllä. Jokainen JavaScript Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Luokkakentät, yksityiset #‑kentät ja staattiset jäsenet
- Perintä, super ja milloin koostaminen kannattaa
- Mixin-rakenteet — yksinkertaista uudelleenkäyttöä ilman syviä hierarkioita