De ces 3 classes quelles sont les classes qui permettent de modifier une chaîne de caractère
Les classes qui permettent de modifier une chaîne de caractères en Java sont :
La classe StringTokenizer permet de diviser une chaîne de caractères en tokens (mots) en fonction d'un délimiteur spécifié, mais elle ne permet pas de modifier une chaîne de caractères.
Soit le code suivant :
int tab_int[] = new int[10];
[...]
for(int i=0; i< A ;i++)
Terminal.ecrireIntln( B );
Ce code affiche tous les éléments du tableau tab_int. A et B peuvent être remplacés par :
Les choix possibles pour remplacer A et B sont les suivants :
tab_int.length
, car length
est la propriété de l'objet tableau en Java qui permet de connaître sa taille (le nombre d'éléments qu'il contient). La méthode size()
n'est pas une méthode de la classe Array
en Java. B doit être remplacé par tab_int[i]
, car on souhaite afficher l'élément du tableau à l'indice i
.Donc, la réponse est :
A -> tab_int.length
B -> tab_int[i]
Soit le code : String s = "ABCDEF"; s.setChar(3,'X'); La chaine s contient alors : "ABCXEF"
La réponse est NON.
La classe String
en Java est immuable, ce qui signifie qu'une fois qu'un objet String
est créé, son contenu ne peut pas être modifié.
L'appel de la méthode setChar(int index, char ch)
sur une instance de String
générera une erreur de compilation car cette méthode n'existe pas dans la classe String
.
Pour modifier une chaîne de caractères en Java, il est recommandé d'utiliser la classe StringBuilder
ou StringBuffer
, qui sont toutes deux mutables.
Soit une classe A contenant les méthodes mstat1 et m2. mstat1 est une méthode statique et m2 n'est pas une méthode statique :
La réponse 1 est vraie car une méthode statique peut accéder aux attributs statiques de la classe dans laquelle elle est définie.
La réponse 2 est vraie car une méthode non statique peut accéder aux attributs statiques de la classe dans laquelle elle est définie.
Soit la classe C1 et la classe C2 dont tous les attributs sont privés. Les deux classes C1 et C2 appartiennent au même package. Dans ce cas, les méthodes de C1 peuvent accéder directement aux attributs d'une instance de C2
Les attributs privés ne sont pas accessibles directement à partir d'une autre classe, même si elle appartient au même package. Il faudrait fournir des méthodes publiques dans la classe C2 pour accéder à ses attributs.
Soit le code suivant :
public class Exemple {
public static void main(String args[]) {
String str = args[Integer.parseInt(args[0])];
System.out.println(str);
}}
Commande d'exécution : java Exemple 1 TOTO
Le programme s'exécute sans erreur et affiche la chaîne de caractère "TOTO" à l'écran.
Voici ce qui se passe :
Le programme prend deux arguments lors de l'exécution : "1" et "TOTO".
La méthode main récupère le premier argument (args[0]), le convertit en entier à l'aide de la méthode parseInt de la classe Integer, et utilise ce résultat comme indice pour récupérer le deuxième argument (args[1]).
La variable str est initialisée avec la valeur "TOTO", car "args[1]" est équivalent à "args[Integer.parseInt(args[0])]".
Enfin, la méthode println de la classe System est utilisée pour afficher la valeur de "str" à l'écran, ce qui affiche "TOTO".
Il n'y a donc ni erreur de syntaxe ni erreur d'exécution dans ce code, et le résultat de l'exécution est bien "TOTO".
Dans un Langage Orienté Objet, un objet est :
Dans un langage orienté objet, un objet est une instance d'une classe.
Une classe est un modèle ou un plan qui décrit les caractéristiques et le comportement d'un ensemble d'objets. Lorsque vous créez un objet à partir d'une classe, vous instanciez cette classe et créez une copie de l'objet avec ses propres propriétés et méthodes.
En revanche, un package est un moyen de regrouper des classes connexes. Il peut contenir des classes, des interfaces et d'autres packages, mais ce n'est pas un objet en soi.
Dans un Langage Orienté Objet les attributs sont :
Dans un langage orienté objet, les attributs sont des variables qui stockent les données de l'objet, tandis que le code du programme se compose de méthodes, qui sont des blocs de code exécutables qui définissent le comportement de l'objet.
Soit le fichier suivant C:\CodeJava\exercices\fr\cnam\util\Terminal.java.
Le fichier Terminal.java contient en 1ère ligne : package fr.cnam.util; Le répertoire C:\bin est vide.
Dans C: on réalise la commande suivante : javac -d C:\bin C:\CodeJava\exercices\fr\cnam\util\Terminal.java On obtient la création du fichier suivant : C:\bin\exercices\fr\cnam\util\Terminal.class
La réponse est OUI, le fichier "Terminal.class" sera créé dans le répertoire "C:\bin\exercices\fr\cnam\util".
En Java, l'exécution d'un programme, via la commande "java", exécute la méthode main. Cette méthode peut avoir la signature suivante :
La signature de la méthode main en Java est :
public static void main(String... args)
C'est la méthode qui est exécutée par la JVM lors de l'exécution du programme Java via la commande "java". Elle doit obligatoirement être déclarée comme "public" et "static", et accepter un tableau de chaînes de caractères (String[]) en argument.
En Java, soit une classe A qui utilise une autre classe B. Si on compile la classe A alors la classe B est automatiquement compilée
Non, ce n'est pas automatique. Si une classe A utilise une autre classe B, il faut que la classe B soit également compilée pour que la classe A puisse être compilée avec succès. Il faut donc s'assurer que toutes les classes nécessaires à la compilation d'une classe sont disponibles et correctement compilées avant de compiler cette dernière.
Soit la classe suivante :
public class Individu
{
private String nom;
private String prenom;
private int age;
public Individu(String nom, String prenom, int age)
{
this.nom=nom; this.prenom=prenom; this.age = age;
}
public Individu(String nom, String prenom)
{
this.nom=nom; this.prenom=prenom; this.age = 0;
}
}
On peut écrire les codes suivants :
Individu ind = new Individu("LAFONT","Pierre",45);
Individu ind = new Individu(); (Faux, le constructeur Individu() n'existe pas dans la classe Individu) C Individu ind = new Individu("LAFONT","Pierre");
Soit la méthode JAVA suivante :
public static void ajouter(String s, Arraylist l){l.add(s);}
Soit le programme JAVA qui utilise cette méthode:
ArrayList liste=new ArrayList(); liste.add("ZERO"); ajouter("UN",liste); ajouter("DEUX",liste); ajouter("TROIS",liste); for(String s:liste)System.out.print(s+" ");
On obtient l'affichage suivant :
"ZERO UN DEUX TROIS", car la méthode "ajouter" est appelée plusieurs fois pour ajouter les éléments "UN", "DEUX" et "TROIS" à la liste "liste". Ensuite, la boucle for parcourt la liste et affiche chaque élément.
Soit le code suivant :
int[][] matrice = new int[5][5]
matrice[0] = new int[3];
matrice[1] = new int[2];
A l'issu de cette exécution :
La matrice "matrice" est initialisée avec 5 rangées et 5 colonnes, donc contient initialement 25 éléments. Cependant, les instructions "matrice[0] = new int[3]" et "matrice[1] = new int[2]" modifient la longueur des deux premières lignes de la matrice. La première ligne contiendra 3 éléments et la deuxième ligne contiendra 2 éléments, tandis que les 3 dernières lignes contiendront toujours 5 éléments chacune. Ainsi, la matrice finale contiendra 3 + 2 + 5 + 5 + 5 = 20 éléments, mais seulement 15 d'entre eux auront une valeur assignée, les autres étant des zéros par défaut.
Soit le code suivant :
int v=5;
boolean premier=true;
for(int k=2;k<v;k=k+1)
if (v%k == 0) premier = false;
else premier = true;
if (premier) System.out.println("PREMIER");
else System.out.println("NON PREMIER");
Ce code :
Si la valeur de v est 5, la réponse sera "PREMIER" car 5 est un nombre premier et le code détectera correctement qu'il ne peut être divisé que par 1 et 5. Donc, la réponse est A, "PREMIER".
En JAVA, un répertoire qui contient des fichiers .java est nécessairement un package
un répertoire qui contient des fichiers .java n'est pas nécessairement un package en Java. Un package est un moyen de regrouper des classes liées dans un même espace de noms et de fournir une organisation logique pour les classes. Pour qu'un répertoire soit considéré comme un package en Java, il doit contenir un fichier nommé "package-info.java" ou il doit y avoir une déclaration de package dans chacun des fichiers .java contenus dans le répertoire.
Le paramètre -classpath ou la variable d'environnement CLASSPATH est utilisée pour désigner une liste de plusieurs path d'accès à des répertoires. Chacun de ces répertoires contient les fichiers .class ou les packages utilisés dans la compilation ou dans l'exécution d'un programme JAVA
Oui, c'est vrai. Le paramètre -classpath ou la variable d'environnement CLASSPATH est utilisé pour définir une liste de répertoires où le compilateur Java et le programme d'exécution peuvent trouver les fichiers .class ou les packages nécessaires pour la compilation ou l'exécution d'un programme Java.
Soit le code JAVA suivant :
public class C {
private int attribut;
public C(){attribut=10;}
public void setAttribut(int a){attribut=a;}
public int getAttribut(){return attribut;}
public static void main(String[] args)
{
C objet = new C();
objet.setAttribut(Integer.parseInt(args[0]));
System.out.println(""+objet.getAttribut());
}
}
L'exécution de ce code est : java C 100 Il affiche :
Lorsque vous exécutez une classe Java avec des arguments de ligne de commande, les arguments sont passés au tableau de chaînes de caractères "args" de la méthode "main". Dans ce cas, l'argument passé est "100". La méthode "main" crée un objet de la classe "C" et appelle sa méthode "setAttribut" en passant l'argument "100" qui sera affecté à l'attribut de l'objet. Enfin, la méthode "getAttribut" est appelée pour afficher la valeur de l'attribut, qui est "100".
Soit le code JAVA suivant :
String slue = "un::deux trois,:quatre cinq:six sept huit";
StringTokenizer str = new StringTokenizer(slue);
String res="";
while (str.hasMoreTokens())
{
String s = str.nextToken();
res=res+s+"#";
}
Terminal.ecrireString (res);
Ce code :affiche :
Le code affiche un::deux#trois,:quatre#cinq:six#sept#huit#
. Le code utilise la classe StringTokenizer
pour découper la chaîne de caractères slue
en "mots" séparés par des espaces et des caractères spéciaux tels que ::
, ,
, :
. La variable res
est utilisée pour stocker les "mots" extraits et un caractère #
est ajouté à la fin de chaque mot. Enfin, la méthode Terminal.ecrireString
est appelée pour afficher la chaîne de caractères résultante.
Soit le code JAVA suivant :
String s1="EXEMPLE"; String s2=new String(s1);
if (s1==s2) System.out.println("Les deux chaines sont egales");
else System.out.println("Les deux chaines ne sont pas egales");
L'exécution de ce code est :
Le code affichera "Les deux chaines ne sont pas egales". Cela est dû au fait que l'opérateur "==" compare les références des objets, pas leur contenu. Bien que les deux chaînes aient le même contenu, elles ne sont pas le même objet en mémoire car une nouvelle instance de la chaîne a été créée avec l'instruction "new". Pour comparer le contenu des chaînes, il faut utiliser la méthode "equals()".
Ajouter un commentaire
Veuillez vous connecter pour ajouter un commentaire.
Pas encore de commentaires.