//Définissez la méthode de classe getTriangleArea pour la classe Figure
public class Figure {
public static double getTriangleArea(double width, double height) {
return width * height / 2;
}
}
StaticBasic.java
public class StaticBasic {
public static void main(String[] args) {
System.out.println(Figure.getTriangleArea(10, 20));
// var f = new Figure();
// System.out.println(f.getTriangleArea(10, 20));
}
}
var m = new Math (); // erreur
public final class Math{
private Math() {}
}
Figure.java
//Champ Pi, définition de la méthode getCircleArea dans le membre de classe de la classe Figure
public class Figure {
public static double pi = 3.14;
//Accéder aux champs de classe à partir des méthodes de classe
public static void getCircleArea(double r) {
System.out.println("L'aire du cercle est" + r * r * pi);
}
}
StaticBasic.java
public class StaticBasic {
public static void main(String[] args) {
//La figure est accessible de l'extérieur
System.out.println(Figure.pi); //3.14
Figure.getCircleArea(5); //L'aire du cercle est de 78.5
}
}
public class MySingleton {
//Enregistrer uniquement l'instance dans le champ de classe
private static MySingleton instance = new MySingleton();
//Déclarer le constructeur privé
private MySingleton() {}
//Obtenez l'instance préparée par la méthode de classe
public static MySingleton getInstance() {
return instance;
}
}
public class MyApp {
public static final String BOOK_TITLE = "Maître Java!";
}
public class ConstantBasic {
public static void main(String[] args) {
System.out.println(MyApp.BOOK_TITLE); //Maître Java!
//Ne peut pas être affecté au champ final
//MyApp.BOOK_TITLE = "Je serai un maître Java!"; //Erreur
}
}
public class Initializer {
public static final String DOG;
public static final String CAT;
public static final String MOUSE;
static {
DOG = "inu";
CAT = "neko";
MOUSE = "nezumi";
}
}
** (1) Initialisation de classe une seule fois **
** (2) Exécuté à chaque fois qu'un objet est créé **
//Mauvais exemple
//Le bloc d'initialisation a priorité sur l'initialiseur de champ
public class Order {
//Initialiseur de champ
String value = "First!";
//constructeur
public Order() {
System.out.println(value); //Second!!
}
//Le bloc d'initialisation s'exécute avant la construction
{
value = "Second!!";
}
}
public class OrderBasic {
public static void main(String[] args) {
var o = new Order();
}
}
...
à l'argument **public class ArgsParams {
//Comme argument...Recevoir des arguments de longueur variable avec
public int totalProducts(int... values) {
// public int totalProducts(int[] values) {
var result = 1;
//Valeurs d'argument reçues par étendu pour et appliquées au résultat
for (var value : values) {
result *= value;
}
return result;
}
}
public class ArgsParamsBasic {
public static void main(String[] args) {
var v = new ArgsParams();
System.out.println(v.totalProducts(12, 15, -1));
System.out.println(v.totalProducts(5, 7, 8, 2, 4, 3));
// System.out.println(v.totalProducts(new int[] {12, 15, -1}));
}
}
public void hoge(int... x, int y)
* public void hoge(int... x, int... y)
v.totalProducts ()
, un tableau de taille 0 est passé en argument//Le premier argument est une initiale normale
//Déclarez le deuxième argument et les suivants avec une longueur variable
//Erreur de compilation sans arguments
public class ArgsParamsGood {
public int totalProducts(int initial, int... values) {
var result = initial;
for (var value : values) {
result *= value;
}
return result;
}
}
public class ArgsParamsGoodClient {
public static void main(String[] args) {
var v = new ArgsParamsGood();
System.out.println(v.totalProducts()); //no arguments
}
}
La plage d'influence sur la valeur passée par le type de base et le type de référence est différente.
Type de base
public class ParamPrimitive {
public int update(int num) { //Argument formel num
//Manipuler des arguments formels
num *= 10;
return num;
}
}
public class ParamPrimitiveBasic {
public static void main(String[] args) {
//Nombre variable
var num = 2;
var p = new ParamPrimitive();
System.out.println(p.update(num)); //20
//N'affecte pas la variable d'origine num
System.out.println(num); //2
}
}
public class ParamRef {
//Copiez l'adresse de référence des données variables dans les données d'argument formel
public int[] update(int[] data) { //Données d'argument formel
//Manipulation des données d'argument formel
data[0] = 5;
return data;
}
}
public class ParamRefBasic {
public static void main(String[] args) {
//Données d'argument réelles
var data = new int[] { 2, 4, 6 };
var p = new ParamRef();
//La même valeur que l'argument réel et l'argument formel sera référencée dans l'appel de méthode.
System.out.println(p.update(data)[0]); //5
//La manipulation des données d'argument formel affecte la variable d'origine
System.out.println(data[0]); //5
}
}
public class ParamRefArray {
//L'argument réel et l'argument formel pointent vers le même au moment de l'appel de méthode
public int[] update(int[] data) {
//Lorsqu'un nouveau tableau est attribué, l'adresse de référence elle-même change.
data = new int[] { 10, 20, 30 };
return data;
}
}
public class ParamRefArrayBasic {
public static void main(String[] args) {
var data = new int[] { 2, 4, 6 };
var p = new ParamRefArray();
System.out.println(p.update(data)[0]); //10
System.out.println(data[0]); //2
}
}
import java.util.Map;
public class BookMap {
//Code ISBN: gérer les informations du livre par titre de livre
private Map<String, String> data;
//Initialiser les informations du livre avec la mappe d'arguments
public BookMap(Map<String, String> map) {
this.data = map;
}
//Obtenez le titre en utilisant le code ISBN (argument isbn) comme clé
public String getTitleByIsbn(String isbn) {
//Renvoie null si la clé spécifiée n'existe pas
return this.data.get(isbn);
}
}
Main.java
import java.util.Map;
public class Main {
public static void main(String[] args) {
var b = new BookMap(Map.of(
"978-4-7981-5757-3", "Pierre philosophale",
"978-4-7981-5202-8", "salle des Secrets",
"978-4-7981-5382-7", "Prisonnier d'azkaban"
));
var title = b.getTitleByIsbn("978-4-7981-5757-3");
if (title == null) {
System.out.println("Disapparition!(ne pas)");
} else {
System.out.println(title.trim()); //Pierre philosophale
}
}
}
import java.util.HashMap;
import java.util.Map;
import java.util.Optional;
public class BookMap {
private Map<String, String> data = new HashMap<>();
public BookMap(Map<String, String> map) {
this.data = map;
}
public Optional<String> getTitleByIsbn(String isbn) {
return Optional.ofNullable(this.data.get(isbn));
}
}
import java.util.HashMap;
public class OptionalNullCheck {
public static void main(String[] args) {
var b = new BookMap(
new HashMap<String, String>() {
{
put("978-4-7981-5757-3", "Pierre philosophale");
put("978-4-7981-5202-8", "salle des Secrets");
put("978-4-7981-5382-7", "Prisonnier d'azkaban");
}
});
var optTitle = b.getTitleByIsbn("978-4-7981-5382-7");
var title = optTitle.orElse("×");
System.out.println(title.trim()); //Prisonnier d'azkaban
}
}
/ ʻifPresent
: contrôle nul / ʻorElseGet
: vérification Null pour obtenir la valeur **import java.util.Optional;
public class OptionalExample {
public static void main(String[] args) {
//Création d'objets en option
var opt1 = Optional.of("Échantillon 1");
//Permettre null
var opt2 = Optional.ofNullable(null);
var opt3 = Optional.empty();
//Confirmation de l'existence de la valeur
System.out.println(opt1.isPresent()); //true
//Exécution de l'expression Lambda si la valeur existe
opt1.ifPresent(value -> {
System.out.println(value); //Échantillon 1
});
//Si la valeur de opt2 existe, sa valeur est affichée, et si elle est nulle, l'argument est affiché.
System.out.println(opt2.orElse("valeur nulle")); //valeur nulle
//Exécution de l'expression Lambda lorsque opt3 est nul
System.out.println(opt3.orElseGet(() -> {
return "valeur nulle";
})); //valeur nulle
}
}
Recommended Posts