logo

Java.lang.Number razred v Javi

Večino časa pri delu s številkami v javi uporabljamo primitivni tipi podatkov . Toda Java nudi tudi različne numerične vrednosti ovoj podrazredi pod abstraktnim razredom Številka, ki je prisotna v java.lang paket. Obstajajo predvsem šest podrazredi pod razredom Number. Ti podrazredi definirajo nekaj uporabnih metod, ki se pogosto uporabljajo pri delu s števili.
 

objekti-številkaHierarchy' title=


Ti razredi "zavijejo" primitivni podatkovni tip v ustrezen objekt. Pogosto zavijanje opravi prevajalnik. Če uporabite primitivo, kjer se pričakuje objekt, prevajalnik za vas umesti primitivo v svoj ovojni razred. Podobno, če uporabite objekt Number, ko se pričakuje primitiv, prevajalnik razpakira objekt namesto vas. To se imenuje tudi Autoboxing in Unboxing.
Zakaj uporabiti objekt razreda Number namesto osnovnih podatkov?  
 



  • Konstante, definirane s številskim razredom, kot sta MIN_VALUE in MAX_VALUE, ki zagotavljajo zgornjo in spodnjo mejo podatkovnega tipa, so zelo uporabne.
  • Objekt številskega razreda je mogoče uporabiti kot argument metode, ki pričakuje objekt (pogosto uporabljen pri manipulaciji zbirk števil).
  • Metode razreda se lahko uporabljajo za pretvorbo vrednosti v druge primitivne tipe in iz njih za pretvorbo v in iz nizov ter za pretvorbo med številskimi sistemi (decimalni oktalni šestnajstiški binarni).


Metode, ki so skupne vsem podrazredom števila:  
 

vključite programiranje c
    xxx xxxVrednost(): Tukaj xxx predstavlja primitivne številske vrste podatkov (byte short int long float double). Ta metoda se uporablja za pretvorbo vrednosti to Številski objekt za podani primarni podatkovni tip. 
     
  Syntax :    byte byteValue() short shortValue() int intValue() long longValue() float floatValue() double doubleValue()   Parameters :    ----   Returns :   the numeric value represented by this object after conversion to specified type


 

Java
//Java program to demonstrate xxxValue() method public class Test {  public static void main(String[] args)   {  // Creating a Double Class object with value '6.9685'  Double d = new Double('6.9685');    // Converting this Double(Number) object to   // different primitive data types  byte b = d.byteValue();   short s = d.shortValue();   int i = d.intValue();   long l = d.longValue();   float f = d.floatValue();   double d1 = d.doubleValue();     System.out.println('value of d after converting it to byte : ' + b);  System.out.println('value of d after converting it to short : ' + s);  System.out.println('value of d after converting it to int : ' + i);  System.out.println('value of d after converting it to long : ' + l);  System.out.println('value of d after converting it to float : ' + f);  System.out.println('value of d after converting it to double : ' + d1);  } } 

Izhod: 
 

value of d after converting it to byte : 6 value of d after converting it to short : 6 value of d after converting it to int : 6 value of d after converting it to long : 6 value of d after converting it to float : 6.9685 value of d after converting it to double : 6.9685


Opomba : Med pretvorbo lahko pride do možne izgube natančnosti. Kot lahko na primer vidimo, da je bil fraction part('.9685') izpuščen med pretvorbo iz Double object v int podatkovni tip. 
 

    int compareTo(NumberSubClass referenceName): Ta metoda se uporablja za primerjavo to Številski predmet podanemu argumentu. Vendar dveh različnih vrst ni mogoče primerjati, zato morata biti argument in objekt Number, ki prikličeta metodo, istega tipa. Referenčno ime je lahko Byte Double Integer Float Long ali Short. 
     
  Syntax :    public int compareTo( NumberSubClass referenceName )   Parameters :    referenceName - any NumberSubClass type value   Returns :   the value 0 if the Number is equal to the argument. the value 1 if the Number is less than the argument. the value -1 if the Number is greater than the argument.


 

