[JAVA] À propos de la classe standard

Comment gérer les dates

La méthode de gestion de la date est la suivante -Stocké dans une variable de type long -Utiliser la classe java.date.util ・ Utiliser la classe Calendrier -Utilisation de la classe SimpleDateFormat

Stocké dans une variable de type long

Fonctionnalité

-Les variables de type long expriment les informations de date et d'heure par le nombre de millisecondes écoulées (1/1000) basé sur 1970/1/1 00:00:00 (époque). -Les variables de type long sont faciles à comprendre pour les ordinateurs car elles sont une liste de valeurs numériques telles que 11223344.

** Comment connaître la date et l'heure actuelles **

long nom de la variable = System.currentTimeMillis ();: System.currentTimeMilli renvoie l'heure actuelle exprimée en ** millisecondes. ** **

problème

・ L'homme ne peut pas comprendre l'énumération de valeurs numériques telles que "11223344" ... -Les données de type long sont également utilisées à d'autres fins, il est donc inconnu si les données qu'elles contiennent sont une date.

Stocké dans le package java.date.util

Fonctionnalité

** S'il s'agit d'une variable de type Date, il peut être déterminé que le contenu est une information de date et d'heure **.

comment utiliser

"Classe d'importation"

ʻImport` la classe java.date.util

"Créer une instance de date avec la date et l'heure actuelles"

Nom de la variable de date = nouvelle date ();

"Créer une instance de données avec la date et l'heure de l'argument valeur longue"

Nom de la variable de date = nouvelle date (argument de valeur longue);

** Exemple d'utilisation **

Date now = new Date();//(1) Créez une instance de date et obtenez la date et l'heure actuelles.
System.out.println(now);//Résultat de sortie ①
long nowTime = now.getTime();//(2) Utilisez la méthode getTime de l'instance Date pour obtenir la date et l'heure actuelles de la valeur longue.
System.out.println(nowTime);//Résultat de sortie ②
Date past = new Date(nowTime);//③ Remplacez une valeur longue pour créer une nouvelle instance de données
System.out.println(past);//Résultat de sortie ③

"Résultat de sortie"

Sat Mar 03 11:41:38 JST 2018//①
1520044898396//②
Sat Mar 03 11:41:38 JST 2018//③

problème

Après tout, il est difficile à lire car il utilise une valeur longue ...

Utiliser la classe de calendrier

Fonctionnalité

Les données de type long obtenues dans la classe Date peuvent être converties en données de type int dans la classe Calender.

comment utiliser

"Utilisez la classe Calender pour générer des données de type Date avec des arguments de type int"

Importez java.util.Calendar;

"Utilisez la classe Calender pour générer des données de type Date avec des arguments de type int"

Calendar instance name = Calendar.getInstance (); // Crée une instance de la classe Calendar ʻInstance name.set (année, mois, jour, heure, minute, seconde); // Entrez les informations de date et d'heure de type int par exemple * Le mois est réglé de 0 à 11! !! Ou ʻInstance name.set (Calendar. ~, Value); // Date variable name = c.getTime (); // Extraire les données de type Date

(Comment récupérer des données de type int à partir de la classe Calendar)

ʻInt year = Variable de classe de calendrier .get (Calendar.YEAR); ʻInt month = Variable de classe de calendrier .get (Calendar.MONTH); ʻInt day = Variable de classe de calendrier .get (Calendar.DAY_OF_MONTH); ʻInt hour = Variable de classe de calendrier .get (Calendar.HOUR); ʻInt minute = Variable de classe de calendrier .get (Calendar.MINUTE); ʻInt second = Variable de classe de calendrier .get (Calendar.SECOND);

"Comment mettre les données de type Date dans la classe Calendar"

ʻInstance name.setTime (argument de type date); `

