Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Miksi Käyttää Olio-Ohjelmointia? | C++:n OOP:n Perusteet
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
C++ OOP

bookMiksi Käyttää Olio-Ohjelmointia?

Kuvittele, että sinulle annetaan tehtäväksi kehittää ohjelmistosovellus opiskelijatietojen hallintaan. Aluksi tämä saattaa vaikuttaa yksinkertaiselta. Voisit aloittaa käyttämällä yksinkertaisia muuttujia opiskelijan nimen ja keskiarvon tallentamiseen.

main.cpp

main.cpp

copy
12345
int main() { std::string student_name = "Bob"; float grade_point_average = 3.3; }

Tämä lähestymistapa toimii hyvin yksittäisen opiskelijan hallinnassa, mutta tilanne monimutkaistuu, kun opiskelijoita on useampia. Yksinkertainen ratkaisu voisi olla erillisten muuttujien käyttäminen jokaiselle opiskelijalle, mutta tämä muuttuu nopeasti hankalaksi hallita. Taulukoiden käyttö on parempi vaihtoehto, sillä se vähentää toistoa ja parantaa järjestystä.

main.cpp

main.cpp

copy
12345
int main() { std::string names[2] { "Bob", "Ann" }; float avarage_grades[2] { 3.3, 3.7 }; }

Tämä toimii toistaiseksi. Mutta entä jos sinun täytyy tallentaa enemmän tietoja, kuten puhelinnumeroita, ilmoittautumispäiviä tai kurssilistoja? Kun tiedon määrä kasvaa, useiden erillisten taulukoiden hallinta muuttuu hankalaksi ja altistaa virheille.

main.cpp

main.cpp

copy
123456
int main() { std::string names[2] { "Bob", "Ann" }; float average_grades[2] { 3.3f, 3.7f }; std::string emails[2] { "bob@example.com", "ann@example.com" }; }

Tämän datan hallintaan voidaan luoda funktioita, jotka ottavat nämä arvot parametreina suorittaakseen toimintoja, kuten opiskelijatietojen tulostaminen, GPA:n päivittäminen tai sähköpostiosoitteen muuttaminen. Useiden opiskelijoiden ja kenttien kanssa samoja parametreja toistetaan monissa funktioissa, mikä tekee koodista virhealtista ja vaikeasti ylläpidettävää.

functions.h

functions.h

copy
123456
void get_student_info(int id, std::string names[], float gpa[], std::string emails[]); void set_student_info(int id, std::string names[], float gpa[], std::string emails[]); void set_student_name(int id, std::string names[], float gpa[], std::string emails[]); void set_student_gpa(int id, std::string names[], float gpa[], std::string emails[]); void set_student_email(int id, std::string names[], float gpa[], std::string emails[]);

Jopa yksinkertaiset tehtävät vaativat samojen taulukoiden toistuvaa välittämistä. Kenttien lisääminen tekee koodista yhä monimutkaisempaa ja toisteisempaa.

Olio-ohjelmointi (OOP) ratkaisee tämän mahdollistamalla toisiinsa liittyvän datan ja toiminnallisuuden ryhmittelyn yhteen säiliöön, jota kutsutaan luokaksi. Tämä ei ainoastaan yksinkertaista koodia, vaan myös parantaa kapselointia hallitsemalla pääsyä sisäisiin yksityiskohtiin selkeiden, hyvin määriteltyjen rajapintojen kautta.

question mark

Mikä seuraavista on olio-ohjelmoinnin tärkein etu?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 2

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

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

Suggested prompts:

Can you explain what a class is in OOP?

How does encapsulation work in object-oriented programming?

What are the main benefits of using OOP for managing student data?

bookMiksi Käyttää Olio-Ohjelmointia?

Pyyhkäise näyttääksesi valikon

Kuvittele, että sinulle annetaan tehtäväksi kehittää ohjelmistosovellus opiskelijatietojen hallintaan. Aluksi tämä saattaa vaikuttaa yksinkertaiselta. Voisit aloittaa käyttämällä yksinkertaisia muuttujia opiskelijan nimen ja keskiarvon tallentamiseen.

main.cpp

main.cpp

copy
12345
int main() { std::string student_name = "Bob"; float grade_point_average = 3.3; }

Tämä lähestymistapa toimii hyvin yksittäisen opiskelijan hallinnassa, mutta tilanne monimutkaistuu, kun opiskelijoita on useampia. Yksinkertainen ratkaisu voisi olla erillisten muuttujien käyttäminen jokaiselle opiskelijalle, mutta tämä muuttuu nopeasti hankalaksi hallita. Taulukoiden käyttö on parempi vaihtoehto, sillä se vähentää toistoa ja parantaa järjestystä.

main.cpp

main.cpp

copy
12345
int main() { std::string names[2] { "Bob", "Ann" }; float avarage_grades[2] { 3.3, 3.7 }; }

Tämä toimii toistaiseksi. Mutta entä jos sinun täytyy tallentaa enemmän tietoja, kuten puhelinnumeroita, ilmoittautumispäiviä tai kurssilistoja? Kun tiedon määrä kasvaa, useiden erillisten taulukoiden hallinta muuttuu hankalaksi ja altistaa virheille.

main.cpp

main.cpp

copy
123456
int main() { std::string names[2] { "Bob", "Ann" }; float average_grades[2] { 3.3f, 3.7f }; std::string emails[2] { "bob@example.com", "ann@example.com" }; }

Tämän datan hallintaan voidaan luoda funktioita, jotka ottavat nämä arvot parametreina suorittaakseen toimintoja, kuten opiskelijatietojen tulostaminen, GPA:n päivittäminen tai sähköpostiosoitteen muuttaminen. Useiden opiskelijoiden ja kenttien kanssa samoja parametreja toistetaan monissa funktioissa, mikä tekee koodista virhealtista ja vaikeasti ylläpidettävää.

functions.h

functions.h

copy
123456
void get_student_info(int id, std::string names[], float gpa[], std::string emails[]); void set_student_info(int id, std::string names[], float gpa[], std::string emails[]); void set_student_name(int id, std::string names[], float gpa[], std::string emails[]); void set_student_gpa(int id, std::string names[], float gpa[], std::string emails[]); void set_student_email(int id, std::string names[], float gpa[], std::string emails[]);

Jopa yksinkertaiset tehtävät vaativat samojen taulukoiden toistuvaa välittämistä. Kenttien lisääminen tekee koodista yhä monimutkaisempaa ja toisteisempaa.

Olio-ohjelmointi (OOP) ratkaisee tämän mahdollistamalla toisiinsa liittyvän datan ja toiminnallisuuden ryhmittelyn yhteen säiliöön, jota kutsutaan luokaksi. Tämä ei ainoastaan yksinkertaista koodia, vaan myös parantaa kapselointia hallitsemalla pääsyä sisäisiin yksityiskohtiin selkeiden, hyvin määriteltyjen rajapintojen kautta.

question mark

Mikä seuraavista on olio-ohjelmoinnin tärkein etu?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 2
some-alt