Loading

Paste #pytp9mlzr

  1. import java.util.Random;
  2.  
  3. public class Cheatsheet {
  4.     public Cheatsheet() {
  5.         System.out.println("In default constructor");
  6.     }
  7.  
  8.     public Cheatsheet(int x) {
  9.         this();
  10.         System.out.println("In constructor with x: " + x);
  11.     }
  12.  
  13.     // Atentie la semnatura metodei. Ea nu primeste niciun parametru, intrucat
  14.     // 'this' este suficient
  15.     public String toString() {
  16.         return "This is an instance of " + this.getClass();
  17.     }
  18.  
  19.     public static void main(String[] args) {
  20.         // Constructori care se apeleaza unul pe altul
  21.         Cheatsheet sheet;
  22.  
  23.         sheet = new Cheatsheet(123);
  24.  
  25.         // Ex 1
  26.         // Pentru afisarea unei instante trebuie implementata metoda toString()
  27.         System.out.println(sheet.toString());
  28.         // Metoda toString() este apelata implicit atunci cand se incearca
  29.         // cast-ul unei instante la String
  30.         System.out.println(sheet);
  31.  
  32.         // Ex 2
  33.         // Cum se declara si instantiaza un vector?
  34.         String[] strings;
  35.         int n;
  36.  
  37.         n = 2;
  38.  
  39.         strings = new String[n];
  40.  
  41.         // Atentie: length este camp de date, nu metoda => length merge,
  42.         // length() nu
  43.         for (int i = 0; i < strings.length; ++i) {
  44.             // >>>> Toate referintele au valoarea 'null'! <<<<
  45.             System.out.println(strings[i]);
  46.  
  47.             // Trebuie instantiate obiectele
  48.             strings[i] = new String("String " + i);
  49.             System.out.println(strings[i]);
  50.         }
  51.  
  52.         // Ex 3
  53.         System.out.println(run());
  54.  
  55.         // Ex 4
  56.         // Nu o sa apara nimic relevant daca testati cu un singur String
  57.         // Trebuie declarat un vector cu 1 milion de String-uri. Le atribuiti
  58.         // mai intai un sir constant (ex. "abc") si apoi un obiect nou alocat
  59.         // (ex. new String("abc"))
  60.  
  61.         // Ex 5
  62.         // Trebuie folosita o instanta a clasei Random (care este de fapt un
  63.         // generator de numere aleatoare)
  64.  
  65.         // Nu uitati sa includeti clasa Random. Eclipse shortcut: Ctrl + Shift +
  66.         // O
  67.         Random rand = new Random();
  68.  
  69.         for (int i = 0; i < 5; ++i) {
  70.             // rand.nextInt(N) genereaza un numar de la 0 la N - 1 inclusiv
  71.             // Cum se pot folosi aceste numere pentru a extrage elemente
  72.             // dintr-un array?
  73.             System.out.println("Random number #" + i + ": " + rand.nextInt(5));
  74.         }
  75.  
  76.         // Ex 6
  77.         // O constanta este implicit final - ea poate fi initializata o singura
  78.         // data
  79.         final int MAGIC_THING = 3;
  80.  
  81.         String name = "Gigel";
  82.         String last3;
  83.  
  84.         last3 = name.substring(name.length() - 3);
  85.  
  86.         System.out.println(last3);
  87.     }
  88.  
  89.     private static long run() {
  90.         long start = System.nanoTime();
  91.         // Aici introduceti codul pe care vreti sa-l cronometrati
  92.         return System.nanoTime() - start;
  93.     }
  94. }