demo
Class Vali

java.lang.Object
  extended by demo.Vali
Direct Known Subclasses:
Vali.TyhjaVali

public class Vali
extends java.lang.Object

Luokka reaalilukuvälin käsittelyyn

Version:
1.0, 07.02.2003
Author:
Vesa Lappalainen

Nested Class Summary
private static class Vali.TyhjaVali
          Luokka edustamaan tyhjää väliä
 
Field Summary
static Vali tyhja
          Globaali tyhjää väliä edustava olio
private  double x1
           
private  double x2
           
 
Constructor Summary
Vali()
          Alustetaan väli oletusarvoonsa eli origoksi
Vali(double x1)
          Alustetaan pisteetksi x1
Vali(double x1, double x2)
          Alustetaan väliksi [x1,x2]
 
Method Summary
 void aseta(double x1, double x2)
          Asetataan väli niin että alaraja on aina pienempi kuin yläraja
 int compareTo(Vali v2)
          Verrataan väliä väliin v2
 boolean equals(java.lang.Object obj)
          Tutkii onko Double, Integer, merkkijono tai väli sama arvoltaan kuin tämä väli
 int hashCode()
          Palauttaa lajitteluavaimen välille
 void kysy()
          Kysytään käyttäjältä arvo reaalilukuvälille
 Vali leikkaus(Vali v2)
          Palauttaa kahden välin leikkauksen tai tyhjän välin.
static void main(java.lang.String[] args)
          Testataan Vali-luokkaa
 void parse(java.lang.String s)
          Selvitää välin sisällön merkkijonosta.
 java.lang.String toString()
          Muutetaan väli merkkijonoksi muotoon (1-4)
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

x1

private double x1

x2

private double x2

tyhja

public static final Vali tyhja
Globaali tyhjää väliä edustava olio

Constructor Detail

Vali

public Vali()
Alustetaan väli oletusarvoonsa eli origoksi


Vali

public Vali(double x1)
Alustetaan pisteetksi x1

Parameters:
x1 - piste jota vastaamaan väli alustetaan

Vali

public Vali(double x1,
            double x2)
Alustetaan väliksi [x1,x2]

Parameters:
x1 - alkupiste
x2 - loppupiste
Method Detail

aseta

public final void aseta(double x1,
                        double x2)
Asetataan väli niin että alaraja on aina pienempi kuin yläraja

Parameters:
x1 - välin alaraja
x2 - välin yläraja

parse

public void parse(java.lang.String s)
Selvitää välin sisällön merkkijonosta. Väli saa olla sulkumerkkien sisällä tai ilman sulkumerkkejä
 Olkoon väli ennen parsen aloittamista (0-5)
   s = ""     =)  (0-5)
   s = "3"    =)  (3,3)
   s = "3-"   =)  (3-5)
   s = "-3"   =)  (0-3)
   s = "1-3"  =)  (1-3)
 

Parameters:
s - Tutkittava jono
Example:
 Vali vali = new Vali();
 vali.aseta(0,5); vali.parse($s);  vali.toString() === $tulos;
 
  $s        |  $tulos
 -------------------------
  ""        | "(0.0-5.0)"
  "3"       | "(3.0-3.0)"
  "3-"      | "(3.0-5.0)"
  "-3"      | "(0.0-3.0)"             // NOPMD
  "1-3"     | "(1.0-3.0)"             // NOPMD
  "()"      | "(0.0-5.0)"
  "(3)"     | "(3.0-3.0)"
  "(3-)"    | "(3.0-5.0)"
  "(-3)"    | "(0.0-3.0)"
  "(1-3)"   | "(1.0-3.0)"
  " ( 3 )"  | "(3.0-3.0)"
  " 1 - 3 " | "(1.0-3.0)"
  "   -  "  | "(0.0-5.0)"
 

kysy

public void kysy()
Kysytään käyttäjältä arvo reaalilukuvälille

