Début traitement - le visualiseur de température (3 / 7 étapes)

Étape 3: Object Oriented programmation Primer - Classes et objets

Fonctions en bref :

Une fonction est essentiellement un morceau de code que vous pouvez réutiliser plusieurs fois. Décomposer un dessin complex en fonctions plus petites assurer la lisibilité (le code est plus facile à lire, puisque tout le code complex obtient abstrait ; plus facile à déboguer à ce stade), modularité (transforme le code en pièces modulaires, comme des legos) et empêche le code d’avoir sec (peuplements secs pour ne pas répéter vous-même ; moyens extensibles manuellement copier/coller code plusieurs fois).

Voici la structure générique d’une fonction :

data_type_of_returned_value"'void' si elle retourne nothing"functionName(parameters) {}

la définition de fonction

}

Nous allons mettre en place une fonction qui affiche notre cercle et une autre fonction pour son mouvement (qui est, branlement) :

float x = 200 ;

float y = 200 ;

void setup() {}

Size(400,400) ;

Smooth() ;

}

{} void draw()

Background(255) ;

Display() ; appel d’une fonction

Move() ; appel de la fonction seconde

}

les fonctions

display() Sub {}

noStroke() ;

Fill(140) ;

ellipse(x,y,80,80) ;

}

move() Sub {}

x = x + random(-5,5) ;

y = y + random(-5,5) ;

}

Même si le code fait exactement la même chose qu’avant, regardez comment organisé la boucle draw() est maintenant ! Notez comment j’ai « appelée » ou « appelé » les fonctions respectives de dans la boucle de draw().

Fonctions peuvent avoir des « paramètres » trop. Paramètres sont allumées « titulaires de lieu » pour les valeurs que vous pouvez « passer » à une fonction. En recevant les valeurs, la fonction peut les calculer conformément à la façon dont vous l’avez défini. Par exemple, voici une fonction qui prend deux paramètres (x et y) et utilise les arguments passés à rendre cette forme bizarre :

void drawShape (float x, float y) {}

noStroke() ;

Fill(140) ;

ellipse(x,y,80,80) ;

ellipse(x-151,y+2,44,44) ;

Fill(68,234,66) ;

Rect(x-131,y-5,92,18) ;

}

Voir l’image ci-dessus (première photo).

Dans la fonction ci-dessus, nous avons utilisé x et y comme référence et définir les paramètres pour toutes les autres formes « relatives » à x et y. Cette technique est appelée « positionnement relatif ». Par exemple, si référence x est 400, et la valeur x de la forme est 89, puis la position de cette forme par rapport à la référence x est "x-311" (400-89 = 311).

Fonctions peuvent aussi « retourner » des valeurs, mais c’est pour un autre jour !

Un scénario de classe et un objet :

Comme nous l’avons vu tout à l’heure, fonctions de susciter un certain niveau d’organisation à notre code. Cependant, en utilisant des objets dans notre code est une stratégie d’organisation efficace jusqu'à maintenant.

Un objet essentiellement lie ensemble des données (variables) et functionality(functions) d’une entité donnée dans un emballage soigné. Afin de créer des objets, il faut un blue-print pour elle. C’est ce qu’on appelle la classe.

Au lieu de baratiner sur tous les concepts plus complexes, nous allons créer une classe pour générer des objets jiggly circle :

classe Circle {}

variables de classe (également appelées variables d’instance)

float x ;

float y ;

flotteur d ;

c de couleur ;

le constructeur de l’objet

Cercle (float x, float y, float d, couleur c) {}

This.x = x ;

This.y = y ;

This.d = d ;

This.c = c ;

}

les méthodes

display() Sub {}

noStroke() ;

Fill(c) ;

ellipse(this.x,this.y,this.d,this.d) ;

}

void jiggle() {}

This.x = this.x + random(-2,2) ;

This.y = this.y + random(-2,2) ;

}

}