** Exemple d'utilisation **

	public static void main(String[] args) {
		//Créer une instance
		Date now = new Date();//Créez une instance now de la classe Date et obtenez la date et l'heure actuelles
		Calendar calendar = Calendar.getInstance();//Créer une instance de calendrier de la classe Calendar
		
		//(1) Extraire uniquement l'année en tant que type int de l'instance de calendrier
		calendar.setTime(now);//(1) Remplacez l'instance now (date et heure actuelles) par l'instance de calendrier
		int year = calendar.get(Calendar.YEAR);//① Ne retirez que l'année de la classe de calendrier
		System.out.println(year);//Résultat de sortie ①
		
		//② Réglez la date avec le type int
		calendar.set(1995,1,20,10,10,10);//(2) Définissez l'année et le mois dans l'instance de calendrier avec le type int
		Date past = calendar.getTime();//(2) Remplacez la date définie dans la variable de type Date passée
		System.out.println(past);//Résultat de sortie ②
	}

"Résultat de sortie"

2018//①
Mon Feb 20 10:10:10 JST 1995//②

Utilisation de la classe SimpleDateFormat

Fonctionnalité

Les données de type long obtenues dans la classe Date peuvent être converties vers et à partir de données de type String dans la classe SimpleDateFormat.

comment utiliser

"Classe d'importation"

java.text.SimpleDateFormat; Classe d'importation

"Générer le type de chaîne à partir du type de date"

SimpleDateFormat Variable name = new SimpleDateFormat (format string); // Créer une instance String variable name = SimpleDateFormat instance name.format (Date type variable); // Convertit le type de Date en String avec la méthode de format de la classe SimpleDateFormat.

"Générer le type de date à partir du type de chaîne"

SimpleDateFormat variable name = new SimpleDateFormat (format string); // Crée une instance de la classe SimpleDateFormat Date Date type variable name = SimpleDateFormat instance name.parse (chaîne de caractères); // Convertit le type de String en Date avec la méthode d'analyse de la classe SimpleDateFormat.

** Exemple d'utilisation **

	public static void main(String[] args) throws Exception {
		//Créer une instance
		Date now = new Date();
		SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");

		//Type de date → Type de chaîne
		String date = format.format(now);

		//Type de chaîne → Type de date
		Date past = format.parse("1995/01/20 10:10:10");

		//production
		System.out.println(date);
		System.out.println(past);
	}

"Résultat de sortie"

2018/03/03 15:59:07
Fri Jan 20 10:10:10 JST 1995

Héritage implicite

** En pensant **

Lors de la définition d'une classe, si vous ne spécifiez pas la classe parente avec ʻextend, cela signifie que la classe parente hérite de java.lang.Object`.

** Contenu de java.lang.Object **

· ʻEquals () : Découvrez si une instance est la même qu'elle-même -ToString () `: renvoie le contenu de votre propre chaîne

** Avantages de l'héritage implicite **

① L'objet peut être utilisé comme argument

"Exemple"

	public static void main(String[] args) {
		Object[] o = new Object[2];
		o[0] = new Hero();
		o[1] = "Bonjour";
		for(Object ox:o) {
			System.out.println(ox);
		}
	}
"Résultat de sortie"
Java14.Hero@70dea4e
Bonjour

En raison du polymorphisme, tous les objets peuvent être considérés grosso modo comme ʻObject, donc ʻObject peut être spécifié quand ** argument = n'importe quoi **.

(2) Toutes les classes peuvent être équipées des méthodes minimales requises.

** À propos de toString **

"Défaut"

Nom du modèle @ alphanumérique

//Lors de la sortie d'une instance Hero
Java14.Hero@70dea4e

"Si tu veux changer"

@Override
public String toString(){
 return "Nom est"+this.Nom ...
}

Il est nécessaire de ** remplacer ** la méthode de sortie comme décrit ci-dessus. «@ Override» signifie remplacer.

** À peu près égal **

En gros, on juge si elles sont identiques. Le fait qu'ils soient identiques ou non est généralement jugé par ==, mais equals fait un "jugement d'équivalence" légèrement différent.

"Valeur égale =="

Exactement le même état

Hero h1 = new Hero;
Hero h2 = h1;

Dans ce cas, h1 et h2 sont égaux.

"Équivalent égal"

Le même contenu

