Przydatna klasa Stoper

Czasami pisząc aplikację chcielibyśmy wiedzieć ile czasu wykonują się pewne jej fragmenty (pętle, zaawansowane obliczenia itp). Stwórzmy prostą klasę, która umożliwi nam włączenie i wyłączenie stopera oraz poda uzyskane czasy.
/**
 * Prosty stoper
 * @author kodatnik.blogspot.com 
 */
class Stoper {
 // pola prywatne klasy 
 // czas startu stopera
 private long start;
 // czas stopu stopera
 private long stop;
 // nazwa stopera
 private String nazwa;

 // konstruktor bezparametrowy
 public Stoper() {
  // przypisujemy pusty łańcuch do pola nazwa
  // wywołując konstruktor jednoparametrowy z naszej klasy
  this("");
 }
  
 // konstruktor z jednym parametrem - nazwa stopera
 public Stoper(String nazwa) {
  // przypisujemy do pola nazwa przekazany łańcuch tekstowy
  this.nazwa = nazwa;
 }
 
 // metoda uruchamiana przy starcie stopera
 public void start(){
  // pobieramy aktualny czas - start stopera
  start = System.currentTimeMillis();
 }
 
 // metoda zatrzymująca nasz stoper
 public void stop(){
  // pobieramy aktualny czas - stop stopera
  stop = System.currentTimeMillis();
 } 
  
 // metoda zwraca w sekundach czas pomiędzy uruchomieniem, a zatrzymaniem stopera
 public double pobierzWynik(){
  // zamiana milisekund na sekundy
  return (stop - start) / 1000.0;
 } 
 
 // przesłonięta metoda toString()
 public String toString(){
  // zwracamy w formie tekstowej informacje o naszym stoperze  
  return nazwa + ": " + this.pobierzWynik() + " s."; 
 }
}
Proste wykorzystanie naszej klasy:
// tworzymy obiekt klasy Stoper
Stoper stoper = new Stoper("Test");
// uruchamiamy stoper
stoper.start();

// tutaj instrukcje, których czas wykonania chcemy zmierzyć

// zatrzymujemy stoper
stoper.stop();
// wyświetlamy na ekranie uzyskany czas
System.out.println(stoper);

Do pobrania czasu uzyskanego przez nasz stoper możemy skorzystać z metody pobierzWynik().
Do pobrania czasu uzyskanego przez nasz stoper możemy skorzystać z metody pobierzWynik(). Dostaniemy wtedy liczbę sekund (typ double).
Metoda toString() konwertuje dowolny obiekt na łańcuch tekstowy. Każda klasa w Javie posiada tę metodę (jest ona dziedziczona z klasy Object). Możemy oczywiście przesłonić wersję oryginalną naszą własną tak jak zrobiliśmy to w klasie Stoper.
Operator this odnosi się do bieżącej instancji obiektu, ale również umożliwia odwołanie do dowolnego konstruktora wewnątrz klasy (odwołanie takie jest dokonywane na podstawie typu i liczby parametrów).


0 Komentarzy - Przydatna klasa Stoper

Prześlij komentarz

Możesz użyć niektórych tagów HTML, takich jak <b>, <i>, <u>, <a> Nie spamuj :)

Popularne posty