La bonne réponse est :Non : charData est un objet de type String et 3.14159265 (sans les guillemets) est un litéral primitif de type double. Le méthodes d'encodage au niveau des bits sont totalement différentes, and une simple affectation ne fonctionnera pas pour effectuer la conversion. |
|||
Comment fonctionne le programmePremière étape : Les caractères "3.14159265"
sont contenus dans un objet appelé charData, qui est de type
String.
Un objet n'est pas un type primitif; un object est une "parcelle" de mémoire
qui contient des données et peut effectuer certaines opérations
sur ses données (Les types primitives ne sont que des données;
les données ne peuvent etre manipulées qu'à l'extérieur
du type primitif).
Deuxième étape: La méthode valueOf de la wrapper classe Double crée un objet en utilisant les caractères de la chaine. C'est un objet de type Double. La variable tempDouble est utilisée pour cet objet.
Finalement: La méthode doubleValue() de l'objet
tempDouble
est utilisée pour créer le type primitif
double contenant
la valeur que nous voulions.
L'objet Double contient une valeur, et peut manipuler cette valeur avec différentes méthodes. L'une de ces méthodes est doubleValue(), qui retourne une valeur de type primitif double correspondant à la valeur qu'il contient. (Si tout ce baratin à propos des objets vous passe un peu au-dessus de la tête, ne vous inquiétez pas. Continuez à lire pour essayer de comprendre l'idée générale. La notion d'objet sera expliquée bien plus en détail dans les chapitres suivants.) |
|||
QUESTION 3:Le programme fonctionnerait-il si la déclaration de la variable charData était la suivante :Vous y prendra-t-on une deuxième fois :-)final String charData = "6.67E-11"; |