Hero h1 = new Hero("Yoshihiko")
Hero h2 = new Hero("Yoshihiko")

Dans ce cas, h1 et h2 sont des instances différentes, mais elles sont équivalentes car elles ont le même contenu.

"comment utiliser"

Cependant, comme la valeur par défaut «égale» est un jugement de valeur égale, il est nécessaire de le modifier en un jugement d'équivalence et de l'utiliser.

"Exemple"

//classe principale
	public static void main(String[] args) {
		Hero hero1 = new Hero();
		hero1.name = "Yoshihiko";
		hero1.hp = 100;

		Hero hero2 = new Hero();
		hero2.name = "Yoshihiko";
		hero2.hp = 100;

		if (hero1.equals(hero2) == true) {
			System.out.println("Même contenu");
		} else {
			System.out.println("C'est différent");
		}
	}
//Classe de héros
public class Hero {
	String name;
	int hp;
	
    //Réécriture égale
    @Override
	public boolean equals(Object o) {
		if (this == o) {//Vrai si égal
			return true;
		}
		if (o instanceof Hero) {//Dans le cas de la même classe ou d'une classe de relation parent-enfant
			Hero h = (Hero) o;//Convertissez la variable de classe Object o en variable de classe Hero h et affectez-la à la variable de type Hero h.
			if (this.name.equals(h.name)) {//Équivalent si les noms sont égaux
				return true;
			}
		}
		return false;
	}
}

"Résultat de sortie"

Même contenu

Classe de wrapper

Qu'est-ce qu'une classe wrapper?

Classes correspondant aux types de données de base tels que int

Avantages de la classe wrapper

"Des méthodes peuvent être utilisées"

Toutes les méthodes sont décrites dans static, vous pouvez donc utiliser la classe wrapper sans l'instancier.

"Peut être traité comme une instance"

Comme certaines API ne peuvent pas être gérées car elles sont des types de données de base, nous les instancions délibérément une fois pour avoir des valeurs numériques.

"Exemple d'utilisation"
		int i1 = 15;//Remplacez 15 pour la variable de type int i1
		Integer i2 = Integer.valueOf(i1);//génération d'instance i2
		System.out.println(i2);

valueOf: une méthode qui retourne une instance Integer représentant la valeur int spécifiée

"Résultat de sortie"
15

Conversion entre le type de données de base et la classe wrapper

Normalement

		int i1 = 15;//Remplacez 15 pour la variable de type int i1
		Integer i2 = Integer.valueOf(i1);//Génération d'instance i2 ・ Conversion du type int au type Integer
		int i3 = i2.intValue();//Convertir du type entier au type int

intValue: une méthode qui renvoie la valeur de Integer comme int

Avec cela, vous devez utiliser la méthode à chaque fois pour convertir les données ...

"Fonction AutoBoxing / AutoUnboxing"

Type de classe wrapper ⇆ Lors de la conversion du type de données de base, valueOf et ʻintValue` sont automatiquement exécutés. Cette fonction AutoBoxing / AutoUnboxing est fournie par défaut.

		int i1 = 15;//Remplacez 15 pour la variable de type int i1
		Integer i2 = i1;//Conversion automatique du type int au type Integer
		int i3 = i2;//Conversion automatique du type Integer au type int

Recommended Posts

À propos de la classe standard
À propos des classes et des instances
[Java] À propos des classes anonymes
À propos des classes et des instances (évolution)
Prise en compte des classes et des instances
À propos =
À propos de la classe abstraite Java
À propos des classes et des instances Ruby
À propos de Kotlin
À propos de attr_accessor
À propos de Hinemos
À propos des rails 6
À propos du printemps ③
À propos d'énumération
À propos facultatif
À propos du hachage
À propos de JitPack
À propos de ça ()
À propos de l'encapsulation
À propos de JAVA_HOME
À propos de statique
À propos des exceptions
À propos de la portée
[Maven] À propos de Maven
À propos de l'idée des classes anonymes en Java
À propos du flux d'entrée standard (System.in) une fois fermé