Java
//Java program to demonstrate compareTo() method public class Test {  public static void main(String[] args)   {  // creating an Integer Class object with value '10'  Integer i = new Integer('10');    // comparing value of i  System.out.println(i.compareTo(7));   System.out.println(i.compareTo(11));   System.out.println(i.compareTo(10));   } } 


Izhod: 
 

1 -1 0


 

    logično je enako (objekt obj): Ta metoda določa, ali to Objekt števila je enak argumentu. 
     
  Syntax :    public boolean equals(Object obj)   Parameters :    obj - any object   Returns :   The method returns true if the argument is not null and is an object of the same type and with the same numeric value otherwise false.


 

Java
//Java program to demonstrate equals() method public class Test {  public static void main(String[] args)  {  // creating a Short Class object with value '15'  Short s = new Short('15');    // creating a Short Class object with value '10'  Short x = 10;    // creating an Integer Class object with value '15'  Integer y = 15;    // creating another Short Class object with value '15'  Short z = 15;    //comparing s with other objects  System.out.println(s.equals(x));  System.out.println(s.equals(y));  System.out.println(s.equals(z));  } } 


Izhod: 
 

false false true


 

if else if else java
    int parseInt(String sint radix): Ta metoda se uporablja za pridobitev primitivnega podatkovnega tipa a Niz . Radix se uporablja za vrnitev decimalne (10), oktalne (8) ali heksadecimalne (16) itd. predstavitve kot izhod. 
     
  Syntax :    static int parseInt(String s int radix)   Parameters :    s - any String representation of decimal radix - any radix value   Returns :   the integer value represented by the argument in decimal.   Throws :   NumberFormatException : if the string does not contain a parsable integer.


 

Java
//Java program to demonstrate Integer.parseInt() method public class Test {  public static void main(String[] args)  {  // parsing different strings  int z = Integer.parseInt('654'8);   int a = Integer.parseInt('-FF' 16);  long l = Long.parseLong('2158611234'10);     System.out.println(z);  System.out.println(a);  System.out.println(l);    // run-time NumberFormatException will occur here  // 'Geeks' is not a parsable string  int x = Integer.parseInt('Geeks'8);     // run-time NumberFormatException will occur here  // (for octal(8)allowed digits are [0-7])  int y = Integer.parseInt('99'8);     } } 


Izhod: 
 

428 -255 2158611234 Exception in thread 'main' java.lang.NumberFormatException: For input string: 'Geeks' at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.lang.Integer.parseInt(Integer.java:580) at Test.main(Test.java:17)


 

math.pow java
    int parseInt(niz s): Ta metoda je druga različica zgornje metode, kjer je privzeti radiks 10 (decimalno). 
     
  Syntax :    static int parseInt(String s)   Parameters :    s - any String representation of decimal   Returns :   the integer value represented by the argument in decimal.   Throws :   NumberFormatException : if the string does not contain a parsable integer.


 

Java
//Java program to demonstrate Integer.parseInt() method public class Test {  public static void main(String[] args)   {  // parsing different strings  int z = Integer.parseInt('654');   long l = Long.parseLong('2158611234');     System.out.println(z);  System.out.println(l);    // run-time NumberFormatException will occur here  // 'Geeks' is not a parsable string  int x = Integer.parseInt('Geeks');     // run-time NumberFormatException will occur here  // (for decimal(10)allowed digits are [0-9])  int a = Integer.parseInt('-FF');    } } 


Izhod: 
 

654 2158611234 Exception in thread 'main' java.lang.NumberFormatException: For input string: 'Geeks' at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.lang.Integer.parseInt(Integer.java:580) at java.lang.Integer.parseInt(Integer.java:615) at Test.main(Test.java:15)


 

    Niz vString(): Obstajata dve različici metode toString(). Uporabljajo se za pridobitev nizovne predstavitve števila. Druge različice teh metod so Integer.toBinaryString(int i) Integer.toHexString(int i) Integer.toOctalString(int i) ki bo vrnil binarno heksadecimalno osmiško predstavitev niza določenega celega števila(i). 
     
  Syntax :    String toString() String toString(int i)   Parameters :    String toString() - no parameter String toString(int i) - i: any integer value   Returns :   String toString() - returns a String object representing the value of the Number object on which it is invoked. String toString(int i) - returns a decimal String object representing the specified integer(i)
