archive-fr.com » FR » E » EIXA6.FR

Total: 47

Choose link from "Titles, links and description words view":

Or switch to "Titles and links view".
  • eiXa6 informatique
    Envoyer ce lien par e mail à un ami Fermer la fenêtre Destinataire Expéditeur Votre adresse e mail Sujet Expédier Annuler

    Original URL path: http://www.eixa6.fr/index.php/component/mailto/?tmpl=component&template=protostar&link=ce97a4acb45b3df286e4892df74054b58d91e72f (2016-04-25)
    Open archived version from archive


  • Page principale
    public void parler Fig 4 la classe Chat est très facilement dérivée de la classe Felin Mise en œuvre en C C ne permet pas au polymorphisme de fonctionner par défaut Il faut donc prévoir le polymorphisme dans la classe mère Pour cela ajouter le mot clé virtual devant la fonction membre la méthode concernée Ce mot clé va typiquement provoquer la génération d une vtable ou table des fonctions virtuelles qui routera les appels Chaque objet doit donc être accompagné d un pointeur sur cette vtable Le coût induit peut être important L empreinte mémoire augmentée mais aussi le coût de l indirection Ce dernier semble être d environ 20 dans les compilateurs modernes class Felin public virtual void parler class Chat public Felin public void parler Fig 5 la classe Chat hérite facilement du Félin ne pas oublier de faire un héritage public mais si la classe mère n a pas déclarée la fonction membre comme virtual le polymorphisme ne fonctionnera pas Seul le code de déclaration est montré dans la figure Mise en œuvre en C Dans les langages phares du DotNet C et VB Net la mise en œuvre du polymorphisme suit les règles suivantes il faut indiquer sur la méthode de la classe mère que l on va redéfinir et aussi sur la méthode redéfinie de la classe fille que l on veut cette redéfinition Si une incohérence apparaît soit le compilateur signale une erreur bloquante soit un avertissement non bloquant si masquage Pour le C utilisez virtual sur la méthode de la classe mère et override sur la méthode de la classe fille class Felin public virtual void parler class Chat Felin public override void parler Fig 6 le C impose les mots clés virtual sur la méthode de la classe mère et override sur la méthode de la classe fille Mise en œuvre en VB NET Pour utiliser le polymorphisme en VB NET il faut comme pour son cousin le C indiquer que la méthode dans la classe mère sera redéfinie et aussi indiquer sur la méthode redéfinie sur la classe fille que cette méthode doit exister dans la classe mère Sur la méthode concernée de la classe mère utilisez Overridable et sur la méthode concernée de la classe fille utilisez Override Class Felin Public Overridable Sub Parler REM End Sub End Class Class Chat Inherits Felin Public Overrides Sub Parler REM End Sub End Class Fig 7 en VB NET il faut marquer les méthodes sur la classe mère comme sur la classe fille Le polymorphisme en Python Python est un langage très souple qui utilisera donc le polymorphisme sans vraiment de contrainte L appel de la méthode sera réalisé si elle est bien présente sur l objet à l exécution Les appels sont possibles même si les types ne sont pas reliés Python n a pas de compilation statique Le polymorphisme de surcharge Le polymorphisme de surcharge n est pas un polymorphisme qui nécessite de l héritage Mais simplement le fait

    Original URL path: http://www.eixa6.fr/index.php/2-uncategorised/this.href, (2016-04-25)
    Open archived version from archive

  • Page principale
    module déclaré Dans ce fichier vous viendrez écrire votre fonction Si tout se passe bien le prototype de la fonction sera généré Si ce n est pas le cas pas de panique pre class lang java decode true include jstring Java android ei6 biz fr 1269 104 100ter MainActivity getTexte JNIEnv env jobject thiz return env gt NewStringUTF env coucou pre Les appels des fonctions C suppose une correspondance entre les types de données Java et ceux du C JNI définit les possibilités d échanges entre Java et le C strong Conclusion strong Grâce à Android Studio 2 0 nous aurons une prise en charge des appels natifs sous Android En Java il suffit alors de déclarer les fonctions que nous souhaitons appeler et l IDE se charge quasiment du reste Bien entendu tout cela reste expérimental mais risque de durer Détails Écrit par Super User Catégorie Android Publication 2 février 2016 Affichages 243 La base de données SQLite sous Android Imprimer E mail Les accès aux données sous Android peuvent être réalisés de plusieurs façons Les fichiers privés ou non les accès réseaux propriétaires ou via le Cloud et la base de données SQL La base de données SQLite est disponible sous Android et via quelques classes nous avons tous les outils pour créer écrire et lire la base La création de la base et sa mise à jour Pour créer la base de données mieux vaut utiliser les outils qui existent et pour cela dériver la classe SQLiteOpenHelper Vous aurez à compléter deux hook la création la mise à jour Lors de la création il faudra créer les tables pour la mise à jour le plus simple oui oui sera de supprimer les tables et de les recréer Dans l exemple de code suivant des constantes statiques représentent les noms des base tables et colonnes version Les noms des colonnes sont publiques ce qui facilitera leur usage public class DataHelper extends SQLiteOpenHelper public static final String NOM nom public static final String ADRESSE adresse private static final String DATABASE NAME appdatas private static final int DATABASE VERSION 1 private static final String CLIENT TABLE NAME clients private static final String CLIENT TABLE CREATE CREATE TABLE CLIENT TABLE NAME NOM TEXT ADRESSE TEXT public DataHelper Context context super context DATABASE NAME null DATABASE VERSION Override public void onCreate SQLiteDatabase db db execSQL CLIENT TABLE CREATE Override public void onUpgrade SQLiteDatabase db int oldVersion int newVersion db execSQL DROP TABLE IF EXISTS CLIENT TABLE NAME onCreate db L insertion des données La première chose à faire sera de créer un objet du type SQLiteOpenHelper Attention comme vous avez créé votre propre classe dérivée ce sera cette classe à qu il faudra utiliser DataHelper db new DataHelper this Pour insérer des données il y a plusieurs façons de pratiquer Il est possible d utiliser des méthodes toutes faites Il faudra auparavant ouvrir une connexion à la base en utilisant getWritableDatabase Une fois l insertion réalisée vous obtenez en retour le nombre

    Original URL path: http://www.eixa6.fr/index.php/13-uncategorised/android/this.href, (2016-04-25)
    Open archived version from archive

  • Page principale
    C VB NET Conception et architecture la conception orientée objets la mise en œuvre des Patterns Modélisation et conduite utiliser UML la conduite de projets Maîtrise d ouvrage cahier des charges expressions des besoins modélisation des exigences Technologies JEE via JSP et Servlets JavaFX Android Plateforme DotNet Windows Phone La liste précise des formations catalogues dépasse les 20 mis un programme spécifique est envisageable Détails Écrit par Super User Catégorie

    Original URL path: http://www.eixa6.fr/index.php/9-uncategorised/les-formations/this.href, (2016-04-25)
    Open archived version from archive

  • Page principale
    d un progiciel nous avons créé un outil de gestion commercial Gestion des bons de livraisons facture interface avec CEGID gestion de la base article et tarifs Pour des acteurs plus importants prestations d assistance à maîtrise d ouvrage aide à la modélisation ou accompagnement d équipes dans la mise en œuvre des techniques de conceptions et d architecture Java ou DotNet Enfin d une façon générale nous intervenons pour

    Original URL path: http://www.eixa6.fr/index.php/8-uncategorised/les-prestations/this.href, (2016-04-25)
    Open archived version from archive

  • Page principale
    thread t1 ma fonction std thread t2 ma fonction2 t1 join t2 join std cout FIN du thread std this thread get id std endl Dans ce code 2 threads sont créés utilisant 2 fonctions qui font juste un affichage et attendent un peu Puis le thread principal est bloqué void ma fonction std chrono duration int duree 1 for int i 0 i 10 i std cout thread courant std this thread get id std endl std this thread sleep for duree void ma fonction2 std chrono duration int duree 3 for int i 0 i 10 i std cout thread courant std this thread get id std endl std this thread sleep for duree Le résultat dépend de l ordonnancement des threads le join garantit que le main se terminera lorsque les deux threads seront terminés Pour éviter les data races soit les accès concurrents malheureux sur les données il faut synchroniser les threads Cela va se faire soit par les mutexes soit en utilisant des variables de conditions Les mutexes permettent de bloquer un thread sur une ressource Un thread acquiers un mutex avec lock et le relâche avec unlock Il est possible d utiliser un mutex à durée limitée et ou avec appel réentrant Pour ne pas lever d exception à l acquisition du mutex on peut utiliser try lock Dans ce cas tester le résultat pour savoir si l acquisition est ok Si des exceptions sont levées par l utilisation des mutex il s agit de system error Les codes d erreur sont récupérés par code La gestion des tâches Le code de gestion des threads reste assez complexe pour réaliser ce qui est finalement de la gestion de tâches Le développeur est détourné de son objectif initial pour mettre en place toute la cuisine de synchronisation etc Par ailleurs il est parfois difficile d être assuré de la pertinence de créer tant et tant de threads pour rendre le service La création de threads reste coûteuse Si vous créez plus de threads que nécessaire vous perdez en efficacité Avec la gestion de tâches nous allons travailler plus haut niveau le bénéfice est double mieux se focaliser sur son besoin et laisser les tâches activer ou pas les threads sous jacents Le support des tâches est réalisé à travers quelques classes telles packaged task T promise T future T ou les fonctions async Utiliser ces éléments va drastiquement simplifier la mise en oeuvre du parallélisme Les future et promise représentent respectivement les valeurs à récupérer et la valeur positionnée par la tâche Une utilisation simpliste des tâches se réalisent de la façon suivante une fonction attend un paramètre int et ne retourne rien std packaged task void int tache1 une fonction std packaged task void int tache2 une fonction appel de la fonction avec passage de paramètre tache1 1 tache2 2 Les tâches peuvent correspondre aux threads en fonction des possibilités de la machine On peut récupérer le résultat d un calcul lorsqu il est

    Original URL path: http://www.eixa6.fr/index.php/12-uncategorised/c/this.href, (2016-04-25)
    Open archived version from archive

  • Page principale
    ou bien les types de paramètres et une seule ligne sont valables toutes les combinaisons sont possibles Utilisation L utilisation type de l expression lambda est l appel d une interface fonctionnelle elle aussi une nouveauté de Java en version 8 Les expressions lambdas accèdent aux attributs de la classe englobante sans limitation Elles accèdent aussi sous condition aux variables locales de la méthode dans laquelle elles sont définies Cette caractéristique rappelle les possibilités des classes imbriquées en Java Cette possibilité est mise en œuvre pour la construction de fonctions de rappel sur l IHM par exemple On peut donc imaginer le codage de callback en 3 temps Premier temps coder une classe qui implémente l interface attendue Je ne donne pas d exemple de code pour ce cas de figure Second temps coder une classe interne qui implémente l interface attendue dans cet exemple le listener est une classe anonyme JButton bouton new JButton Clique ici bouton addActionListener new ActionListener Override public void actionPerformed ActionEvent ae faire ce qu il faut faire Troisième temps si l interface ne déclare qu une seule méthode remplacer la classe anonyme par une expression lambda Ce type d interface est appelée interface fonctionnelle depuis Java8 dans cet exemple le listener est fourni sous la forme d une expression lambda JButton bouton new JButton Clique ici bouton addActionListener evt faire ce qu il faut faire Les expressions lambdas sont utilisables aussi en remplacement les références de méthodes nouveautés de Java8 Cette syntaxe vous permet de déclarer une variable de type méthode en déclarant sa signature c est à dire le nombre et le type des paramètres Si l expression lambda se conforme à ce contrat elle est utilisable pour affecter la variable dans cet exemple la méthode de comparaison est la méthode compare de la classe MaClasse on utilise une référence de méthode List Integer liste new ArrayList liste add 2 liste add 6 liste add 1 liste sort MaClasse compare Le code précédent peut être remplacé par la déclaration d une expression lambda comme suit dans cet exemple la méthode de comparaison est l expression lambda List Integer liste new ArrayList liste add 2 liste add 6 liste add 1 liste sort v w w v Les streams font abondamment usage des expressions lambdas ou plutôt le développeur conjugue inévitablement les deux Cette nouveauté permet de construire des suites de fonctions en pipe line et de déclencher ces fonctions au dernier moment dans cet exemple la méthode foreach applique l expression lambda List String liste new ArrayList liste add Fabien liste add Xavier liste add Brissonneau liste stream forEach s System out println s Limites Les limites de l expression lambda sont essentiellement liées à son contexte d utilisation Je vais ici en citer deux principales La première limitation concerne l absence d espace des variables propre à l expression lambda Cela signifie que les variables paramètres rentrent en collision avec les variables locales de la méthode dans laquelle est définie l expression

    Original URL path: http://www.eixa6.fr/index.php/10-uncategorised/java/this.href, (2016-04-25)
    Open archived version from archive



  •