Généralement, nous utiliserons les types de données de base : byte, int, short, long, double, float, boolean, char ;
Il existe également huit types d'empaquetage correspondants : Octet, Entier, Court, Long, Double, Flottant, Caractère, Booléen ;
Les types d'empaquetage sont déclarés avec final et ne peuvent pas être remplacés par héritage ; dans les situations réelles, le compilateur encadrera automatiquement le type de données de base dans un type d'objet, ou déballera le type d'objet dans un type de données de base comme suit :
public static void main (String[] arguments) { int num1 = 1; //Boxez les types de données de base dans des types d'empaquetage d'objets Integer num2 = num1; Nombre entier3 = 3 ; //Déballez la classe de données d'objet int num4 = num3; }
La classe Number est une classe abstraite du package java.lang. Elle fournit une méthode pour décompresser les types packagés en types de base (types de données) héritent de cette classe abstraite, et sa déclaration finale ne peut pas être héritée ni modifiée. .
paquet java.lang ; La classe abstraite publique Number implémente java.io.Serialised { public abstract int intValue(); public abstrait long longValue(); public abstrait float floatValue(); public abstrait double doubleValue(); octet public byteValue() { return (octet)intValue(); } public court shortValue() { return (short)intValue(); } privé statique final long serialVersionUID = -8742448824652078965L; }
Conditionnement | Types de données de base |
---|---|
Booléen | booléen |
Octet | octet |
Court | court |
Entier | int |
Long | long |
Personnage | carboniser |
Flotter | flotter |
Double | double |
Ce type de packaging spécialement pris en charge par le compilateur est appelé boxing. Ainsi, lorsqu'un type de données intégré est utilisé comme objet, le compilateur encadrera le type intégré dans une classe wrapper. De même, le compilateur peut déballer un objet dans un type intégré. La classe Number appartient au package java.lang.
Voici un exemple de boxing et unboxing :
publicclassTest{
publicstaticvoidmain(Stringargs[]){
Integerx=5;//boxesinttoanIntegerobject
x=x+10;//unboxestheIntegertoaint
System.out.println(x);
}
}
Les résultats de compilation et d'exécution de l'exemple ci-dessus sont les suivants :
15
Lorsque x est affecté à une valeur entière, le compilateur doit encadrer x car x est un objet. Ensuite, pour que x soit ajouté, x est déballé.
Java's Math contient des propriétés et des méthodes permettant d'effectuer des opérations mathématiques de base, telles que les exponentielles élémentaires, les logarithmes, les racines carrées et les fonctions trigonométriques.
Les méthodes mathématiques sont toutes définies sous forme statique et peuvent être appelées directement dans la fonction principale via la classe Math.
Exemple
Test de classe publique {
public static void principal (String []args)
{
System.out.println("Sinus de 90 degrés : " + Math.sin(Math.PI/2));
System.out.println("Cosinus de 0 degré : " + Math.cos(0));
System.out.println("tangente de 60 degrés : " + Math.tan(Math.PI/3));
System.out.println("Arctangente de 1 : " + Math.atan(1));
System.out.println("La valeur de l'angle de π/2 : " + Math.toDegrees(Math.PI/2));
System.out.println(Math.PI);
}
}
Les résultats de compilation et d'exécution de l'exemple ci-dessus sont les suivants :
Sinus de 90 degrés : 1,0
Cosinus de 0 degrés : 1,0
Valeur tangente de 60 degrés : 1,7320508075688767
Arctangente de 1 : 0,7853981633974483
La valeur de l'angle de π/2 : 90,0
3.141592653589793
Méthodes de classe Nombre et Mathématiques
Le tableau suivant répertorie les méthodes de classe Number et de classe Math couramment utilisées :
numéro de série | Méthodes et description | |||||
---|---|---|---|---|---|---|
1 | xxxValue() convertit l'objet numérique en une valeur de type de données xxx et la renvoie. | |||||
2 | compareTo() compare l'objet numérique avec le paramètre. | |||||
3 | equals() détermine si l'objet numérique est égal au paramètre. | |||||
4 | valueOf() renvoie un objet Integer spécifiant le type de données intégré | |||||
5 | toString() renvoie la valeur sous forme de chaîne. | |||||
6 | parseInt() analyse une chaîne en type int. | |||||
7 | abs() renvoie la valeur absolue de l'argument. | |||||
8 | ceil() renvoie le plus petit entier supérieur ou égal à (>=) le paramètre donné, le type est à virgule flottante double précision. | |||||
9 | floor() renvoie le plus grand entier inférieur ou égal à (<=) l'argument donné. | |||||
10 | rint() renvoie l'entier le plus proche de l'argument. Le type de retour est double. | |||||
11 | round() renvoie la valeur entière ou longue la plus proche. | |||||
12 | min() renvoie la valeur minimale des deux paramètres. | |||||
13 | max() renvoie la valeur maximale des deux paramètres. | |||||
14 | exp() renvoie la puissance du paramètre de la base entière naturelle e. | |||||
15 | log() renvoie le logarithme de la base entière naturelle de l'argument. | |||||
16 | pow() renvoie le premier paramètre élevé à la puissance du deuxième paramètre. | |||||
17 | sqrt() trouve la racine carrée arithmétique de l'argument. | |||||
18 | sin() trouve la valeur sinusoïdale du paramètre de type double spécifié. | |||||
19 | cos() trouve la valeur cosinus du paramètre de type double spécifié. | |||||
20 | tan() trouve la valeur tangente du paramètre de type double spécifié. | |||||
vingt-et-un | asin() trouve la valeur arc sinus du paramètre de type double spécifié. | |||||
vingt-deux | acos() trouve la valeur de l'arc cosinus du paramètre de type double spécifié. | |||||
vingt-trois | atan() trouve la valeur arctangente du paramètre de type double spécifié. | |||||
vingt-quatre | atan2() convertit les coordonnées cartésiennes en coordonnées polaires et renvoie la valeur d'angle des coordonnées polaires. | |||||
25 | toDegrees() convertit les paramètres en angles. | |||||
26 | toRadians() convertit les angles en radians. | |||||
27 | random() renvoie un nombre aléatoire. |