Exercices de programmation Java pour les nouveaux arrivants impopulaires auprès des ingénieurs actifs

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.

supposition

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.

Défi.1

Créez une classe "exam.Exam1" avec une méthode d'instance "practice (final String n)" qui se comporte comme suit.

Défi.2

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.

Défi 3

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 est une ligne (à l'exclusion des sauts de ligne) qui est sortie en standard par la méthode "pratique" de "exam.Exam1" et "exam.Exam2" créée dans "Issue.1, Issue.2". Faites-en un élément. --Pour l'argument n, s'il n'y a pas de ligne de sortie standard dans la méthode "practice", une liste vide est renvoyée.

java:exam.FizzBuzz.java


    package exam;
//    import … (réduction);
    public interface FizzBuzz {
        public List<String> fizzBuzz(final int n);
    }

Défi.4

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".

Défi 5-1

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"; }
    }

Défi .5-2

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
        }
    }

Exemple d'exécution:

        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

Exercices de programmation Java pour les nouveaux arrivants impopulaires auprès des ingénieurs actifs
Premiers pas avec Ruby pour les ingénieurs Java
Aide-mémoire C # pour les techniciens Java
Activez OpenCV avec java8. (Pour moi-même)
Pratique des bases de la programmation Java - Je veux afficher un triangle avec une instruction for ①
Pratique des bases de la programmation Java - Je veux afficher un triangle avec une instruction for ②
Apprenez de «Et alors», les bases de Java [pour les débutants]
Guide de style de programmation Java pour l'ère Java 11
Conseils d'interopérabilité avec Kotlin à envoyer aux développeurs Java
[Java] Comment tester s'il est nul dans JUnit
Liens et mémos pour démarrer avec Java (pour moi-même)
Demandez n jours ouvrables plus tard avec JAVA
Course d'obstacles facile avec traitement pour Java
Pour les ingénieurs Java qui démarrent Kotlin à partir de maintenant
Opérations de conteneur Docker avec l'API Docker-Client pour Java
Premiers pas avec Groovy pour les ingénieurs Java gênants
Programmation utilisant le type de somme directe en Java (news)