Quand je le montre à un ingénieur actif, il a généralement l'air maladroit et dit: «Je pense que c'est difficile pour les nouveaux arrivants». Il semble que les mots et les expressions puissent être difficiles.
Cela a été créé comme un exercice éducatif pour les nouveaux arrivants qui (pensent) comprennent les bases de Java. Puisque c'est à des fins éducatives, il n'est pas supposé que vous puissiez répondre à tout depuis le début. Le délai est approprié. (Les personnes qui peuvent répondre à tout sans difficulté enseigneront le cas échéant tout en laissant une fonction) Je veux aussi savoir si je peux comprendre des mots que je ne connais pas, alors j'ose utiliser des mots que je ne connais probablement pas. Il s'agit de donner des conseils au besoin tout en observant l'approche lors de la réponse, les points à bloquer, la façon de se tromper, etc., et d'obtenir des informations de référence pour décider des futures politiques éducatives.
Créez une classe "exam.Exam1" avec une méthode d'instance "practice (final String n)" qui se comporte comme suit.
Créez une classe «exam.Exam2» qui est une modification de la classe «Exam1» créée dans «Issue.1» pour répondre aux conditions suivantes.
Implémentez l'interface "exam.FizzBuzz" comme indiqué dans le code suivant et créez "exam3.Exam1" et "exam3.Exam2" afin que les conditions suivantes soient remplies.
--La valeur de retour List
java:exam.FizzBuzz.java
package exam;
// import … (réduction);
public interface FizzBuzz {
public List<String> fizzBuzz(final int n);
}
Créez une classe abstraite "exam.AbstractFizzBuzz" qui satisfait aux conditions suivantes, et "exam4.Exam1" et "exam4.Exam2" qui en héritent.
--La classe abstraite "exam.AbstractFizzBuzz" doit implémenter l'interface "exam.FizzBuzz" de "Issue.3".
Créez «exam5.Exam1» et «exam5.Exam2» qui héritent de la classe abstraite «exam.AbstractFizzBuzz» comme indiqué dans le code suivant. Cependant, les conditions pour isFizz et isBuzz sont les mêmes que les conditions implémentées dans "Issue.1, Issue.2".
java:exam.FizzBuzzStrategy.java
package exam;
// import … (réduction);
public interface FizzBuzzStrategy {
boolean isFizz(final int num); //Vrai si Fizz
boolean isBuzz(final int num); //Si cela devient vrai Buzz
String fizz(); //Renvoie Fizz
String buzz(); //Renvoie Buzz
String both(); //Renvoie FizzBuzz
}
java:exam.AbstractFizzBuzz.java
package exam;
// import … (réduction);
public abstract class AbstractFizzBuzz implements FizzBuzzStrategy {
@Override
String fizz() { return "Fizz"; }
@Override
String buzz() { return "Buzz"; }
@Override
String both() { return "FizzBuzz"; }
}
Considérez un "exam.FizzBuzzRunner" comme indiqué dans le code suivant. Veuillez implémenter la méthode run pour que le résultat de l'exécution soit comme indiqué dans "l'exemple d'exécution" ci-dessous. Si nécessaire, vous pouvez modifier la classe créée dans "Issue.5-1".
java:exam.FizzBuzzRunner.java
package exam;
// import … (réduction);
public class FizzBuzzRunner {
public static void main(String[] args) {
final FizzBuzzRunner runner = new FizzBuzzRunner();
final List<String> exam1FizzBuzz = runner.run(21, new exam5.Exam1());
print(exam1FizzBuzz);
System.out.println("----------");
final List<String> exam2FizzBuzz = runner.run(16, new exam5.Exam2());
print(exam2FizzBuzz);
}
private static void print(final List<String> src) {
for (String s : src) {
System.out.println(s);
}
}
public List<String> run(final int n, final FizzBuzzStrategy strategy) {
//* Mis en œuvre ici
}
}
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
16
17
Fizz
19
Buzz
Fizz
----------
1
Fizz
FizzBuzz
4
Fizz
Buzz
Fizz
8
Buzz
10
Fizz
Buzz
Fizz
14
Buzz
16
17
Buzz
Fizz
20
Buzz
Recommended Posts