CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Questions POO

fuitebas2015
fuitebas2015
Niveau 8
27 juin 2015 à 20:31:43

bonjour,
j'ai vraiment beaucoup de mal en lisant les cours de POO, peu importe le langage,et j'ai plusieurs questions à propos de plusieurs langages.

1) Une classe, c'est quoi ? et ça sert à quoi concretement ?

2) une structure, c'est quoi ? ça sert à quoi concretement ?

3) en c#, le mot "using", il veut dire quoi ? C'est une directive de pré-processeur ?

4) c'est quoi un constructeur/destructeur ? Et ca sert à quoi concretement ?

Aussi je m'y met en Swift, nouveau langage d'Apple, mais j'ai vraiment du mal

5) en swift (nouveau langage d'apple), voici le code de base


import Cocoa

@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate { 

    @IBOutlet weak var window: NSWindow!
    
    @IBOutlet weak var button: NSButton!
    
    @IBAction func button(sender: AnyObject) {
   
    }
    
    func applicationDidFinishLaunching(aNotification: NSNotification) {
        // Insert code here to initialize your application
        
    }

    func applicationWillTerminate(aNotification: NSNotification) {
        // Insert code here to tear down your application
    }

  
}

5.1) Ca veut dire quoi "@" devant "@NSApplicationMain" et devant "@IBOutlet"

5.2) Et @NSApplicationMain signifie quoi ? ca sert à quoi ?

5.3) "sender: AnyObject", ca veut dire quoi sender ? Et ca veut dire quoi anyobject ?

5.4) NSWindow! , pourquoi y'a un "!" ?

Merci par avance à ceux qui s'y connaissent :)

Message édité le 27 juin 2015 à 20:32:12 par fuitebas2015
Darkandgel
Darkandgel
Niveau 10
27 juin 2015 à 21:49:02

1) Une classe, c'est quoi ? et ça sert à quoi concretement ?

C'est un moule, avec lequel tu vas créer des objets. Un objet c'est un ensemble de valeurs (attributs) et de comportements (méthodes).

2) une structure, c'est quoi ? ça sert à quoi concretement ?

J'en ai jamais vu en POO, de ce que je me souviens de mes cours de C c'est juste en ensemble de données.
<Attention, je dis peut etre une connerie>

3) en c#, le mot "using", il veut dire quoi ? C'est une directive de pré-processeur ?

je passe, je ne code pas en C# et ce ot clef n'est pas present en java (ou du moins, je ne l'ai jamais rencontré)

4) c'est quoi un constructeur/destructeur ? Et ca sert à quoi concretement ?

Une méthode qui permet d'instance (cad de créer) un objet. Tu te souviens des classes qui correspondent a des moules ? Eh bien appeler le constructeur d'une classe, c'est dire que tu veux un objet qui vient de ce moule. Un destructeur détruit tes objets (libère la mémoire).

Pour la suite je ne fais pas de swift non plus, donc les réponses que je vais donner sont un peu piffées :

5.1) Ca veut dire quoi "@" devant "@NSApplicationMain" et devant "@IBOutlet"

Je suppose qu'il s'agit d'annotations permettant a un framework de faire des trucs magiques

5.2) Et @NSApplicationMain signifie quoi ? ca sert à quoi ?

Si j'ai bon a la question precedente, ça doit vouloir dire que cette méthode est le point d'entrée de ton prog (comme une méthode "main")

5.3) "sender: AnyObject", ca veut dire quoi sender ? Et ca veut dire quoi anyobject ?

sender : nom de ta variable
AnyObject : type de la variable.

Je suis a peu près sur de mon coup sur celle la

5.4) NSWindow! , pourquoi y'a un "!" ?

La je passe.

[Nolimitee]
[Nolimitee]
Niveau 7
30 juin 2015 à 03:13:10

Haptaro, je suis pas trop d'accord avec toi sur le fait que les structures ne sont pas trop "POO", du moins en C++.
Elles beneficient de pratiquement tous les mêmes avantages, mais pour moi leur utilité est quand t'as une classe qui doit tout avoir en public, par exemple quand ton objet hérite d'une classe et qu'elle n'a qu'un constructeur/destructeur, autant avoir une structure dans ce cas là : les structures sont public par défaut, contrairement au class.

Message édité le 30 juin 2015 à 03:13:31 par [Nolimitee]
Darkandgel
Darkandgel
Niveau 10
30 juin 2015 à 10:37:29

Un objet qui a tout en public... Ca sent la bad practice a plein nez.

jenaipasdenom
jenaipasdenom
Niveau 15
01 juillet 2015 à 00:05:30

Rien n'oblige tous les champs d'une structure à être publics hein. C'est juste la visibilité par défaut. C++ pourrait exister sans l'un ou l'autre que ça ne changerait pas grand chose. Perso y a deux cas où j'utilise des structures : POD et déclaration d'interfaces, mais c'est vraiment juste cosmétique comme choix.

Darkandgel
Darkandgel
Niveau 10
01 juillet 2015 à 10:40:51

Une structure, au final c'est juste un ensemble de variables, non ?
C'est a dire que c'est un objet sans comportement définis.
En POO ça n'existe pas, tu as uniquement des objets, c'est a dire des attributs ET des comportements.

Ou alors je me lourde completement sur le sens de structure

Pseudo supprimé
Pseudo supprimé 01 juillet 2015 à 11:55:28

Dans d'autre langage les structures permettent de faire de l'orienté objet en ayant des propriétés et des comportements ...

JeanCroutenard
JeanCroutenard
Niveau 10
01 juillet 2015 à 12:10:03

C'est pas parce qu'on peut le faire qu'on doit le faire

Ça c'est juste parce que ton langage est mal foutu :o))

Darkandgel
Darkandgel
Niveau 10
01 juillet 2015 à 12:14:50

Ou alors qu'il utilise un autre paradigme que celui que tu cherches a utiliser...

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de Jeux
  • Programmation
  • Création de sites web
  • Linux
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment