7
votes

Méthode de classe VS Méthodes principales

Je suis plutôt confus par le concept de faire une classe avec des méthodes et d'avoir une méthode principale avec des méthodes en dessous.

Quelles sont exactement les différences ici? Comment ça va aller à la fois que l'inverse? Quelles sont les situations appelant une méthode sous le principal plutôt que par une classe?

Cela m'aiderait à comprendre un projet - un jeu de Craps de base qui contiendra une classe de tireur, une classe Die et une classe Craps (qui contient apparemment le principal).


0 commentaires

6 Réponses :


4
votes

essentiellement c'est une question de séparation. Vous créez des cours pour une réutilisation. Si tout était dans la classe principale, votre code ne serait pas maintenu. La classe principale est utilisée comme point de départ pour votre application. Si vous avez tout fait dans la classe principale, vous ne seriez pas en mesure de profiter de toute cette programmation orientée objet vous offre. Vous en apprendrez plus à ce sujet lorsque vous entrez dans le cours. Mais fondamentalement, chacune des classes que vous créerez aura une responsabilité unique. Même la classe principale, dont la responsabilité consiste à exécuter le programme.

bonne chance avec votre classe en passant. Peut-être que cela vous donnera un avantage dans les casinos.


0 commentaires

5
votes

Vous n'avez pas de méthodes "principales". Toutes les méthodes sont une méthode de classe, la seule différence est que les méthodes «statiques» (VG, principale) n'ont pas besoin de l'instanciation d'un nouvel objet (via la «nouvelle» déclaration) pour les utiliser.

En d'autres termes: xxx pré>

vous pouvez faire p> xxx pré>

mais pour utiliser myInstanCemethod, vous devez créer un objet p>

myClass.myStaticMethod();


2 commentaires

Alors pourquoi je ne voudrais pas simplement que tout soit statique alors? Quel est le but d'avoir à créer un objet vs simplement en disant «votre statique, assez bon»? (Peut-être que c'est trop débutant d'une question, et je devrais juste attendre plus tard dans des classes pour le savoir)


statique signifie que la valeur reste la même pour différents objets de la même classe. Chaque objet représente une version d'une classe et chaque version est différente de l'autre. Dans chacune de ces versions, vous pourriez avoir une distion constante pour une classe citoyenneté offrira une nationalité de chaîne statique vairable = "américaine" qui restera la même chose pour chaque citoyenofamerica



3
votes

Le point d'entrée d'une application Java est-il principal: xxx

Cette méthode diffère des autres de la manière dont il est:

  1. le point d'entrée de votre application, donc ce sera le premier appelé méthode et initialisation de base des choses devraient être faites ici.
  2. c'est un statique -method qui le rend accessible sans créer de exemple de la classe qui le tiennent.

    Ce statique est le mieux illustré comme suit: xxx

    une application écrite en Java n'aura normalement qu'un seul -Method, qui déclare le point sur lequel l'application démarre d'abord.

    Si vous souhaitez faire des trucs avec des variables, des objets, etc. Vous voudrez créer vos propres méthodes / classes, mais ils ne seront pas Méthodes principales.


0 commentaires

1
votes

Je suis sûr que certains des autres gars ici seront en mesure d'expliquer cela beaucoup mieux que je ne le peux, mais je vais lui donner un coup.

Ainsi, comme vous le savez, votre méthode principale est le type de point d'entrée à votre programme. C'est la première chose exécutée. Vous pouvez ajouter d'autres méthodes dans la même classe, mais ces méthodes sont des méthodes statiques, car vous ne pouvez pas instancier une classe qui en a la principale (au moins, je ne pense pas que vous puissiez; je ​​n'ai jamais réellement essayé). < / p>

Le but de faire une classe et de définir des méthodes est de pouvoir créer des objets hors de cette classe. Par exemple, dans votre cas, vous créez une classe de matrice. Vous pouvez ensuite créer des objets démesurés de cette classe. Pensez à une classe comme une sorte de modèle ou de moisissure que vous créez des objets de. Une fois que vous avez créé ces objets, ils ont chacun leurs propres membres de données (variables définies dans la classe). Disons dans votre classe de matrice que vous avez définie deux variables, Die1 et Die2, chaque objet de matrice que vous créez aura une variable Die1 et Die2, mais chaque objet de matrice peut contenir des valeurs différentes pour ces variables.

