Si vous avez envie de lire, ici, est "Mon introduction à l'OO méthodes"
L'idée derrière le paradigme Orienté Objet est de "menace", le logiciel est composé de .. bien "objets". Les objets dans le monde réel ont des propriétés, par exemple si vous avez un Employé, l'employé a un nom, un id d'employé, une position, il appartient à un département, etc. etc.
L'objet également de savoir comment traiter avec ses attributs et d'effectuer certaines opérations sur celles-ci. Disons que si nous voulons savoir ce qu'un employé est en train de faire maintenant, nous voudrions demander à lui.
employe whatAreYouDoing.
"WhatAreYouDoing" est un "message" envoyé à l'objet. L'objet ne sait comment répondre à cette questions, il est dit qu'il a une "méthode" pour résoudre la question.
Donc, la façon dont les objets ont pour exposer son comportement sont appelées méthodes. Les méthodes sont donc l'artefact, objet de "faire" quelque chose.
D'autres méthodes sont possibles
employee whatIsYourName
employee whatIsYourDepartmentsName
etc.
Les fonctions dans l'autre main, sont des moyens d'un langage de programmation a pour calculer certaines données, par exemple, vous pourriez avoir la fonction addValues( 8 , 8 ) qui renvoie 16
// pseudo-code
function addValues( int x, int y ) return x + y
// call it
result = addValues( 8,8 )
print result // output is 16...
Depuis la première populaires langages de programmation ( fortran, c, pascal ) ne couvre pas le paradigme OO, elle ne fait appel à ces artefacts "fonctions".
par exemple la fonction précédente en C serait:
int addValues( int x, int y )
{
return x + y;
}
Il n'est pas "naturel" pour dire qu'un objet a une "fonction" pour effectuer une action, parce que les fonctions sont plus liées à des objets mathématiques, tandis qu'un Employé a peu de mathématiques, mais vous pouvez avoir des méthodes qui font exactement la même chose que les fonctions, par exemple en Java, ce serait l'équivalent addValues fonction.
public static int addValues( int x, int y ) {
return x + y;
}
Semble familier? C'est parce que Java a ses racines sur le C++ et C++ sur C.
À la fin, c'est juste un concept, dans la mise en œuvre, ils peuvent regarder la même chose, mais dans le OO documents qui sont de la méthode appelée.
Heres un exemple de l'ex-Employé de l'objet en Java.
public class Employee {
Department department;
String name;
public String whatsYourName(){
return this.name;
}
public String whatsYourDeparmentsName(){
return this.department.name();
}
public String whatAreYouDoing(){
return "nothing";
}
// Ignore the following, only set here for completness
public Employee( String name ) {
this.name = name;
}
}
// Usage sample.
Employee employee = new Employee( "John" ); // Creates an employee called John
// If I want to display what is this employee doing I could use its methods.
// to know it.
String name = employee.whatIsYourName():
String doingWhat = employee.whatAreYouDoint();
// Print the info to the console.
System.out.printf("Employee %s is doing: %s", name, doingWhat );
Output:
Employee John is doing nothing.
La différence est alors sur le "domaine" où il est appliqué.
AppleScript ont l'idée de "langue naturelle" matphor qui , à un moment OO avait. Par exemple Smalltalk. J'espère que cela peut être raisonnable, plus facile pour vous de comprendre les méthodes des objets après la lecture de ce.
REMARQUE: Le code n'est pas compilé, juste pour servir d'exemple. N'hésitez pas à modifier le post et ajouter Python exemple.