Accueil Médias sociaux Développement d'applications Android: Classes Java qui doivent (et ne doivent pas) être étendues - dummies

Développement d'applications Android: Classes Java qui doivent (et ne doivent pas) être étendues - dummies

Table des matières:

Vidéo: 10 questions clés pour son projet d’application mobile - #ECOMGUEST - Market Academy & Synertic 2025

Vidéo: 10 questions clés pour son projet d’application mobile - #ECOMGUEST - Market Academy & Synertic 2025
Anonim

Si une classe Java n'est pas cassée, ne le réparez pas. Supposons que vous souhaitiez ajouter des fonctionnalités à une classe Java existante. Vous aimez la classe d'activité d'Android, mais la classe d'activité pré-déclarée n'affiche rien à l'écran. Réécrivez-vous la classe d'activité d'Android? Non.

Au lieu de réécrire une classe existante, vous étendez la classe. Même dans une application "Hello" Android, vous écrivez

public class MyActivity extends Activity

Ensuite, dans la déclaration de la classe MyActivity, vous écrivez

@Overide public void onCreate (Bundle savedInstanceState) {super. onCreate (savedInstanceState); setContentView (R.. layout. main);}

Votre classe MyActivity crée de nouvelles fonctionnalités en étendant la plupart des fonctionnalités d'Android tout en remplaçant la méthode brain-dead onCreate de la classe Activity.

Les classes finales de Java

En programmation orientée objet, étendre une classe est la chose la plus noble que vous pouvez faire.

Mais certaines classes ne sont pas destinées à être étendues. Prenez, par exemple, la classe String de Java. Une chaîne est une chaîne est une chaîne. Vous ne voulez pas MyString de quelqu'un. méthode length pour renvoyer la durée nécessaire pour brouiller les caractères d'une chaîne. Pour empêcher quelqu'un de faire quelque chose d'inattendu, non conventionnel ou inhabituel avec les méthodes d'une chaîne, les créateurs de Java ont rendu la classe String finale:

public final class String

Certaines classes pré-déclarées d'Android sont également définitives, y compris Téléphonie et classes MediaStore.

Les classes abstraites de Java

Tout comme une classe finale déteste être étendue, une classe abstraite insiste pour être étendue. ViewGroup d'Android est un exemple de classe abstraite.

