[Java] Syntaxe orientée objet --Classe / champ / méthode / portée

classe

Qualificatif

public

strictfp

Structure de classe

champ

Person.java


//Nom du type de chaîne,définition du champ age de type int
public class Person {
  public String name;
  public int age;
}

Main.java


public class Main {
  public String firstName;
  public String lastName;

  public static void main(String[] args) {
    //Instancier avec un nouvel opérateur
    var p1 = new Person();
    p1.name = "Yamada Taro";
    p1.age = 30;

    var p2 = new Person();
    p2.name = "Ichiro Suzuki";
    p2.age = 25;

    System.out.printf("%s(%d ans)\n", p1.name, p1.age); //Taro Yamada (30 ans)
    System.out.printf("%s(%d ans)\n", p2.name, p2.age); //Ichiro Suzuki (25 ans)
  }
}

Modificateur de champ

Champ par défaut

Méthode

Person.java


//afficher la définition de la méthode
public class Person {
  public String name;
  public int age;

  public String show() {
    return String.format("%s(%ré).", this.name, this.age);
    //return String.format("%s(%ré).", name, age);
  }
}

MethodBasic.java


//p.Accéder à la méthode show avec show
public class MethodBasic {

  public static void main(String[] args) {
    var p = new Person();
    p.name = "Yamada Taro";
    p.age = 30;
    System.out.println(p.show());
  }
}

Argument de méthode

//Argument réel
getBmi(60,1.7)

//Argument formel
public double GetBmi {double weight, double height){
    return  weight / (height * height )
}

Valeur de retour de la méthode

Person.java


public class Person {
  public String name;
  public int age;

  public void show() {
    System.out.printf("%s(%ré).\n", this.name, this.age);
  }
}

MethodVoid.java


public class MethodVoid {

  public static void main(String[] args) {
    var p = new Person();
    p.name = "Yamada Taro";
    p.age = 30;
    p.show();
  }
}

Modificateur de méthode

this

Surcharge de méthode

//Attendez-vous à une surcharge optimale selon le type
//Mais le résultat est
//CharSequence: Le printemps est Akebono
//CharSequence: l'été est la nuit
//CharSequence: Crépuscule en automne
public class OverloadAnti {

  public void show(String value) {
    System.out.println("String: " + value);
  }

  public void show(StringBuilder builder) {
    System.out.println("StringBuilder:" + builder);
  }
  public void show (StringBuffer buf) {
    System.out.println("StringBuffer:" + buf);
  }
  public void show(CharSequence cs) {
    System.out.println("CharSequence:" + cs);
  }
}
public class OverloadAntiClient {

  public static void main(String[] args) {
    var c = new OverloadAnti();
    var list = new CharSequence[] {
        "Le printemps est Akebono",
        new StringBuilder("L'été est la nuit"),
        new StringBuffer("L'automne est le crépuscule"),
    };

    for (var cs : list) {
      c.show(cs);
    }
  }
}

portée

Conflit entre le champ et la variable locale

Scop.java


//les données sont couvertes
public class Scope {
    //Données en tant que variable de champ
  public String data = "champ";

  public String show() {
    //Les données en tant que variable locale
    //Cette déclaration masque temporairement les variables de champ qui devraient être valides pour toute la classe
    var data = "local";
    return data;
    //Si vous souhaitez accéder aux variables de champ masquées
    // return this.data;
  }
}

ScopeBasic.java


public class ScopeBasic {

  public static void main(String[] args) {
    var s = new Scope();  
    //Variables locales de la méthode show
    System.out.println(s.show()); //local
    //Les variables locales n'affectent pas les variables de champ
    System.out.println(s.data); //champ
  }
}
//Exemple NG: str1 est valide à partir de la position déclarée
public class ScopeStrict {
  String str2 = str1; //Str2 ne peut pas être déclaré avant str1
  String str1 = “neko desu“;
}
public class ScopeStrict {
  public void show() {
    System.out.println(str); //neko desu
  }
  String str = “neko desu”;
}

StrictClient.java


public class StrictClient {
  public static void main(String[] args) {
    var s = new ScopeStrict();
    s.show();
  }
}

Bloquer la portée

public class ScopeBlock {
  public static void main(String[] args) {
    /*
    //Déclarez une variable d'étendue de bloc avec le même nom que la variable locale
    var data = "Portée locale";
    {
      var data = "Bloquer la portée"; //Erreur
    }
    */

    {
      var data = "Bloquer la portée";
    }
    //À ce stade, la variable d'étendue de bloc a été détruite
    var data = "Portée locale"; //OK
    System.out.println(data);
  }
}
//Portée de bloc parallèle
public class ScopeBlock {

  public static void main(String[] args) {
    {
      var data = "Bloquer la portée";
      System.out.println(data);
    }

    {
      var data = "Bloquer la portée 2";
      System.out.println(data);
    }
  }
}

Recommended Posts

[Java] Syntaxe orientée objet --Classe / champ / méthode / portée
Méthode Java
java (méthode)
[Java] Syntaxe orientée objet - Méthode / argument de classe
Méthode Java
[Java] méthode
[Java] Orienté objet
[Java] méthode
[Java] Méthode d'instance, champ d'instance, méthode de classe, champ de classe, résumé du constructeur
FizzBuzz orienté objet (Java)
[Java] Résumé orienté objet_Partie 1
Référence de la méthode Java8
Portée de la variable Java (portée)
[Java] Syntaxe orientée objet --Constructeur
[Java] méthode forEach
Notions de base orientées objet (Java)
Portée de la variable Java
[Java] Résumé orienté objet_Partie 2
Portée de session Java
référence de la méthode java8
[Java] Méthode aléatoire
[Java] méthode de fractionnement
[Java] Syntaxe orientée objet --Package
[Débutant] Méthode / encapsulation de champ de classe Java (getter setter) [Note 25]
Méthode de connexion JAVA DB
Java Learning 2 (Apprenez la méthode de calcul)
Mémo d'apprentissage Java (méthode)
À propos de la liaison de méthode Java
A propos des méthodes de fractionnement (Java)
Etudier Java 8 (voir méthode)
Champ de type de classe Java
Programmation Java (méthode de classe)
[Java] Notes de méthode de base
Un moyen simple de vérifier la liste des méthodes / champs dans Java REPL
[Java] Nouvelle méthode de génération de threads (2)
À propos de la condition de décision de la méthode Java GC
Mémo de la méthode d'étude Java Silver
Créer une méthode java [Memo] [java11]
Orienté objet avec Strike Gundam (java)
Collection de méthodes de code de test Java
Résumé orienté objet par les débutants (Java)
[Java Silver] À propos de la méthode equals
Mémorandum des éléments majeurs de Java 3 (orienté objet)
[Java] Méthode d'implémentation du traitement du minuteur
[Java] Méthode de génération aléatoire (aléatoire)
Méthodes Java et surcharges de méthodes
Avantages de la méthode statique Java
[Java Silver] Comment générer un tableau
[Java] Nouvelle méthode de génération de threads (1)