Example:
 #import fi.jyu.mit.ohj2.Suuntaaja;
     
 Suuntaaja.StringInput si = new Suuntaaja.StringInput();  
 Suuntaaja.StringOutput so = new Suuntaaja.StringOutput();

 Vali vali = new Vali(0,5);
 
 si.input("");      vali.kysy();  vali.equals("0-5") === true;    // NOPMD
 si.input("3\n");   vali.kysy();  vali.equals("3-3") === true;    // NOPMD
 si.input("1-\n");  vali.kysy();  vali.equals("1-3") === true;    // NOPMD  
 si.input("-4\n");  vali.kysy();  vali.equals("1-4") === true;    // NOPMD  
 si.input("2-3\n"); vali.kysy();  vali.equals("2-3") === true;    // NOPMD  
 
 si.palauta(); so.palauta();
 
 

toString

public java.lang.String toString()
Muutetaan väli merkkijonoksi muotoon (1-4)

Overrides:
toString in class java.lang.Object
Returns:
väli merkkijonona
Example:
  Vali vali = new Vali(3,4);
  vali.toString() === "(3.0-4.0)";
 

compareTo

public int compareTo(Vali v2)
Verrataan väliä väliin v2

Parameters:
v2 - verrattava väli
Returns:
0 jos välit osuvat toisiinsa, -1 jos this < v2 ja 1 jos this > v2
Example:
 Vali v1 = new Vali(0,3);
 Vali v2 = new Vali(2,4);
 Vali v3 = new Vali(-1,6);
 Vali v4 = new Vali(4,6);
 
 v1.compareTo(v2) === 0;
 v1.compareTo(v3) === 0;
 v1.compareTo(v4) === -1;
 v2.compareTo(v1) === 0;
 v2.compareTo(v3) === 0;
 v2.compareTo(v4) === 0;
 v3.compareTo(v1) === 0;
 v3.compareTo(v2) === 0;
 v3.compareTo(v4) === 0;
 v4.compareTo(v1) === 1;
 v4.compareTo(v2) === 0;
 v4.compareTo(v3) === 0;
 

equals

public boolean equals(java.lang.Object obj)
Tutkii onko Double, Integer, merkkijono tai väli sama arvoltaan kuin tämä väli

Overrides:
equals in class java.lang.Object
Returns:
true jos arvoltaan sama, muuten false
Example:
  Vali v24   = new Vali(2,4);
  Vali v24b  = new Vali(2,4);
  Vali v3    = new Vali(3);
  Double d3  = new Double(3);
  Integer i3 = new Integer(3);                // NOPMD
 
  v24.equals(v24b)  === true;
  v24.equals(v3)    === false;
  v24.equals("2-4") === true;                 // NOPMD
  v24.equals(d3)    === false;
  v3.equals(d3)     === true;
  v24.equals(i3)    === false;
  v3.equals(i3)     === true;
 

hashCode

public int hashCode()
Palauttaa lajitteluavaimen välille

Overrides:
hashCode in class java.lang.Object
Returns:
lajitteluavain

leikkaus

public Vali leikkaus(Vali v2)
Palauttaa kahden välin leikkauksen tai tyhjän välin.

Parameters:
v2 - leikkauksen toinen osapuoli, toinen on this
Returns:
välien leikkaus
Example:
 Vali v1 = new Vali(0,3);
 Vali v2 = new Vali(2,4);
 Vali v3 = new Vali(-1,6);
 Vali v4 = new Vali(4,6);
 
 v1.leikkaus(v2).toString() === "(2.0-3.0)";
 v1.leikkaus(v3).toString() === "(0.0-3.0)";
 v1.leikkaus(v4)            === Vali.tyhja;        
 v2.leikkaus(v1).toString() === "(2.0-3.0)";
 v2.leikkaus(v3).toString() === "(2.0-4.0)";
 v2.leikkaus(v4).toString() === "(4.0-4.0)";
 v3.leikkaus(v1).toString() === "(0.0-3.0)";
 v3.leikkaus(v2).toString() === "(2.0-4.0)";
 v3.leikkaus(v4).toString() === "(4.0-6.0)";
 v4.leikkaus(v1)            === Vali.tyhja;
 v4.leikkaus(v2).toString() === "(4.0-4.0)";
 v4.leikkaus(v3).toString() === "(4.0-6.0)";
 

main

public static void main(java.lang.String[] args)
Testataan Vali-luokkaa

Parameters:
args - ei käytössä