J'ai écrit une classe en Python3 et Java

J'ai écrit une classe en Python3 et Java

Je n'ai fait que des langages statiques, mais je voulais faire du machine learning, j'ai donc décidé de commencer à étudier Python. Je suis choqué par la culture car il existe de nombreuses différences entre Go, Java et TypeScript que j'ai faites jusqu'à présent ... Cela dit, apprendre une nouvelle langue est passionnant.

Pour le moment, j'ai écrit la même classe et ses classes enfants dans les deux langages afin de pouvoir comparer les classes Java et Python afin de ne pas oublier la syntaxe de la classe Python.

Explication de ce que vous faites

Les deux créent une classe Phone. Ensuite, créez sa classe enfant, la classe SmartPhone. Instanciez les deux et appelez chaque méthode. (La méthode calss est naturelle mais non instanciée)

Au fait, j'ai utilisé le téléphone et le smartphone comme thème car j'avais un iPhone à portée de main lors de la rédaction de l'article (rires).

J'ai noté le traitement détaillé dans le code.

Premier de Java

Classe de téléphone

Phone.java


package com.company;

/**
 *Classe de téléphone
 */
public class Phone {
    /**
     *numéro de téléphone
     */
    private String number;

    /**
     *constructeur
     * @param number
     */
    public Phone(String number) {
        this.number = number;
    }

    /**
     *Montrez votre numéro de téléphone
     */
    public void showMyNumber(){
        System.out.println("This phone's number is " + this.number);
    }

    /**
     *Appeler la personne spécifiée
     * @téléphone param
     */
    public void call(String phonePartner) {
        System.out.println("Call to " + phonePartner);
    }
}

Classe de téléphone intelligent

Classe enfant de classe Phone

SmartPhone.java


package com.company;

/**
 *téléphone intelligent
 *Classe enfant de classe Phone
 */
public class SmartPhone extends Phone {
    /**
     * os
     */
    private String os;


    /**
     *constructeur
     *
     * @numéro de téléphone numéro de paramètre
     * @param os     os
     */
    public SmartPhone(String number, String os) {
        super(number);
        this.os = os;
    }


    /**
     *Passer un appel vidéo à la personne spécifiée
     *Remplacé
     *
     * @téléphone param
     */
    @Override
    public void call(String phonePartner) {
        System.out.println("Video call to" + phonePartner);
    }

    /**
     *Afficher le système d'exploitation
     */
    public void showMyOS() {
        System.out.println("his phone's os is" + this.os);
    }

    /**
     *Méthode de classe
     *Prendre une photo
     *
     * @sujet sujet param
     */
    public static void takeAPitcure(String subject) {
        System.out.println("Take a picture of " + subject);
    }

}

Classe principale

Ici, chaque classe est instanciée.

Main.java


package com.company;

/**
 *Principale
 */
public class Main {
    public static void main (String[] args) {
        System.out.println("===Normal Phone===");
        //Instanciation
        Phone normalPhone = new Phone("xxx-xxx-xxx");
        normalPhone.showMyNumber();
        normalPhone.call("sekky0905");

        System.out.println("===Smart Phone===");
        //Instanciation
        SmartPhone iPhone = new SmartPhone("○○○-○○○-○○○", "ios");
        iPhone.showMyNumber();
        iPhone.call("sekky0905");
        iPhone.showMyOS();
        SmartPhone.takeAPitcure("flower");

        System.out.println("===Smart Phone2===");
        //Instanciation
        Phone zenPhone = new SmartPhone("△△△-△△△-△△△", "android");
        zenPhone.showMyNumber();
        zenPhone.call("sekky0905");
        //Au fait, bien sûr, vous ne pouvez rien faire
//        zenPhone.showMyOS();

    }

}

Résultat d'exécution Java

===Normal Phone===
This phone's number is xxx-xxx-xxx
Call to sekky0905
===Smart Phone===
This phone's number is ○○○-○○○-○○○
Video call tosekky0905
his phone's os isios
Take a picture of flower
===Smart Phone2===
This phone's number is △△△-△△△-△△△
Video call tosekky0905

Puis le code Python

main.py


#classe
class Phone:
    #constructeur
    def __init__(self, number):
        self.__number = number

    #Il semble que les méthodes Python aient toujours un argument
    #Il semble habituel de toujours placer le premier argument sur soi
    def show_my_number(self):
        print('This phone\'s number is{0}.'.format(self.__number))

    #Il semble que les méthodes Python aient toujours un argument
    #Il semble habituel de toujours placer le premier argument sur soi
    def call(self, phone_partner):
        print('Call to {0}.'.format(phone_partner))


#Classe enfant par téléphone
class SmartPhone(Phone):
    def __init__(self, number, os):
        super().__init__(number)
        self.os = os

    #Passer outre
    def call(self, phone_partner):
        print('Video call to {0}.'.format(phone_partner))

    def show_my_os(self):
        print('This phone\'s os is {0}.'.format(self.os))

    #Méthode de classe
    @classmethod
    def take_a_picture(cls, subject):
        print('Take a picture of {0}.'.format(subject))