Java
//Java program to demonstrate Integer.toString()  //and Integer.toString(int i) method public class Test {  public static void main(String[] args)  {  // demonstrating toString() method  Integer x = 12;    System.out.println(x.toString());     // demonstrating toString(int i) method  System.out.println(Integer.toString(12));    System.out.println(Integer.toBinaryString(152));  System.out.println(Integer.toHexString(152));   System.out.println(Integer.toOctalString(152));  } } 


Izhod: 
 

12 12 10011000 98 230


 

    Integer valueOf(): Obstajajo tri različice metode valueOf(). Vse te tri metode vrnejo objekt Integer, ki vsebuje vrednost primitivnega celega števila. 
     
  Syntax :    Integer valueOf(int i) Integer valueOf(String s) Integer valueOf(String s int radix)   Parameters :    i - any integer value s - any String representation of decimal radix - any radix value   Returns :   valueOf(int i) : an Integer object holding the valuerepresented by the int argument. valueOf(String s) : an Integer object holding value represented by the string argument. valueOf(String s int radix) : an Integer object holding the value represented by the string argument with base radix.   Throws :   valueOf(String s) - NumberFormatException : if the string does not contain a parsable integer. valueOf(String s int radix) - NumberFormatException : if the string does not contain a parsable integer.


 

Java
// Java program to demonstrate valueOf() method public class Test {  public static void main(String[] args)  {  // demonstrating valueOf(int i) method  System.out.println('Demonstrating valueOf(int i) method');  Integer i =Integer.valueOf(50);   Double d = Double.valueOf(9.36);   System.out.println(i);  System.out.println(d);    // demonstrating valueOf(String s) method  System.out.println('Demonstrating valueOf(String s) method');  Integer n = Integer.valueOf('333');   Integer m = Integer.valueOf('-255');   System.out.println(n);  System.out.println(m);    // demonstrating valueOf(String sint radix) method  System.out.println('Demonstrating (String sint radix) method');  Integer y = Integer.valueOf('333'8);   Integer x = Integer.valueOf('-255'16);   Long l = Long.valueOf('51688245'16);   System.out.println(y);  System.out.println(x);  System.out.println(l);    // run-time NumberFormatException will occur in below cases  Integer a = Integer.valueOf('Geeks');  Integer b = Integer.valueOf('Geeks'16);   } } 


Izhod: 
 

Demonstrating valueOf(int i) method 50 9.36 Demonstrating valueOf(String s) method 333 -255 Demonstrating (String sint radix) method 219 -597 1365803589 Exception in thread 'main' java.lang.NumberFormatException: For input string: 'Geeks' at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.lang.Integer.parseInt(Integer.java:580) at java.lang.Integer.valueOf(Integer.java:766) at Test.main(Test.java:28)


 


Vprašanje za prakso:  
Kakšen je rezultat dane kode java?  
 

Java
public class Test {  public static void main(String[] args)  {  Integer i = Integer.parseInt('Kona' 27);  System.out.println(i);  } } 

Možnosti:  
 

seznam razvrščenih java
A) NumberFormatException at run-time B) NumberFormatException at compile-time C) 411787


odgovor:  
 

C) 411787


Pojasnilo:  
Ker je radiks 27, so dovoljeni znaki v literalu niza [0-9][A-Q](za 10 do 26). Njegova vrednost bo torej izračunana na naslednji način: 
=> a*(27^0) + n*(27^1) + o*(27^2) + k*(27^3) 
=> 10*1 + 23*27 + 24*27*27 + 20*27*27*27 
=> 10 + 621 + 17496 + 393660 
=> 411787
 

Ustvari kviz