-
C# basics
Salut! De curand m.am apucat sa invat limbajele de programare C# si SQL. (le folosesc pentru site-uri, nu aplicatii windows). Am cautat si am gasit multe tutoriale, dar nu am reusit sa imi fac o idee concreta despre ce inseamna o clasa, un obiect, o metoda, o proprietate s.a.m.d. De asemenea nu am reustit sa pun cap la cap definitiile sa inteleg cand se folosesc, cum si de ce. Daca este cineva care stie acest limbaj l-as ruga sa ma ajute sa imi fac o idee despre lucrurile esentiale sau sa imi dea un sfat. Multumesc!
-
Ok... In primul rand SQL nu este limbaj de programare. SQL = Structured query language, un limbaj folosit pentru interogarea bazelor de date. Daca vrei sa faci site-uri in ASP.NET, probabil ai sa folosesti T-SQL (transact sql), dar sintaxa este in principiu aceeasi, deci daca stii baza e ok. Eventual, daca nu vrei sa scrii cod SQL, vezi ca poti folosi in Visual Studio DataSet-uri si nu mai trebuie sa faci tu query-urile... faci doar niste click-uri pe acolo, alegi baza de date, din ce tabel sa ia datele, etc...
Clasele, obiectele si ce-ai mai zis tu nu tin de C#. Acestea reprezinta niste termeni folositi in programarea orientata pe obiecte (POO sau OOP in engleza). Daca ai sa cauti pe net OOP basics sau ceva de genul, vei gasi multe exemple f clare, din care vei intelege.
Clasa nu este nimic altceva decat o structura care contine niste caracteristici, ale unor obiecte. Bineinteles, sunt mai multe chestii de citit.. Iti trebuie macar baza, cu modificatori de acces (de unde pot fi accesate metodele private, protected, etc). E f greu sa-ti explice careva aici printr-un comentariu :)
De exemplu poti sa ai clasa om, care are nume, inaltime, varsa, sa zicem. Acestea sunt proprietati. Metodele sunt functii membre ale clasei care-ti intorc diverse rezultate (in general se folosesc de proprietati, dar nu neaparat... poti face ce vrei in metodele alea). De exemplu:
class Om{
// Proprietati
private int varsta;
private string nume;
private float inaltime;
// Metode
public void SetName(string nume){
this.nume = nume;
}
public string GetName(){ // iti intoarce numele, deoarece este privat si nu poate fi accesat din afara clasei.
return this.nume;
}
}
Obiectul este o instanta a unei clase. Pentru a crea obiecte folosesti "new NumeClasa();". Ca sa instantiem un om (sa zicem ca-i un baiat bine facut:D):
Om xulescu = new Om(); // se apeleaza constructorul implicit... citeste si care-i treaba cu constructorii...
Apoi, daca vrei sa ii pui numele, apelezi metoda SetName cu parametrul care vrei:
xulescu.SetName("ionel");
Daca vrei sa-i obtii numele, apelezi metoda GetName:
Console.WriteLine(xulescu.GetName());
Si tot asa... ai inteles vreo ceva, sau mai tare te-am ametit?:))
-
Dupa cum spunea Tymbark clasele, obiectele si metodele tin de OOP si te ciocnesti de ele cam in orice limbaj de programare. Mai departe OOP este o nulitate fara design patter-uri. Este ca si cum ai folosi doar 1% din potentialul unei tehnologii.
Pentru OOP iti recomand cartea "PHP object oriented solutions" - sintaxa si clasele sunt in PHP dar acolo ai sa gasesti multe lucruri general valabile care tin de OOP expuse intr-o maniera foarte inteligenta.
Pentru design patternuri recomand "Head First Design Patterns" - aici se vorbeste in JAVA dar iarasi multe notiuni general valabile.
In opinia mea cel mai important este modul programatorului de a privi lucrurile, limbajele de programare in sine sunt mai putin importante. Din cauza asta am recomandat carti care nu au treaba cu C#.
-
De la "recent m-am apucat sa invat programare" pana la programare orientata pe obiecte e cale lunga. Nu iti trebuie neaparat si sfatul meu e sa renunti pentru moment la capitolul asta, invata chestii mai de baza sau conform nivelului tau. Cei de mai sus au dreptate, conteaza felul in care concepi tu un algoritm, nu limbajul in sine. Toate sunt la fel, pana la urma.
-
@tymbark ms de explicatii. M-ai ajutat nu m-ai ametit. Acum am reusit sa imi formez oarecum o idee. O sa mai studiez OOP. Ms!
@Andrei S ms pentru sfaturi. O sa incep sa studiez cartile pe care mi le-ai recomandat.
@lumpy stiu deja niste limbaje de programare cum ar fi HTML-ul, CSS-ul si PHP-ul. Nu pot sa zic ca le stiu la perfectie dar ma descurc destul de bine. Nu o sa ma las de acest limbaj, o sa incerc sa il inteleg in continuare. Ms!
-
Salut, poti incepe prin a citi carti din domeniu - de preferabil pentru incepatori; "cartile educa spiritul" !
-
HTML si CSS nu sunt limbaje de programare. Asta in primul rand. Si in al doilea rand, eu zic sa te re-evaluezi la PHP si daca tu consideri ca stii absolut tot ce tine de procedural, poti sa te apuci de OOP. Daca te apuci de OOP doar ca e la moda si ai auzit ca e misto, las-o balta.
-
@gorgor Scuze, nu am stiut ca deja stii cateva limbaje. Practic HTML si CSS intra mai mult la web design nu la programare. Nici vorba sa renunti la a invata ce vrei... :)