<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	>

<channel>
	<title>poo Archives - Garikover.com</title>
	<atom:link href="https://garikover.com/tag/poo/feed/" rel="self" type="application/rss+xml" />
	<link>https://garikover.com/tag/poo/</link>
	<description>Le monde d&#039;un Paladin</description>
	<lastBuildDate>Mon, 01 Aug 2016 07:11:21 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.6.2</generator>

<image>
	<url>https://garikover.com/wp-content/uploads/image-facebook.png</url>
	<title>poo Archives - Garikover.com</title>
	<link>https://garikover.com/tag/poo/</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">109537588</site>	<item>
		<title>Tuto POO en Vb.NET : La suite</title>
		<link>https://garikover.com/tuto-poo-en-vb-net-la-suite/</link>
					<comments>https://garikover.com/tuto-poo-en-vb-net-la-suite/#respond</comments>
		
		<dc:creator><![CDATA[Garikover]]></dc:creator>
		<pubDate>Mon, 03 Feb 2014 14:50:39 +0000</pubDate>
				<category><![CDATA[Programmation]]></category>
		<category><![CDATA[poo]]></category>
		<category><![CDATA[vb.net]]></category>
		<guid isPermaLink="false">http://paladin-world.com/?p=5091</guid>

					<description><![CDATA[<p>Après un premier tuto assez simple, enfin j&#8217;espère, on sait déclarer et initialiser une classe, utiliser ses données et un peu les modifier. Nous allons maintenant voir comment accroître la puissance de la POO via diverses méthodes. Class Imbriquées Pour commencer, on va reprendre l&#8217;exemple de notre classe société. J&#8217;enlève volontairement le contenu de New() [&#8230;]</p>
<p>Cet article <a href="https://garikover.com/tuto-poo-en-vb-net-la-suite/">Tuto POO en Vb.NET : La suite</a> est apparu en premier sur <a href="https://garikover.com">Garikover.com</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Après un <a title="Tuto POO en Vb.NET : La base" href="https://garikover.com/tuto-poo-en-vb-net/" target="_blank">premier tuto</a> assez simple, enfin j&rsquo;espère, on sait déclarer et initialiser une classe, utiliser ses données et un peu les modifier. Nous allons maintenant voir comment accroître la puissance de la POO via diverses méthodes.<span id="more-5091"></span></p>
<h2>Class Imbriquées</h2>
<p>Pour commencer, on va reprendre l&rsquo;exemple de notre classe société. J&rsquo;enlève volontairement le contenu de New() car il ne sera pas nécessaire d&rsquo;y revenir et je considère que vous savez initialiser une class.</p>
<pre class="brush: vbnet; gutter: false">Public Class Societe
    &#039;Déclaration des variables
    Public Id As Integer = 0
    Public Nom As String = &quot;&quot;
    Public Adresse As String = &quot;&quot;
    Public CP As String = &quot;&quot;
    Public Ville As String = &quot;&quot;

    Sub New(ByVal id_societe As String)
        &#039;Initialisation de la class
    End Sub

End Class</pre>
<p>On admettra qu&rsquo;au delà de la fiche d&rsquo;identité d&rsquo;une société qui peut être intéressante, il nous faut également une classe Interlocuteur qui pourra contenir les informations de la personne concerné. Pour commencer une rajoute une class, rien de particulier là dedans.</p>
<pre class="brush: vbnet; gutter: false">Public Class Societe
    &#039;Déclaration des variables
    Public Id As Integer = 0
    Public Nom As String = &quot;&quot;
    Public Adresse As String = &quot;&quot;
    Public CP As String = &quot;&quot;
    Public Ville As String = &quot;&quot;

    Sub New(ByVal id_societe As Integer)
        &#039;Initialisation de la class
    End Sub

End Class

Public Class Interlocuteur
    &#039;Déclaration des variables
    Public Id As Integer = 0
    Public Nom As String = &quot;&quot;
    Public Prenom As String = &quot;&quot;
    Public Telephone As String = &quot;&quot;

    Sub New(ByVal id_interlocuteur As integer)
        &#039;Initialisation de la class
    End Sub

End Class</pre>
<p>Alors comment faire pour compléter la class Interlocuteur quand on appelle la class Société et les relier ? On va partir du principe qu&rsquo;on veut avoir les données du directeur pour chaque instance de Société qu&rsquo;on créé, et que dans la base de données des Sociétés il existe un champs id_directeur qui contient le numéro de l&rsquo;interlocuteur.</p>
<pre class="brush: vbnet; gutter: false">Public Class Societe
    &#039;Déclaration des variables
    Public Id As Integer = 0
    Public Nom As String = &quot;&quot;
    Public Adresse As String = &quot;&quot;
    Public CP As String = &quot;&quot;
    Public Ville As String = &quot;&quot;
    Public Directeur As Interlocteur

    Sub New(ByVal id_societe As Integer)
        &#039;Initialisation de la class
        Directeur = New Interlocuteur(id_directeur)
    End Sub

End Class

Public Class Interlocuteur
    &#039;Déclaration des variables
    Public Id As Integer = 0
    Public Nom As String = &quot;&quot;
    Public Prenom As String = &quot;&quot;
    Public Telephone As String = &quot;&quot;

    Sub New(ByVal id_interlocuteur As integer)
        &#039;Initialisation de la class
    End Sub

End Class</pre>
<p>Donc on a déclaré la class Interlocuteur comme variable de la class Société. Mais maintenant, comment on utilise les valeurs ?</p>
<pre class="brush: vbnet; gutter: false">Dim Client As New Societe()

Client.Nom &#039;Renvoie le nom de la société
Client.Directeur.Nom &#039;Renvoie le nom du Directeur</pre>
<p>Simple non ?</p>
<h2>Méthodes et attributs</h2>
<p>Derrière ces deux appellations se cachent une seule est unique chose, les fonctions. Dans une class, on peut déclarer une fonction (ou sub) qui sera appelée pour une action particulière. Alors pourquoi deux noms ? Simplement car : méthodes = private, attributs = public. Au final ça ne change pas grand chose sur leur utilisation si ce n&rsquo;est qu&rsquo;en « private », la fonctione ne sera pas accessible en dehors de la class.</p>
<p>Voici un exemple de fonction.</p>
<pre class="brush: vbnet; gutter: false">Public Class Societe
    &#039;Déclaration des variables
    Public Id As Integer = 0
    Public Nom As String = &quot;&quot;
    Public Adresse As String = &quot;&quot;
    Public CP As String = &quot;&quot;
    Public Ville As String = &quot;&quot;
    Public Directeur As Interlocteur

    Sub New(ByVal id_societe As Integer)
        &#039;Initialisation de la class
        Directeur = New Interlocuteur(id_directeur)
    End Sub

    Sub Sauvegarde(ByVal id_societe As Integer)
        &#039;Cette fonction sauvegarde les modifications dans la base de données
    End Sub

End Class</pre>
<p>Pour appeler ma sauvegarde c&rsquo;est très simple.</p>
<pre class="brush: vbnet; gutter: false">Client.Sauvegarde()</pre>
<p>Rien n’empêche de passer des paramètres bien sur donc la seule différence c&rsquo;est la manière dont on va appeler cette fonction.</p>
<h2>Conclusion</h2>
<p>C&rsquo;est la fin de ce tuto sur la POO en VB.Net. J&rsquo;espère que j&rsquo;ai été assez clair, n&rsquo;hésitez pas à poser des questions s&rsquo;il vous manque des éléments.</p>
<p>Cet article <a href="https://garikover.com/tuto-poo-en-vb-net-la-suite/">Tuto POO en Vb.NET : La suite</a> est apparu en premier sur <a href="https://garikover.com">Garikover.com</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://garikover.com/tuto-poo-en-vb-net-la-suite/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">5091</post-id>	</item>
		<item>
		<title>Tuto POO en Vb.NET : La base</title>
		<link>https://garikover.com/tuto-poo-en-vb-net/</link>
					<comments>https://garikover.com/tuto-poo-en-vb-net/#respond</comments>
		
		<dc:creator><![CDATA[Garikover]]></dc:creator>
		<pubDate>Mon, 27 Jan 2014 07:08:18 +0000</pubDate>
				<category><![CDATA[Programmation]]></category>
		<category><![CDATA[poo]]></category>
		<category><![CDATA[vb.net]]></category>
		<guid isPermaLink="false">http://paladin-world.com/?p=5078</guid>

					<description><![CDATA[<p>Le problème qu&#8217;on rencontre le plus souvent quand on souhaite apprendre un concept de programmation, c&#8217;est de trouver LE tuto qui montre tout ce qu&#8217;on doit savoir et surtout qui montre comment programmer sans avoir spécialement de grosses connaissances ou encore s&#8217;envahir l&#8217;esprit avec un vocabulaire trop pointu. Donc voici un tuto allégé sur la [&#8230;]</p>
<p>Cet article <a href="https://garikover.com/tuto-poo-en-vb-net/">Tuto POO en Vb.NET : La base</a> est apparu en premier sur <a href="https://garikover.com">Garikover.com</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Le problème qu&rsquo;on rencontre le plus souvent quand on souhaite apprendre un concept de programmation, c&rsquo;est de trouver LE tuto qui montre tout ce qu&rsquo;on doit savoir et surtout qui montre comment programmer sans avoir spécialement de grosses connaissances ou encore s&rsquo;envahir l&rsquo;esprit avec un vocabulaire trop pointu. Donc voici un tuto allégé sur la Programmation Orientée Objet en VB.NET.<span id="more-5078"></span></p>
<h2>Problématique</h2>
<p>Alors pourquoi ne pas se satisfaire des tutos déjà présent sur internet ?</p>
<p>Pour le simple et bonne raison que je les trouve surchargés, sans réel intérêt dans le sens ou il explique des principes de base sans exemple très parlant. J&rsquo;ai été amené à faire pas mal de recherche post-tuto pour savoir comment on faisait ceci ou cela, qui sont des principes de base, mais rien de simple à trouver. Donc je réalise ce tuto avec un exemple qui marche (puisque je l&rsquo;utilise réellement en programmation).</p>
<h2>La POO ?</h2>
<p>La Programmation Orientée Objet est présente dans plusieurs langages de programmation et a pour objectif de faciliter le traitement des données. Elle présente pas mal d&rsquo;avantages et peu d&rsquo;inconvénient.</p>
<p>Actuellement en programmation, quand on veut obtenir une valeur à partir d&rsquo;une base de données, on fait une requête est on traite les informations au cas par cas. Or un des principes de base est de ne jamais répéter plusieurs fois un code identique. Si on a besoin d&rsquo;un même bout de code plusieurs fois, on créé une fonction pour le remplacer, ce qui facilite la maintenance du code.</p>
<p>L&rsquo;idée de la POO est de centraliser la gestion des données et de faciliter leur exploitation grâce à une formulation plus explicite.</p>
<p>Si on compare l&rsquo;avant et l&rsquo;après POO :</p>
<ul>
<li>Avant : Une multitude de boite qu&rsquo;on doit ouvrir au pied de biche pour en modifier le contenu</li>
<li>Après : une commode avec une infinité de tiroir et une jolie clé toute simple pour modifier le contenu</li>
</ul>
<h2>Vocabulaire</h2>
<p>Oui j&rsquo;ai dit qu&rsquo;on n&rsquo;allait pas aborder de vocabulaire très poussé, mais il en faut un minimum.</p>
<ul>
<li>La POO s&rsquo;articule autour des Class. Pour faire simple, il s&rsquo;agit d&rsquo;une fonction en plus poussée (c&rsquo;est notre commode).</li>
<li>Ensuite, chaque Class possède ses attributs qui ne sont que des variables avec une syntaxe particulière (ce sont nos tiroirs).</li>
<li>Les propriétés qui sont là pour accéder aux tiroirs attributs et les modifier (la clé du tiroir).</li>
<li>Et pour finir, les méthodes qui sont des sous-fonctions (c&rsquo;est l&rsquo;équivalent de la personne qui change le contenu des tiroirs).</li>
</ul>
<h2>Code</h2>
<h3>Déclaration de la Class</h3>
<p>Avant toute chose, histoire d&rsquo;avoir un code clair, on ouvre un nouveau module de Class et on la déclare. Cette syntaxe ne doit pas vous être étrangère car c&rsquo;est de cette manière qu&rsquo;est déclaré une UserForm.</p>
<pre class="brush: vbnet; gutter: false">Public Class MaClasse

End Class</pre>
<p>Alors ça peut paraître très simple, mais c&rsquo;est parce que ça l&rsquo;est. Mais on va entrer tout de suite dans le vif du sujet avec une classe assez simple à propos qui contient les informations d&rsquo;une société.</p>
<h3>Ajout des attribus (propriétés)</h3>
<p>Là on rajoute les attributs de la classe. Jusque là rien de bien compliqué puisqu&rsquo;on utilise la même méthode pour déclarer une variable Public.</p>
<pre class="brush: vbnet; gutter: false">Public Class Societe
    Public Nom As String
    Public Adresse As String
    Public CP As String
    Public Ville As String

End Class</pre>
<p>Jusque là ce ne sont que des choses déjà vu et connu mais qu&rsquo;on ne remarque pas forcément (voir ci-dessous).</p>
<h3>Le constructeur</h3>
<p>Tout comme une fonction, une classe s&rsquo;initialise quand on l&rsquo;appelle. Alors tout l’intérêt de cet appel est qu&rsquo;il peut intégrer des paramètres pour adapter les variables.</p>
<pre class="brush: vbnet; gutter: false">Public Class Societe
    Public Nom As String
    Public Adresse As String
    Public CP As String
    Public Ville As String

    Sub New(&lt;paramètres comme=&quot;&quot; n&#039;importe=&quot;&quot; quelle=&quot;&quot; fonction=&quot;&quot;&gt;)

    End Sub

End Class</pre>
<p>Vous avez déjà vu ce genre de structure avant, quand vous utilisez une Form dans un projet et des variables Public.</p>
<pre class="brush: vbnet; gutter: false">Public Class Form1

    Public Stockage As String

    Private Sub MaSub()

    End Sub

End Class</pre>
<p>Histoire de faire avancer le schmilblick, on va voir immédiatement comment utiliser le Constructeur en lui passant un paramètre. Ici, on va passer un identifiant unique de la société. On va également prévoir le cas où la base de donnée ne contient pas de société avec cet identifiant et utiliser des valeurs par défaut. Ça évite une erreur en cas d&rsquo;utilisation d&rsquo;une variable sans valeur.</p>
<pre class="brush: vbnet; gutter: false">Public Class Societe
    Public Id As Integer = 0
    Public Nom As String = &quot;&quot;
    Public Adresse As String = &quot;&quot;
    Public CP As String = &quot;&quot;
    Public Ville As String = &quot;&quot;

    Sub New(ByVal id_societe As String)
        &#039;On transforme id_client en membre de la classe
        Id = id_client
        Dim Dr As OleDbDataReader
        Dim Command As OleDbCommand
        Connection.Open()
        Command = New OleDbCommand(&quot;SELECT * FROM SOCIETE WHERE id_societe = &quot; &amp; id_societe &amp; &quot;;&quot;, Connection)
        Dr = Command.ExecuteReader
        While Dr.Read()
            Nom = Dr(&quot;nom&quot;).ToString
            Adresse = Dr(&quot;adresse&quot;).ToString
            CP = Dr(&quot;code_postal&quot;).ToString
            Ville = Dr(&quot;ville&quot;).ToString
        End While
        Connection.Close()
    End Sub

End Class</pre>
<h2> L&rsquo;utilisation dans le code</h2>
<p>Maintenant qu&rsquo;on a vu comment ça fonctionne, on va voir comment exploiter ces résultats.</p>
<pre class="brush: vbnet; gutter: false">&#039;Création d&#039;une instance &quot;client&quot;
Dim client As New Societe(id_client)</pre>
<p>Cette simple ligne permet d&rsquo;instancié le client. Donc pour reprendre l&rsquo;exemple de la commode à tiroir, <strong>client</strong> est notre commode. Donc comment utiliser ses tiroirs ? En fait c&rsquo;est très simple.</p>
<pre class="brush: vbnet; gutter: false">&#039;Création d&#039;une instance &quot;client&quot;
Dim client As New Societe(id_client)

&#039;On place le nom du client dans une TextBox
TextBox1.Text = client.Nom

&#039;On change le contenu d&#039;une valeur
client.Ville = TextBox2.Text</pre>
<p>Vous comprenez maintenant ? C&rsquo;est simple, propre, presque beau. Mais on peut encore allé bien plus loin en multipliant les instances. Si je souhaite avoir deux commodes, l&rsquo;une étant un client l&rsquo;autre un fournisseur&#8230;</p>
<pre class="brush: vbnet; gutter: false">&#039;Création d&#039;une instance &quot;client&quot;
Dim client As New Societe(id_client)

&#039;Création d&#039;une instance &quot;fournisseur&quot;
Dim fournisseur As New Societe(id_fournisseur)</pre>
<p>Le client et le fournisseur étant deux sociétés, ils contiennent les mêmes informations : Nom de société, adresse, ville, code postal&#8230; Donc ma class société est en fait un archétype que je peux remplir.</p>
<h2>Shared !</h2>
<p>Le dernier point de ce tuto est l&rsquo;utilisation de l&rsquo;option Shared. Cette option permet d&rsquo;utiliser la variable à laquelle elle a été rattachée sans avoir à instancié la class.</p>
<p>L&rsquo;exemple ci-dessous devrait vous éclairer.</p>
<pre class="brush: vbnet; gutter: false">Public Class Societe
    Public Shared Nom As String
    Public Ville As String

    Sub New()
    End Sub

End Class

Sub Instance()
    &#039;Initialise la class sans nom
    TextBox1.Text = Societe.Nom &#039;Fonctionne
    TextBox2.Text = Societe.Ville &#039;Ne Fonctionne Pas

    &#039;Fonctionne
    Dim client As New Societe(id)
    TextBox2.Text = client.Ville
End Sub</pre>
<h2>Conclusion</h2>
<p>C&rsquo;est la fin de la première partie du tuto POO. Pour le moment vous savez déclarer une Class, l&rsquo;initialiser via un <strong>constructeur</strong> et exploiter ses données.</p>
<p>Dans la prochaine partie, on verra les class imbriquées et les méthodes (si j&rsquo;en ai parlé au début).</p>
<p>Cet article <a href="https://garikover.com/tuto-poo-en-vb-net/">Tuto POO en Vb.NET : La base</a> est apparu en premier sur <a href="https://garikover.com">Garikover.com</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://garikover.com/tuto-poo-en-vb-net/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">5078</post-id>	</item>
	</channel>
</rss>
