Jump to content

TLG Andrei26

Member
  • Posts

    884
  • Joined

  • Last visited

Everything posted by TLG Andrei26

  1. Am patit si eu.. Mie unul imi place meme-ul, ai +1.
  2. Clasa String Un literal String este o secventa de caractere cuprinsa intre ghilimele (exemplu: "Ana are mere"). Daca se doreste afisarea ghilimelelor, atunci se foloseste \" , iar \n pentru trecerea pe linie noua. Crearea unei variabile String se realizeaza exact ca si in cazul celorlalte variabile. String sir = "Primul sir"; sir = "Al doilea sir"; Cand se atribuie unei variabile de tip String o alta valoare, vechea referinta se pierde, valoarea sa urmand a fi eliberata automat din memorie de catre colectorul de gunoaie. Se mai spune ca obiectele String sunt fixe (nemodificabile). Daca un sir se initializeaza cu un literal String, atunci i se va atribui adresa acestuia din memorie. Literalii String sunt pastrati in tabela de literali. Operatorul == aplicat pentru doua String-uri testeaza daca acestea pointeaza catre aceeasi adresa de memorie. Exemplu: // literalul "abc" are o adresa fixa din memorie String a1 = "abc"; // a1 si b1 pointeaza la aceeasi adresa de memorie String b1 = "abc; if(a1==b1) System.out.println("1. Egalitate"); else System.out.println("1. Diferenta"); String a2 = "abc"; // b2 va pointa la alta adresa de memorie fata de a2 String b2 = new String("abc"); if(a2==b2) System.out.println("2. Egalitate"); else System.out.println("2. Diferenta"); Programul va afisa: 1. Egalitate 2. Diferenta Utilizarea operatorului new pentru un String conduce in momentul executiei codului la crearea unui spatiu in memoria programului, si nu in tabela de literali. Putem stabili ca un String creat cu new sa fie plasat in tabela de literali pentru o reutilizare ulterioara sau pentru refolosirea unui String identic din tabela de literali. Astfel putem utiliza metoda intern() din clasa String. Exemplu: String a1 = new String("abc"); String b1 = new String("abc"); String a2 = a1.intern(); //a2 se afla in tabela de literali String b2 = b1.intern(); //b2 se afla in tabela de literali //a2 si b2 pointeaza la aceeasi adresa de memorie if(a2==b2) System.out.println("Sirurile pointeaza la aceeasi adresa."); else System.out.println("Sirurile pointeaza la adrese diferite."); Tablouri de String-uri Exemplu: String[] nume = new String[5]; nume[0] = "Alex"; nume[1] = "Bogdan"; Operatorul + conecteaza doua sau mai multe siruri de caractere. Operatorul += creeaza un nou String, adaugand sirul din partea dreapta a operatorului. Exemplu: String sir1 = "abc" + "def"; String sir2 = "abc"; sir2 += "def"; System.out.println("sir2 = " + sir2); Afisaj: sir2 = abcdef Daca aveti nelamuriri, astept PM.
  3. N-as vrea sa-mi petrec revelionul asa
  4. TLG Andrei26

    [JAVA] Clase

    - Clasa este entitatea de baza a unui limbaj orientat pe obiecte. In Java este obligatorie definirea a cel putin unei clase. Nu este insa obligatorie crearea unei instante (unui obiect) a aceleasi clase, caz in care se vor utiliza date si metode statice. - O declaratie de clasa in limbajul Java are urmatoarea sintaxa generala: [<ModificatoriClasa>] class <Identificator> [<ListaTipuriReferinta] [extends <NumeClasa>] [implements <ListaInterfete>]{ [<DeclaratiiCorpClasa>] } Unde: <ModificatoriClasa> pot fi: public, abstract, final (cel mult o aparitie si, de preferat, in aceasta ordine); <Identificator> reprezinta numele clasei; <ListaTipuriReferinta> este o lista de tipuri de referinta, numita si tipuri generice, de forma: <TipReferinta1>, <TipReferinta2>, ..., <TipReferintaN> si este cuprinsa intre simbolurile "<" si ">"; <NumeClasa> reprezinta numele altei clase (denumita CLASA DE BAZA sau SUPERCLASA); <ListaInterfete> este o lista de nume de interfete de forma: <NumeInterfata1> , <NumeInterfata2>, ... , <NumeInterfataN>; <DeclaratiiCorpClasa> este o lista de declaratii de forma: <DeclaratiiMembruClasa>, care, la randul ei poate fi <DeclaratieAtribut> sau <DeclaratieMembru>; <InitializatorStatic>; <DeclaratiiConstructor>; - Daca o clasa este declarata intr-un pachet numit Pachet, atunci numele complet al clasei este Pachet.<Identificator> Exemplu pentru crearea si importarea pachetelor, consideram doua fisiere-sursa: 1. package pachet.exemplu; public class ClasaUnu{ public ClasaUnu(){ System.out.println("Suntem in ClasaUnu"); } } 2. package pachet.exemplu; public class ClasaDoi{ public ClasaDoi(){ System.out.println("Suntem in ClasaDoi"); } } Dupa compilarea acestor fisiere-sursa, vom crea un alt fisier-sursa care va importa clasele definite in pachetul pachet.exemplu. Acesta poate fi plasat oriunde in sistemul de fisiere. Continutul fisierului este: import pachet.exemplu.*; public class TestPachet{ public static void main(String[] args){ ClasaUnu cu = new ClasaUnu(); ClasaDoi cad = new ClasaDoi(); } } La executie se vor putea accesa clasele definite in pachetul pachet.exemplu si rezultatul va fi: Suntem in ClasaUnu Suntem in ClasaDoi - Un constructor al unei clase este o metoda care are numele respectivei clase. Constructorii nu returneaza nimic si nu au tip (nici maca void). Constructorii sunt apelati automat in momentul crearii unui obiect din clasa respectiva si sunt utilizati pentru initializarea datelor membre. - Daca pentru o clasa nu declaram nici un constructor , atunci la compilare se creeaza automat un constructor implicit care este public, nu are nici un parametru si executia sa nu are nici un efect. A nu se confunda constructorul implicit (cel generat automat) cu cel fara nici un parametru (scris de programator). Daca declaram un constructor, atunci nu se mai genereaza constructorul implicit. - Destructorul este metoda care se apeleaza automat la distrugerea unui obiect. Destructorii sunt extrem de utilizati in limbajul C++, mai ales pentru eliberarea resurselor ocupate de respectivul obiect. In java, lucrurile stau astfel datorita colectorului de gunoaie, care are drept sarcina eliberarea automata a memoriei la care aplicatia nu mai are nici o referinta. Prin suprascrierea metodei finalize() din clasa Object, programatorul poate specifica o multime de actiuni, care vor fi executate odata cu distrugerea obiectului. - Exemplu: Fie clasa Cerc: class Cerc{ //Date membre int raza, x, y; //Constructor fara parametri Cerc(){ raza = 1; x = 20; y = 20; } //Constructor cu parametri Cerc(int r, int a, int b){ raza = r; x = a; y = b; } //Metoda publica public void setRaza(int r) { raza = r; } } //Terminarea clasei Cerc Aceasta contine trei date membre de tip int - raza,x si y -, doi contructori, unul cu parametri si unul fara, si o metoda publica setRaza();
  5. E bun meme-ul, chiar am ras
  6. @South HawKing, este facut de mine. Am incercat sa fiu cat de explicit am putut astfel incat sa inteleaga si cei care nu prea au interactionat cu limbajul.
  7. TLG Andrei26

    Hit & Run

    La mine de obicei cand intru in cineva urmeaza un ''nab'' pe chat
  8. TLG Andrei26

    Ban-ul!

    Ai mare dreptate. Mai mult am ras la comentariu
  9. TLG Andrei26

    skill 5

    Destul de buna, cu toate ca eu n-as avea rabdare sa fac skill 5 la Camionagiu
  10. Nu se intampla asa des la /spin, dar merge'.
  11. TLG Andrei26

    da-mi 100k

    Orice pentru 100k Destul de bun meme-ul.
  12. @GA AleCs eXe, spui din experienta sau? Hai fie, destul de amuzant.
  13. Ba daa Te lasam fara. Glumesc, e bun meme-ul, ai +1 de la mine.
  14. Folosim ''for'' atunci cand dorim efectuarea unei instructiuni sau a unui set de instructiuni de mai multe ori. Forma generala este: for(i=X; i<Y; i++){ instructiuni } Unde: - ''i'' reprezinta o variabila si este folosita drept contor pentru numarul de repetari. De asemenea, poate fi utilizata orice litera, aceasta fiind nesemnificativa. - ''X'' reprezinta numarul initial, adica numarul de la care incep repetarile instructiunii scrise intre acoladele { }. - "Y" reprezinta numarul pana la care se vor executa repetarile intructiunii dintre acolade. Putem pune si "<=" (mai mic sau egal). In momentul cand ''i<Y'' este fals, se iese din bucla ''for''. - structura "i++" creste cu o unitate valoarea la care a ajuns ''i'', apoi se reia tot procesul pana cand rezultatul va fi fals. In momentul cand rezultatul este fals, executia buclei ''for'' se opreste si se trece mai departe. Daca vrem ca valoarea lui ''i'' sa scada, putem folosi structura ''i--''. Exemplu: -> Se citesc a,b - capetele unui interval. Sa se calculeze suma numerelor pare din intervalul respectiv. Rezolvare: #include <iostream> // Includem biblioteca iostream, care are in componenta sa toate functiile folosite in acest program using namespace std; // Declaram folosirea unui limbaj standard int main() { int a,b,s=0,i; // Declaram variabilele (a,b = capetele intervalului; s reprezinta suma care trebuie sa fie 0 initial,) cout<<"A= ";cin>>a; // Se scrie valoarea lui a si se citeste cout<<"B= ";cin>>b; // Se scrie valoarea lui b si se citeste for(i=a; i<=b; i++){ // Programul ia toate numerele din intervalul (a,b), in ordine, din 1 in 1 if(i%2==0) // Se verifica daca i este numar par ("%" este echivalent cu "MOD" din pseudocod) s=s+i; // Daca conditia din 'if' este adevarata, la suma se adauga numarul 'i', apoi se intoarce in 'for' pana cand rezultatul este fals } cout<<"Suma numerelor pare din interval este: "<<s; // Se afiseaza suma numerelor pare din interval return 0; }
  15. @GA AleCs eXe, multumesc. Se poate da t/c.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.