Choses à noter :

  1. Il n’y a cette chose bizarre dans le code a appelé le « constructeur ». Le constructeur est la fonction qui crée un objet, en conjonction avec le mot-clé « new » (plus sur cela dans un peu). La définition de constructeur doit contenir du code sur la façon de construire des objets. Le nom du constructeur doit être le même que le nom de la classe.
  2. le mot clé « this » est utilisé pour accéder aux variables du appartient à la classe et que la classe ! Vous pouvez voir que j’ai utilisé les mêmes noms de variables pour les variables de classe et les paramètres du constructeur. En utilisant « ce », j’ai autoriser le traitement d’établir une distinction entre les deux. Par conséquent, "this.x = x" indique : stocker la valeur passée à x, tout en faisant l’objet de « this.x », la variable de classe.
  3. Les mêmes fonctions que nous avons vu avant est utilisé dans la classe. Une fonction associée à une classe est appelée une « méthode ».

C’est une bonne pratique de tenir vos Classes dans un fichier séparé, afin que votre code principal semble soigné. Vous pouvez faire cela en créant un second onglet sur l’environnement de traitement. Notez, nom de l’onglet doit être identique à celui de la classe. (voir photo ci-dessus ; troisième photo).

À l’aide de la classe pour fabriquer des objets :

déclarer des objets

Cercle c ;

Cercle d ;

void setup() {}

Size(400,400) ;

Smooth() ;

l’initialisation d’objets

c = new Circle(200,200,80,color(100)) ;

d = new Circle(344,355,20,color(62,177,137)) ;

}

{} void draw()

Background(255) ;

l’utilisation d’objets

c.Display() ;

c.Jiggle() ;

d.Display() ;

d.Jiggle() ;

}

voir les résultats ci-dessus (seconde photo).

Déclarer des objets - tout en déclarant des objets, il est plus facile d’envisager la classe comme un type de données nouvellement créée. « Cercle c » signifie donc, déclarez une variable « c » de type « Cercle » (comparer avec « int c »).

Lors de l’initialisation des objets - voir comment nous avons appelé le constructeur via le mot clé "new" ? Étant donné que la définition de constructeur de cercle avait des paramètres, il faut passer des arguments pour initialiser l’objet. Ces arguments sont assignés aux variables de l’objet (x, y, c etc..). Cela nous permet d’utiliser la même classe pour créer des objets avec des propriétés différentes. Dans l’exemple ci-dessus, d et c cercles sont différents les uns des autres en taille et en couleur.

En outre, Notez que les objets sont initialisés à setup(). C’est logique, puisque nous n’avons pas l’intention de l’initialisation de l’objet même maintes et maintes fois dans draw().

Utilisation d’objets - nous utilisons le point "." opérateur pour accéder aux méthodes de l’objet, comme indiqué ci-dessus.

Articles Liés

Prothèse avec sensibilité à la température

Prothèse avec sensibilité à la température

notre projet est une actualisation à la prothèse mécanique ancienne qui existent maintenant un jour. Il y a beaucoup de prothèse sur le marché qui aide à récupérer la partie mécanique de votre main, mais il n'y a aucune prothèse capable de revenir vo
Jauge de température ambiante avec un servo

Jauge de température ambiante avec un servo

Un projet électronique et mécanique très facile à faire est de créer un style "steampunk" d'indicateur de température d'un moteur de microservo. Ce projet a été rendu pour surveiller une gamme étroite de températures ambiantes, de 66 degrés F à
Arduino et LM35 à base de contrôleur de température pour les débutants

Arduino et LM35 à base de contrôleur de température pour les débutants

IntroductionVérifiez la température de votre propre système de surveillance à l'aide du capteur de température analogique Arduino et LM35. Il s'agit d'un projet de bricolage très simple pour les débutants de l'Arduino. Toutes les étapes et les exigen
Solar Powered capteur de température

Solar Powered capteur de température

La méthode scientifique nous permet d'étudier l'univers et ses phénomènes naturels. Grâce à la collecte et l'analyse des données, nous découvrons des tendances historiques pour faire des prédictions sur les événements futurs. Un tel phénomène qui aff
Capteur de température sans fil simple mise à jour de site web avec imp électrique et thermistance

