Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Luokkaoliot | Johdatus Olio-Ohjelmointiin (OOP)
Quizzes & Challenges
Quizzes
Challenges
/
C# Perusteiden Jälkeen

bookLuokkaoliot

Luokan olio voidaan luoda seuraavalla syntaksilla:

index.cs

index.cs

copy
1
className variableName = new className();

Luokan kenttään pääsee käsiksi pisteoperaattorilla (.):

index.cs

index.cs

copy
1
variableName.fieldName

Esimerkiksi:

index.cs

index.cs

copy
12345678910111213141516
using System; class Player { public string username; } public class ConsoleApp { public static void Main(string[] args) { Player p1= new Player(); p1.username = "Don"; Console.WriteLine(p1.username); } }

Lauseke new Player(); käytetään uuden olion luomiseen, kun taas Player p1 luo muuttujan uuden olion tallentamista varten. Pelkkä Player p1; luo vain tyhjän muuttujan ilman siihen liitettyä oliota, joten sinun täytyy luoda uusi olio ja tallentaa se muuttujaan: Player p1 = new Player();.

Jos siis luot taulukon, jonka koko on 10 käyttäen Player-luokkaa, se ei luo kymmentä oliota, vaan se luo tyhjän taulukon, jolla on kapasiteetti tallentaa 10 Player-oliota. Tämä voidaan ymmärtää seuraavan esimerkin avulla:

index.cs

index.cs

copy
12345678910111213141516
using System; class Player { public string username; } public class ConsoleApp { public static void Main(string[] args) { Player[] players = new Player[10]; players[0].username = "Don"; // Error on this line Console.WriteLine(players[0].username); } }

Virheilmoitus sanoo "Object reference not set to an instance of an object", mikä tarkoittaa yksinkertaisesti sitä, että yrität käyttää tietoa oliosta, jota ei ole olemassa – indeksissä 0 ei ole oliota, johon viitata.

Tämä voidaan korjata luomalla olio manuaalisesti indeksiin 0:

index.cs

index.cs

copy
12345678910111213141516
using System; class Player { public string username; } public class ConsoleApp { public static void Main(string[] args) { Player[] players = new Player[10]; players[0] = new Player(); players[0].username = "Don"; Console.WriteLine(players[0].username); } }
question mark

Mikä on oikea syntaksi uuden olion luomiseksi luokasta nimeltä Car?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 4

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

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

bookLuokkaoliot

Pyyhkäise näyttääksesi valikon

Luokan olio voidaan luoda seuraavalla syntaksilla:

index.cs

index.cs

copy
1
className variableName = new className();

Luokan kenttään pääsee käsiksi pisteoperaattorilla (.):

index.cs

index.cs

copy
1
variableName.fieldName

Esimerkiksi:

index.cs

index.cs

copy
12345678910111213141516
using System; class Player { public string username; } public class ConsoleApp { public static void Main(string[] args) { Player p1= new Player(); p1.username = "Don"; Console.WriteLine(p1.username); } }

Lauseke new Player(); käytetään uuden olion luomiseen, kun taas Player p1 luo muuttujan uuden olion tallentamista varten. Pelkkä Player p1; luo vain tyhjän muuttujan ilman siihen liitettyä oliota, joten sinun täytyy luoda uusi olio ja tallentaa se muuttujaan: Player p1 = new Player();.

Jos siis luot taulukon, jonka koko on 10 käyttäen Player-luokkaa, se ei luo kymmentä oliota, vaan se luo tyhjän taulukon, jolla on kapasiteetti tallentaa 10 Player-oliota. Tämä voidaan ymmärtää seuraavan esimerkin avulla:

index.cs

index.cs

copy
12345678910111213141516
using System; class Player { public string username; } public class ConsoleApp { public static void Main(string[] args) { Player[] players = new Player[10]; players[0].username = "Don"; // Error on this line Console.WriteLine(players[0].username); } }

Virheilmoitus sanoo "Object reference not set to an instance of an object", mikä tarkoittaa yksinkertaisesti sitä, että yrität käyttää tietoa oliosta, jota ei ole olemassa – indeksissä 0 ei ole oliota, johon viitata.

Tämä voidaan korjata luomalla olio manuaalisesti indeksiin 0:

index.cs

index.cs

copy
12345678910111213141516
using System; class Player { public string username; } public class ConsoleApp { public static void Main(string[] args) { Player[] players = new Player[10]; players[0] = new Player(); players[0].username = "Don"; Console.WriteLine(players[0].username); } }
question mark

Mikä on oikea syntaksi uuden olion luomiseksi luokasta nimeltä Car?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 4
some-alt