Maintenant, indiquez que vous créez une méthode dans la classe de matrice qui modifie ces variables (méthode d'un setter) et permet d'appeler IT Public Void SetDie1 (Valeur int) alors vous pouvez modifier la valeur du Die1 Variable en appelant cette méthode sur l'objet matrice avec quelque chose comme mydieObject.setdie1 (3) .

Pour mettre cela tout à fait, si vous ne mettez pas de méthodes dans la même classe que votre méthode principale, vous ne seriez pas en mesure d'avoir plusieurs objets créés à partir de la même classe.

Cela peut être un concept délicat pour comprendre au début, mais il sera tout à fait clarifier rapidement lorsque vous en apprendrez plus. J'espère que cela vous aidera!


0 commentaires

2
votes

Tout d'abord, la méthode ne peut pas avoir une autre méthode à l'intérieur. Chaque méthode doit faire partie d'une classe. La différence entre une méthode principale (en fait la méthode principale dont vous parlez) et toute autre méthode est que l'exécution du programme commence à la méthode principale.

Une méthode représente une fonctionnalité ou un ensemble d'instructions regroupées. Et une classe est un ensemble de méthodes et de variables qui définissent une entité (comme tireur, matrice).

Vous aurez donc une classe de fichiers qui contiendra des méthodes qui ne contiendront que des méthodes spécifiques à matrices, une classe de tireurs avec des méthodes spécifiques au tireur et une classe Craps, d'où le jeu commencera, qui utilise les méthodes de la matrice et classes de tir pour compléter le jeu.


0 commentaires

0
votes

La méthode principale

Il s'agit de la seule méthode requise pour exécuter une application Java. La méthode doit avoir une signature très spécifique Public Static Void Main (String [] Args) Code>. La raison pour laquelle il a besoin de cette signature spécifique est parce que la machine virtuelle Java (JVM) doit le trouver afin d'exécuter votre programme. La JVM est que Java Runtime "Thingy" vous installez sur votre ordinateur pour exécuter des programmes. Plus correctement, l'environnement Java Runtime (JRE) contient le JVM. La chaîne [] args code> est 0 ou plusieurs arguments La méthode accepte de l'invite de commande lors de l'exécution d'un programme. Des programmes simples ne nécessitent souvent aucun argument de l'invite de commande. P>

Qu'est-ce qui pourrait confondre les programmeurs Java Débutant, est qu'il semble que de nombreux projets disposent de méthodes principales dans chaque .java fichier. Ce n'est pas nécessaire. Ceci est fait pour que chaque classe puisse être gérée de manière isolée de ses dépendances. Dans un projet (application), une seule classe est nécessaire pour avoir une méthode principale. P>

Autres méthodes h2>

Méthodes autres que la méthode principale forte> est facultative. Si vous voulez, vous pouvez placer 100% de votre logique de programme à l'intérieur de la principale. Mais, vous pouvez comprendre le problème avec cela. Si vous faites cela, votre code ne sera capable que de faire une séquence d'étapes très spécifique. De retour dans les jours précédant la programmation modulaire, c'était comme ça que c'était fait. Donc, si vous aviez besoin d'écrire un programme qui a fait quelque chose de légèrement différent, vous devez écrire un nouveau programme. Ce n'est pas très efficace, mais cela fonctionne toujours. Avance rapide quelques années après que la «programmation modulaire» est devenue une chose et vous devez maintenant écrire des programmes qui doivent réagir aux événements. Par exemple, un utilisateur plane la souris sur un bouton. Le problème des événements est que les événements sont imprévisibles. Non seulement vous ne savez pas que lorsque les événements se produiront, mais aussi vous ne pouvez pas prédire l'ordre dans lequel ils se produiront. Par conséquent, avoir toute la logique à l'intérieur d'une seule fonction (c'est-à-dire principale) ne fonctionnera pas et la compilation d'une séquence "différente" d'étapes internes à l'intérieur peut ne pas fonctionner aussi parce que vous ne pouvez pas prédire le moment et comment. P>

Méthodes vous permettent d'encapsuler de très petites unités d'exécution dans un ordre prescrit. Les hypothèses sont que, chaque fois qu'une situation l'appelle, la même séquence d'étapes doit être exécutée. Donc, vous modularisez votre code et que vous avez extraire ces petites séquences que vous savez seront toujours exécutées dans cet ordre et le mettre dans une "méthode" afin que vous puissiez appeler cette séquence d'étapes lorsque j'avais besoin. P>

Exemple H2>

Programme simple sans arguments de ligne de commande p> xxx pré>

Lorsque vous exécutez l'unité compilée de l'invite de commande, vous allez taper java myprogram code > et dans la console, vous verrez "Hello World!" p> xxx pré>

Toutefois, dans le programme ci-dessus, si vous ne fournissez pas un argument, il organisera une exception lorsque exécuter. Mais si vous passez au moins un argument, il affichera le tout premier argument et ignorera le reste. Par exemple, Java MyProgram Hector FontaneZ CODE> affichera "Hello Hector" P>

sur les deux exemples, le JVM appelé la méthode code> principale p >

public class MyProgram {
    public static void main(String[] args) {
       showGreeting("Hello " + args[0]);
    }
    public static void showGreeting(String greeting) {
        System.out.println(greeting);
    }
}


0 commentaires