print("===Normal Phone===")
#Instanciation
normalPhone = Phone("xxx-xxx-xxx")
normalPhone.show_my_number()
normalPhone.call("sekky0905")

print("===Smart Phone===")
#Instanciation
iPhone = SmartPhone("○○○-○○○-○○○", "ios")
iPhone.show_my_number()
#Peut être utilisé car il hérite du téléphone
iPhone.call("sekky0905")
iPhone.show_my_os()
#Méthode de classe
SmartPhone.take_a_picture("flower")

Résultat d'exécution Python

===Normal Phone===
This phone's number isxxx-xxx-xxx.
Call to sekky0905.
===Smart Phone===
This phone's number is○○○-○○○-○○○.
Video call to sekky0905.
This phone's os is ios.
Take a picture of flower.

Impressions

J'étais réticent à utiliser Python au début, mais comme je m'y suis habitué, j'ai pensé que cela pourrait être plus facile à écrire. Mais écrire un langage statique après avoir touché Python me donne un sentiment de sécurité lorsque je reviens dans ma ville natale.

Apprendre une nouvelle langue est amusant ~!

Le site que j'ai utilisé comme référence

9. Classes - Documentation Python 3.6.1

Cours de base Python (13 classes) --Qiita

Recommended Posts

J'ai écrit une classe en Python3 et Java
J'ai créé une classe en Python et essayé de taper du canard
Un mémo que j'ai écrit un tri rapide en Python
J'ai écrit python en japonais
J'ai comparé Java et Python!
J'ai écrit Fizz Buzz en Python
J'ai écrit la file d'attente en Python
J'ai écrit la pile en Python
J'ai essayé de programmer le test du chi carré en Python et Java.
Chevauchement d'expressions régulières en Python et Java
J'ai fait un programme de gestion de la paie en Python!
Différences entre la syntaxe Python et Java
Générer une classe à partir d'une chaîne en Python
J'ai créé un outil de mot de passe en Python.
J'ai écrit une fonction pour charger le script d'extension Git en Python
J'ai écrit un script pour extraire les liens de pages Web en Python
J'étais accro aux variables de classe et aux variables d'instance erronées en Python
[Python] J'ai écrit une API REST en utilisant AWS API Gateway et Lambda.
Je suis mort en pensant qu'une variable de classe Python était une variable d'instance
J'ai écrit python3.4 dans .envrc avec direnv et je l'ai autorisé, mais j'ai eu une erreur de syntaxe
Organisez les modules et les packages Python dans le désordre
J'ai écrit un code pour convertir quaternion en angle de graissage de type z-y-x avec Python
classe de cas en python
Je veux créer une fenêtre avec Python
J'ai essayé de jouer à un jeu de frappe avec Python
[python] Différence entre variable et self. Variable dans la classe
J'ai écrit "Introduction à la vérification des effets" en Python
Pourquoi je suis une boutique Java et démarre Python
J'ai écrit un modèle de conception dans l'édition Kotlin Prototype
[Python] J'ai écrit de force une courte fonction de génération de bruit parlin dans Numpy.
J'ai essayé d'ajouter un module Python 3 en C
J'ai écrit un analyseur japonais en japonais en utilisant pyparsing.
J'ai écrit FizzBuzz en python en utilisant la machine à vecteurs de support (bibliothèque LIVSVM).
Notation de classe en Python
J'ai créé un programme cryptographique César en Python.
J'ai écrit un tri-arbre qui peut être utilisé pour l'implémentation de dictionnaire à grande vitesse en langage D et Python
J'ai écrit un graphe comme R glmnet en Python pour une modélisation clairsemée avec Lasso
[Examen d'ingénieur d'information de base] J'ai écrit un algorithme de recherche linéaire en Python.
Notez que je comprends l'algorithme des moindres carrés. Et je l'ai écrit en Python.
Je veux facilement implémenter le délai d'expiration en python
J'ai écrit un modèle de conception dans l'édition Kotlin Factory
J'ai écrit un modèle de conception dans l'édition Kotlin Builder
Je veux écrire en Python! (2) Écrivons un test
J'ai écrit un modèle de conception dans l'édition Kotlin Singleton
J'ai écrit un modèle de conception dans l'édition Kotlin Adapter
J'ai essayé d'implémenter un pseudo pachislot en Python
J'ai écrit un modèle de conception en kotlin, édité par Iterator
Je veux échantillonner au hasard un fichier avec Python
Je veux travailler avec un robot en python.
J'ai essayé de faire LINE BOT avec Python et Heroku
J'ai écrit un modèle de conception dans l'édition de modèle kotlin
Python: j'ai essayé menteur et honnête
Exemple d'obtention du nom du module et du nom de la classe en Python
J'ai implémenté une commande de remplacement de type Vim dans Slackbot #Python
Python: variables de classe et d'instance
Créer une fonction en Python
Créer un dictionnaire en Python