53 votes

La différence entre "public" et "public statique" ?

Qu'est-ce que static C'est-à-dire ?

Je sais public signifie qu'il est possible d'y accéder depuis l'extérieur de la classe, et private seulement de l'intérieur de la classe

45voto

BillThor Points 3319

Statique signifie que l'on peut y accéder sans avoir à instancier une classe. C'est une bonne chose pour les constantes.

Les méthodes statiques ne doivent avoir aucun effet sur l'état de l'objet. Elles peuvent avoir des variables locales en plus des paramètres.

43voto

Cristian David Points 471

public : Les objets déclarés publics sont accessibles partout.

protégé : Protégé limite l'accès aux héritages et aux parents (et à la classe qui définit l'élément).

privé : Privé limite la visibilité uniquement à la classe qui définit l'élément.

statique : Une variable statique n'existe que dans la portée d'une fonction locale, mais elle ne perd pas sa valeur lorsque l'exécution du programme quitte cette portée.

final : Les mots-clés finaux empêchent les classes enfant de remplacer une classe en préfixant la définition par final. Si la classe elle-même est est définie comme finale, elle ne peut pas être étendue.


A côté de PHP :

transitoire : Une variable transitoire est une variable qui ne peut pas être sérialisée.

volatile : Une variable qui pourrait être modifiée simultanément par plusieurs plusieurs threads doit être déclarée volatile. Les variables déclarées volatiles ne seront pas optimisées par le compilateur parce que leur valeur peut changer à tout moment.

17voto

bensiu Points 6306

De http://php.net/manual/en/language.oop5.static.php

Déclarer des propriétés ou des méthodes de classe comme statiques les rend accessibles sans avoir besoin d'une instanciation de la classe. Une propriété déclarée comme static ne peut pas être accessible avec une objet de classe instancié (bien qu'une méthode statique le peut).

5voto

zloctb Points 531

Un exemple : lorsque l'on utilise le static nous ne pouvons pas utiliser le mot-clé $this

class Foo {
    private $foo='private';

    private function priv_func() {
        echo 'priv_method';
    }

    public static function get() {
        echo $this->foo;
        $this->priv_func();
    }
}

$obj = new Foo();
$obj->get();

Erreur fatale : Utilisation de $this en dehors du contexte de l'objet dans ( )

0voto

Usha Bhat Points 11

Ejemplo:

public class Methods_Test1 
{   
    public static void Display(String Name)
    {
        System.out.println("Hello There " + Name);
        System.out.println("I am from Display method");
    }

    public static void main(String[] args) 
    {
        Scanner sc = new Scanner(System.in);
        System.out.println("Enter name");
        String name = sc.next();
        Obj.Display(name);

    }

La méthode public static void Display(String name) est accessible en tant que méthode statique au sein de sa propre classe, ce qui permet d'y accéder sans créer d'objet de la classe, alors que la même méthode se comporte comme une méthode publique pour les classes extérieures, ce qui permet d'y accéder en créant un objet.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X