Capteur de température sans fil simple mise à jour de site web avec imp électrique et thermistance

[Edit 2014] L'urbaniste qui a été utilisé par Imp électrique n'est plus utilisé et n'est pas disponible plus. [/ Edit]Il s'agit d'un petit projet pour vous aider à démarrer avec l'imp électrique et une thermistance, ainsi vous pouvez voir comment vou
Aquaponics : EnvDAQ mise à jour avec sonde de température de l’eau (Grow lit DAQ)

Aquaponics : EnvDAQ mise à jour avec sonde de température de l’eau (Grow lit DAQ)

le code source de l'application en nuage et Arduino croquis pour ce tutoriel sont disponibles ici.Vous pouvez également trouver ce tutoriel sur notre blog dans un format plus lisible (Figures inline).L'acquisition de données environnementales est un
PICAXE - capteur de température DS18B20 pour LCD

PICAXE - capteur de température DS18B20 pour LCD

ceci est mon premier dessin Picaxe, projet de programme et de la construction. Ce projet connecte un capteur DS18B20 à un LCD parallèle en utilisant un PICAXE 20 X 2. Il mesure la température de la pièce et lit les à l'écran chaque seconde ou deux. C
Framboise enregistreur PI et DHT22 la température et l’humidité avec lampe et envoyer des avertissements

Framboise enregistreur PI et DHT22 la température et l’humidité avec lampe et envoyer des avertissements

Il s'agit d'un enregistreur de température et d'humidité Raspberry Pi basé qui utilise 2 capteurs de Adafruit DHT22 (fonctionne aussi avec 1) pour les mesures. Vous pourriez avoir vu le même type d'instructions avant, mais celui-ci a une torsion. Il
Affichage de température direct Edison Intel

Affichage de température direct Edison Intel

Salut là tout le monde !Il a été longtemps depuis que j'ai rien posté ici, et je pensais que la nouvelle version de Intel ITO serait une excellente idée de créer une instructable.-En quoi consiste l'ITO ?L'ITO est synonyme de « Internet des objets »,
Plaque à souder à l’aide de soudure de basse température

Plaque à souder à l’aide de soudure de basse température

Il s'agit d'un guide sur la façon d'assembler les appareils SMT sur un PCB de PET souple peu coûteux. Nous utilisons une plaque chauffante pour souder des dispositifs SMT aux substrats PET à l'aide de basse température de soudure étain Bismuth.Soudag
Régulateur de température de précision

Régulateur de température de précision

p.MsoNormal, li. MsoNormal, div. MsoNormal {marge : 0,0 à; font-size : 12.0pt ; font-family : Arial;} p.MsoBodyText, li. MsoBodyText, div. MsoBodyText {marge : 0,0 ; text-align : justifier ; font-size : 9.0pt ; font-family : Arial;} div. Section1 {pa
Raspberry Pi contrôlée température ambiante suivi avec Gnuplot image sortie et email alerte capacité

Raspberry Pi contrôlée température ambiante suivi avec Gnuplot image sortie et email alerte capacité

là où je travaille, il n'y a une place très importante qui abrite beaucoup d'ordinateurs. La température ambiante de cette pièce doit être très cool pour optimiser les performances de ces systèmes.On m'a demandé de venir avec un système de surveillan
Portable Arduino Uno température et capteur d’humidité avec écran LCD

Portable Arduino Uno température et capteur d’humidité avec écran LCD

Hey tout le monde. J'ai acquis beaucoup de bonnes idées d'instructables au fil des ans. Comme il s'agit de mon premier ' ible, je me dis que je voudrais partager quelque chose que j'ai fait aussi bien. Je suis cela concluez le plein spectre Laser con
Température ambiante avec Pi

Température ambiante avec Pi

Bonjour tout le monde.Aujourd'hui, j'ai un petit projet que j'ai fait à l'aide de la Raspberry Pi. Ce projet est un thermomètre qui indique la température de la pièce toutes les 5 minutes, s'allume une LED et écrit ensuite la température dans un fich