public résumé class ViewGroup {public void bringChildToFront (Afficher l'enfant) {int index = indexOfChild (child); if (index> = 0) {removeFromArray (index); addInArray (enfant, mChildrenCount); enfant. mParent = this;}} protected abstract void onLayout (booléen modifié, int l, int int, int r, int b);}

ViewGroup d'Android. Le fichier java fait plus de 3 700 lignes. Donc, cet exemple n'a qu'une infime partie du code du fichier. Mais vous pouvez voir comment une classe devient abstraite. À la surprise de personne, le mot abstrait précède le mot classe. Mais le mot abstrait commence aussi la déclaration de certaines méthodes appartenant à la classe.

Les fondateurs d'Android ont décidé que l'idée d'un ViewGroup est utile. Ils étaient corrects car vos dispositions Android préférées (LinearLayout, RelativeLayout, etc.) sont des sous-classes de ViewGroup.Ils ont également compris que d'une sorte de ViewGroup à l'autre, certaines fonctionnalités ne changeaient pas. Par exemple, l'exemple ci-dessus définit une méthode bringChildToFront et les sous-classes de ViewGroup héritent de cette méthode.

Mais les fondateurs ont aussi réalisé que certains aspects d'un ViewGroup n'avaient aucun sens à moins de travailler avec un type de groupe particulier. Par exemple, un LinearLayout positionne les choses l'une après l'autre, et un RelativeLayout positionne les choses au-dessus, en dessous et les unes des autres. Donc, le code ci-dessus n'a pas de méthode onLayout complète.

La déclaration onLayout n'a pas de corps de méthode. Mais Android exige que chaque sous-classe de la classe ViewGroup déclare sa propre méthode onLayout. Java applique cette exigence lorsque vous déclarez la méthode onLayout comme étant abstraite.

En tant que développeur, vous ne pouvez pas créer un objet à partir d'une classe abstraite. Si vous écrivez

ViewGroup group = new ViewGroup ();

Java vous dit que vous vous comportez mal. Pour faire quelque chose d'utile avec la classe ViewGroup, vous avez besoin d'une sous-classe de la classe ViewGroup. La sous-classe a une version concrète de chaque méthode abstraite dans la classe ViewGroup:

package com. allmycode. des échantillons; importer Android. contenu. Le contexte; importer Android. vue. ViewGroup; Classe publique MyLayout extends ViewGroup {public MyLayout (contexte de contexte) {super (contexte);} @Override protected void onLayout (booléen modifié, int l, int int, int r, int b);}}
Développement d'applications Android: Classes Java qui doivent (et ne doivent pas) être étendues - dummies

Le choix des éditeurs

Comment détecter les atteintes à la sécurité sur vos fichiers journaux Web hébergés - dummies

Comment détecter les atteintes à la sécurité sur vos fichiers journaux Web hébergés - dummies

Grande question est toujours sur la sécurité. Comment pouvez-vous repérer les failles de sécurité hébergées sur le Web pour protéger votre site et garantir qu'il ne sera pas piraté? La réponse courte est la suivante: Vous ne pouvez pas. Tout est piratable avec suffisamment de temps, des cerveaux sournois et des ressources. Cependant, il y a des choses que vous pouvez faire pour vous protéger un peu. ...

Comment utiliser MySQL Workbench pour votre site Web - dummies

Comment utiliser MySQL Workbench pour votre site Web - dummies

Bien que phpMyAdmin et d'autres outils d'hébergement Web Pour gérer les bases de données, il est possible que vous ayez besoin de quelque chose de plus puissant. MySQL Workbench est une bonne source dans cette instance. MySQL Workbench est un outil de conception et d'administration de base de données gratuit créé par Oracle qui réunit deux produits: MySQL Query Browser et MySQL ...

Le choix des éditeurs

Comment mettre du texte sur un cercle dans QuarkXPress - texte fictif

Comment mettre du texte sur un cercle dans QuarkXPress - texte fictif

Sur un cercle - c'est-à-dire texte suivant l'extérieur d'un cercle ou ovale - est un élément de conception commun dans les mises en page. C'est vraiment facile à faire dans QuarkXPress, mais ce n'est pas du tout évident comment. Procédez comme suit: Obtenez l'outil Ovale de la palette Outils et dessinez ...

ÉChanges peer-to-peer par rapport aux échanges Bitcoin réguliers - mannequins

ÉChanges peer-to-peer par rapport aux échanges Bitcoin réguliers - mannequins

Deux types d'échanges de bitcoins sont utilisés : peer-to-peer et régulier. D'une part, il y a les échanges de bitcoins réguliers, qui utilisent un carnet de commandes pour faire correspondre les ordres d'achat et de vente entre les personnes. Cependant, ni l'acheteur ni le vendeur n'ont la moindre idée de l'identité de l'autre partie, ce qui permet à tous les utilisateurs ...

L'interface d'application QuarkXPress - les nuls

L'interface d'application QuarkXPress - les nuls

Les palettes visibles à gauche, à droite et en bas de QuarkXPress sont flottantes - vous pouvez les faire glisser n'importe où qui vous convient. Contrairement aux palettes, les menus de la barre de menu sont collés: vous devez toujours passer la souris à la barre de menu pour y accéder. Cependant, ...

Le choix des éditeurs

Sept erreurs d'optimisation de moteur de recherche - nuls

Sept erreurs d'optimisation de moteur de recherche - nuls

Lorsque vous essayez d'obtenir votre site Web, c'est facile de faire des erreurs d'optimisation de moteur de recherche. Voici quelques-unes des erreurs de référencement les plus courantes. Vous ne connaissez pas vos mots-clés C'est également un problème majeur: la grande majorité des sites sont créés sans que les propriétaires ou les développeurs du site ne sachent vraiment ce que sont les mots-clés ...

Soumission de pages aux moteurs de recherche pour l'optimisation - dummies

Soumission de pages aux moteurs de recherche pour l'optimisation - dummies

Vous avez probablement vu "soumission "Services annoncés pour le référencement, peut-être sous la forme de spam dans votre boîte de réception, offrant de soumettre votre site Web à des centaines de moteurs de recherche, encore et encore. Dans la plupart des cas, ces services de soumission sont une perte totale de temps et d'argent. Voici comment obtenir votre site Web dans les moteurs de recherche. You ...

Six mythes À propos de Search Engine Optimization - mannequins

Six mythes À propos de Search Engine Optimization - mannequins

Il existe une grande confusion dans le monde des moteurs de recherche. beaucoup de mythes. Voici quelques-uns des mythes communément crus qui peuvent nuire à vos positions de moteur de recherche. Tout est une question de métabalises et de soumissions. C'est le mythe le plus répandu et le plus préjudiciable de tous, tenu par de nombreux concepteurs et développeurs Web. ...