● Corps du texte (format PDF 239 pages: 1,82 Mo) Mise à jour du 15/12/2019 (→ DL du site miroir) → Exemple de programme en texte --------------------- (2019/11/16) J'enseigne la programmation à l'école. J'ai créé un manuel d'introduction à Java pour enseigner aux débutants. Pour le moment, le contenu est jusqu'à ce qu'il devienne possible de "programmer avec Java pour le moment". La première page, moins de 50 pages, explique la grammaire de base et les E / S de base. Le reste est une explication des bibliothèques fréquemment utilisées. L'interface graphique explique Swing et SWT. Ce texte est encore au stade du prototype, mais il sera révisé et mis à jour par les utilisateurs du domaine de l'éducation. Nous le publierons gratuitement, nous vous serions donc reconnaissants de bien vouloir nous donner votre avis. (S'il vous plaît laissez-nous savoir si vous trouvez des erreurs) Ceux qui veulent l'utiliser sont les bienvenus. Je souhaite améliorer le degré de perfection tout en recevant des avis. Surtout, j'espère qu'il sera utilisé par les enseignants qui enseignent la programmation à l'école. Nous vous serions reconnaissants de bien vouloir nous faire part de vos demandes ou suggestions sur le terrain. (Réfléchissez le plus possible dans le texte)
--------------------- [Supplément](2019/12 / 13-15) L'explication du fonctionnement des bits a été améliorée. Ajout d'un commentaire sur le modificateur final. Ajout d'une explication de base sur Javadoc. Autres ajouts mineurs. --------------------- [Supplément](2019/11 / 24-12 / 01) L'explication sur l'opérateur ternaire (...? ...: ...) pour le jugement de condition manquait, alors je l'ai ajoutée. Ajout d'un commentaire sur la façon de diviser CSV. --------------------- [Supplément](2019/11 / 21-22) Ajout du contenu lié aux expressions régulières.
1 Préface --- 1 1.1 Procédure de base pour l'élaboration du programme --- 1 1.2 Travaux spécifiques pour l'élaboration de programmes --- 1 1.2.1 Spécification du code de caractère dans la description du programme source et des entrées / sorties --- 2 1.2.2 Comment utiliser la bibliothèque de format jar --- 3 2 langage Java --- 4 2.1 Points à garder à l'esprit lors de l'apprentissage pour la première fois --- 4 2.2 Principes de base concernant les variables et les valeurs --- 4 2.2.1 Expression de valeur --- 5 2.2.2 Calcul arithmétique --- 5 2.2.3 Description des phrases multiples --- 6 2.2.4 Description des commentaires --- 6 2.2.5 Exemple de type de variable et de fonctionnement --- 6 2.2.6 Méthode et argument --- 7 2.2.7 Gestion des caractères et chaînes de caractères --- 7 2.2.7.1 Extraire la partie chaîne de caractères --- 7 2.2.7.2 Séquence d'échappement --- 8 2.2.8 Conversion de type de valeur --- 8 2.2.8.1 Conversion d'expression entre valeur numérique et chaîne de caractères --- 9 2.2.9 Conversion de base --- 10 2.2.9.1 Nombre décimal → nombre n-aire --- 10 2.2.9.2 nombre n-aire → nombre décimal --- 10 2.2.10 Fonctionnement sur bit --- 10 2.2.10.1 Calcul du décalage --- 11 2.2.10.2 Fonctionnement logique bit par bit --- 11 2.3 Structure de contrôle --- 12 2.3.1 Branche conditionnelle (1): instruction if --- 12 2.3.1.1 Description de l'expression conditionnelle et de la variable de type booléen --- 13 2.3.1.2 Comparaison des chaînes de caractères --- 14 2.3.1.3 Opérateur à trois termes pour le jugement de condition --- 14 2.3.2 Branche conditionnelle (2): instruction switch --- 15 2.3.3 Itération (1): instruction while --- 16 2.3.3.1 Changement de valeur de variable par affectation récursive --- 16 2.3.4 Itération (2): pour la phrase --- 18 2.4 tableau --- 19 2.4.1 Allocation de mémoire aux séquences --- 20 2.4.2 Initialisation au moment de la déclaration du tableau --- 20 2.4.3 Alignement des éléments du tableau --- 21 2.4.4 Accès aux éléments par extension pour instruction --- 22 2.5 Programmation orientée objet --- 23 2.5.1 Introduction conceptuelle --- 23 2.5.1.1 Concept de pièces en orientation objet --- 23 2.5.1.2 Vue d'ensemble de la programmation orientée objet --- 23 2.5.2 Explication selon l'exemple de programme --- 23 2.5.2.1 Concept de "classe, instance, constructeur" --- 26 2.5.2.2 À propos des membres / méthodes statiques --- 28 2.5.2.3 initialiseur statique --- 28 2.5.3 Extension de classe (héritage) --- 29 2.5.4 À propos des classes abstraites et des interfaces --- 30 2.5.4.1 À propos de la classe anonyme --- 33 2.5.5 Annotation --- 34 2.5.6 À propos des génériques --- 34 2.5.7 Informations sur la classe d'objets --- 35 2.6 Entrée / sortie --- 37 2.6.1 Entrée / sortie standard --- 37 2.6.1.1 Application de l'édition de format à la génération de chaînes de caractères --- 38 2.6.1.2 Sortie d'erreur standard --- 39 2.6.2 Argument de commande --- 40 2.6.3 Sortie dans un fichier --- 41 2.6.3.1 Sortie vers le flux d'octets: FileOutputStream --- 41 2.6.3.2 Traitement des exceptions (1): try --- 42 2.6.3.3 Traitement des exceptions (2): jette --- 43 2.6.3.4 Sortie par PrintWriter --- 43 2.6.4 Entrée du fichier --- 44 2.6.4.1 Lecture de texte ligne par ligne --- 44 2.6.4.2 Lecture à l'aide de la classe Scanner --- 46 2.6.5 Entrée / sortie de fichier binaire --- 47 3 Bibliothèque de classes standard --- 50 3.1 Structure des données --- 50 3.1.1 Liste: ArrayList / LinkedList --- 50 3.1.1.1 Initialisation lors de la génération de liste --- 52 3.1.1.2 Alignement des éléments: tri --- 52 3.1.1.3 Inversion de l'ordre des éléments: inverser --- 52 3.1.1.4 Accès aux éléments de liste par extension pour instruction --- 53 3.1.1.5 Alignement à l'aide du comparateur --- 53 3.1.2 Ensemble (ensemble, ensemble de données): HashSet / TreeSet --- 56 3.1.2.1 Accès séquentiel aux éléments par Iterator --- 58 3.1.3 Map (tableau associatif, dictionnaire): HashMap / TreeMap --- 58 3.1.3.1 Comment accéder aux mappages enregistrés dans l'ordre --- 60 3.1.4 Conversion de structure de données --- 62 3.1.4.1 Comment convertir des listes et des ensembles en tableaux --- 62 3.2 Classe de chaîne de caractères modifiable: StringBuilder, StringBuffer --- 63 3.2.1 Constructeur --- 63 3.2.2 Méthode d'édition des chaînes de caractères --- 63 3.2.3 Exemple de programme --- 63 3.2.4 Conversion entre tableau d'octets, objet String / StringBuilder / StringBuffer --- 64 3.3 Cours de mathématiques --- 66 3.3.1 BigInteger,BigDecimal --- 66 3.3.1.1 Génération d'objets et jeu de valeurs --- 67 3.3.1.2 Calcul --- 67 3.3.1.3 À propos de MathContext --- 67 3.3.1.4 À propos des opérations de longueurs multiples des fonctions mathématiques --- 68 3.4 Traitement de la date et de l'heure --- 70 3.4.1 Date, classe de calendrier --- 70 3.4.2 Mesure du temps --- 72 3.4.3 Classe LocalDateTime, LocalDate, LocalTime --- 73 3.4.3.1 Fonctions de base --- 74 3.4.3.2 Manipulation du calendrier japonais --- 77 3.5 Fichier, chemin, URI --- 79 3.5.1 Création de chemin, décomposition de chemin --- 79 3.5.2 URI --- 80 3.5.3 Méthode de classe de fichier --- 81 3.5.3.1 Création de fichiers et de répertoires --- 82 3.5.3.2 Acquisition du contenu du répertoire, inspection de l'existence des fichiers --- 83 3.5.3.3 Changement de nom de fichier (changement de chemin) --- 83 3.5.3.4 Suppression de fichiers et de répertoires --- 84 4 GUI et graphiques 2D --- 86 4.1 Concept de base de la programmation GUI --- 86 4.2 Aperçu de la construction de l'application GUI --- 86 4.2.1 Kit d'outils GUI --- 87 4.3 Swing --- 88 4.3.1 Construction de l'interface graphique --- 88 4.3.1.1 Exemple de construction de l'interface graphique --- 88 4.3.1.2 Traitement événementiel --- 91 4.3.1.3 Récupération des touches des événements du clavier --- 94 4.3.1.4 Construire une application en tant que classe JFrame --- 94 4.3.1.5 Une mise en œuvre plus sûre --- 96 4.3.1.6 Gestionnaire de disposition --- 96 4.3.2 Vue d'ensemble de la création graphique avec Swing --- 98 4.3.2.1 Flux de création graphique --- 98 4.3.2.2 Exemple de programme --- 99 4.3.2.3 À propos de l'argument de paintComponent --- 100 4.3.3 À propos du système de coordonnées --- 100 4.3.4 Méthode de base pour créer des graphiques --- 100 4.3.4.1 Désignation de la couleur du dessin --- 100 4.3.4.2 Tracer une ligne droite: méthode drawLine --- 101 4.3.4.3 Tracer une ligne: méthode drawPolyline --- 101 4.3.4.4 Spécification des attributs de ligne --- 101 4.3.4.5 Dessiner un rectangle (1) Frame: méthode drawRect --- 104 4.3.4.6 Dessiner un rectangle (2) Remplissage: méthode fillRect --- 104 4.3.4.7 Dessin de l'ellipse (1) Frame: méthode drawOval --- 104 4.3.4.8 Dessiner une ellipse (2) Remplissage: méthode fillOval --- 104 4.3.4.9 Dessin du polygone (1) Frame: méthode drawPolygon --- 104 4.3.4.10 Dessin du polygone (2) Fill: méthode fillPolygon --- 104 4.3.4.11 Dessin de caractères --- 104 4.3.4.12 Désignation de la couleur de gradation --- 106 4.3.5 Utilisation de l'image tamponnée --- 107 4.3.5.1 Dessin pour BufferedImage --- 107 4.3.5.2 Comment sortir un objet BufferedImage en tant que données d'image --- 108 4.3.5.3 Lecture et affichage des fichiers image --- 110 4.3.5.4 Fonctionnement pour les pixels --- 112 4.3.6 Boîte de dialogue de sélection de fichier --- 114 4.4 SWT --- 117 4.4.1 Flux de construction de l'application GUI --- 117 4.4.2 Génération et placement des composants de l'interface graphique --- 118 4.4.3 Enregistrement du traitement des événements --- 120 4.4.4 Exemple de programme --- 120 4.4.5 Récupération des touches des événements clavier --- 124 4.4.6 Présentation de la création de graphiques avec SWT --- 124 4.4.6.1 GC(Graphic Context) --- 124 4.4.6.2 Flux de création graphique --- 124 4.4.7 Système de coordonnées --- 125 4.4.8 Désignation de la couleur --- 125 4.4.9 Méthode de base pour le dessin --- 126 4.4.9.1 Tracer une ligne droite: méthode drawLine --- 126 4.4.9.2 Tracer une ligne: méthode drawPolyline --- 126 4.4.9.3 Paramètres d'attribut de ligne --- 126 4.4.9.4 Dessiner un rectangle (1) Frame: méthode drawRectangle --- 127 4.4.9.5 Dessiner un rectangle (2) Remplissage: méthode fillRectangle --- 127 4.4.9.6 Dessiner une ellipse (1) Frame: méthode drawOval --- 127 4.4.9.7 Dessiner une ellipse (2) Remplissage: méthode fillOval --- 127 4.4.9.8 Draw polygon (1) Frame: méthode drawPolygon --- 127 4.4.9.9 Dessin de polygone (2) Fill: méthode fillPolygon --- 127 4.4.10 Dessin de personnage --- 127 4.4.11 Fonctionnement pour les pixels --- 128 4.4.11.1 Processus de coloration des pixels --- 130 4.4.12 Entrée / sortie du fichier image --- 130 4.4.12.1 Lecture des fichiers image --- 130 4.4.12.2 Sortie vers un fichier image --- 130 4.4.13 Exemple de programme --- 131 4.4.14 Boîte de dialogue de sélection de fichier --- 134 5 Fils et processus --- 137 5.1 Programmation multi-thread --- 137 5.1.1 Classe de filetage --- 137 5.1.2 Interface exécutable --- 139 5.1.3 Synchronisation des threads --- 140 5.1.3.1 Comment attendre la fin d'un autre thread: méthode de jointure --- 140 5.1.3.2 modificateur synchronisé --- 141 5.1.3.3 Attendre / reprendre l'exécution du thread --- 144 5.1.4 État du fil --- 146 5.2 bibliothèque simultanée --- 147 5.2.1 Service des exécuteurs et exécuteurs --- 147 5.2.2 Interface appelable et interface future --- 149 5.3 Démarrage d'un processus externe --- 152 5.3.1 Relation entre les programmes Java et les processus externes --- 152 5.3.2 Comment utiliser --- 152 5.3.3 Exemple de programme --- 153 6 Expression Lambda, API Stream, référence de méthode --- 156 6.1 Interface fonctionnelle --- 156 6.2 Interface de flux --- 157 6.2.1 Génération de l'objet Stream --- 158 6.2.2 méthode forEach --- 158 6.2.3 méthode de filtrage --- 158 6.2.4 méthode de la carte --- 159 6.2.5 méthode triée --- 159 6.2.5.1 Fermeture du flux (fin) --- 159 6.2.6 méthode de collecte --- 159 6.3 Se référer à la méthode --- 160 7 Expression régulière --- 162 7.1 Recherche de chaîne de caractères: méthode de recherche --- 162 7.1.1 Position de détection de modèle --- 163 7.1.2 Poursuite de la détection de modèle --- 163 7.2 Traitement de remplacement: replaceFirst, replaceAll --- 164 7.3 Méthode de description du modèle --- 164 7.4 Groupe de correspondance de motif --- 166 7.5 Fractionnement de la chaîne de caractères: méthode de fractionnement --- 167 8 Communication TCP / IP --- 168 8.1 Concept de prise --- 168 8.2 Classe de socket --- 169 8.2.1 Socket serveur --- 169 8.2.2 Prise --- 169 8.3 Envoi et réception de données --- 170 8.4 Exemple de programme --- 171 9 Lecture des données sonores --- 174 9.1 La méthode la plus simple --- 174 9.2 Lecture de données audio volumineuses --- 176 9.3 Reproduction sonore pratique --- 178 10 Bibliothèque et paquet --- 181 10.1 Créer une bibliothèque --- 181 10.1.1 Emplacement de stockage du fichier de bibliothèque (fichier de classe) --- 181 10.1.2 Gestion lorsque différents packages fournissent des classes avec le même nom --- 182 10.1.3 Créer un fichier jar --- 182 11 Connexion à la base de données --- 183 11.1 Concept de base de la base de données --- 183 11.1.1 Opérations de base sur la base de données --- 183 11.2 Logiciels traités dans ce manuel --- 184 11.2.1 SQLite --- 184 11.2.2 JDBC --- 184 11.3 Transaction --- 184 11.3.1 Connexion à la base de données --- 184 11.3.2 Acquisition de l'objet Statement --- 185 11.3.3 Exécution de l'instruction SQL --- 185 11.3.3.1 Extraction des résultats de recherche --- 185 11.3.4 Résiliation de la transaction --- 185 11.4 SQL --- 185 11.4.1 Créer une base de données --- 186 11.4.2 Créer un tableau --- 186 11.4.2.1 Type de données de colonne --- 186 11.4.2.2 Exemple de programme (1) --- 187 11.4.3 Table de jointure --- 189 11.4.3.1 Exemple de programme (2) --- 190 Une référence simple Swing --- 192 A.1 Méthode commune à de nombreux composants --- 192 A.2 Divers composants --- 192 A.3 Hiérarchie des classes des principaux composants de l'interface graphique --- 197 A.4 Événement typique --- 198 B SWT référence simple --- 199 B.1 Méthode commune à de nombreux contrôles --- 199 B.2 Diverses commandes --- 199 B.3 Événement typique --- 204 Bibliothèque C java.nio --- 205 C.1 Interface de chemin et classe de chemins --- 205 C.2 Classe de fichiers --- 205 D Bibliothèque tierce --- 209 D.1 Apfloat --- 209 Exemple de programme E --- 211 E.1 Comparaison des performances de ArrayList et LinkedList --- 211
Recommended Posts