Une personne écrivant C ++ a essayé d'écrire Java

J'écris habituellement en C ++, mais pour une raison quelconque, j'ai soudainement décidé d'écrire Java. Alors, j'écrirai une simple comparaison si vous avez des impressions. (Je l'ai écrit avec un sentiment beaucoup plus approprié que d'autres articles ...)

pour déclaration

D'abord, de la même partie. Les deux langues

for (int i = 0; i < size; ++i) {
    a[i] = i;
}

Peut être utilisé!

Moule

type C++ Java
logique bool boolean
lettre char char
entier (signed) short, int, long, long long byte, short, int, long
Nombre à virgule flottante float, double, long double float, double

«Fondamentalement, il y a beaucoup de choses similaires.

Ceux listés ici sont appelés types de données de base, types primitifs, etc. en Java. De nombreuses autres classes sont créées, mais il existe des différences majeures entre C ++ et Java. Si le nom du type est Test

C++ Java (type de données de base) Java (autres classes)
Test test; Test test; Aucun
Test* test;,Test& test; Aucun Test test;

C'est comme ressentir. En Java, tout ce qui n'est pas un type de données de base est un type de référence qui a une adresse à l'intérieur. Les membres sont accessibles sous la forme test.member```, mais peuvent être remplacés contrairement aux références C ++, ou par de nouveaux comme`` Test test = new Test (); ``. Il a également des caractéristiques de type pointeur telles que l'initialisation. À propos, Java a une spécification pratique que si vous le laissez seul sans delete, il sera supprimé automatiquement (est-ce qu'il compte le nombre de références comme shared_ptr?).

Classes et fonctions

Avec C ++

class Test {
private:
    double _val;
public:
    Test(double val) : _val(val) {}
    double get() const { return _val; }
    void set(double val) { _val = val; }
};

Ce qui est écrit est Java

public class Test {
    private double _val;
    Test(double val) {
        _val = val;
    }
    public double get() {
        return _val;
    }
    public void set(double val) {
        _val = val;
    }
} 
// ;Je n'ai pas besoin

Ce sera. En gros, vous pouvez créer un cours avec des sentiments similaires. Cependant, en C ++, la classe est uniquement à l'état public, mais en Java, vous pouvez choisir plusieurs types. Ecrivez également privé / public des variables / fonctions membres pour chaque membre. Et il est significatif de ne pas écrire la spécification d'accès. En outre, le sens de protégé est différent. Les spécifications d'accès des membres de la classe sont les suivantes.

La désignation Signification en Java C++Signification dans
private Seulement à l'intérieur de la classe Seulement à l'intérieur de la classe
Aucun Seulement dans le même emballage Identique à privé
protected Au sein du même package ou d'une sous-classe Depuis une classe ou une classe dérivée
public De partout De partout

Le package est similaire à l'espace de noms C ++, mais je pense que c'est une grande différence par rapport au C ++ en ce sens qu'il est créé à l'aide de la structure de répertoires.

Héritage

Héritage en C ++

class Derived : public Base {
    (members)
};

Mais avec Java

public class Derived extends Base {
    (members)
}

est. Il n'y a pas de spécification d'accès aux classes de base, écrivez simplement ʻextends Base. Les membres peuvent être remplacés sans spécifier «virtuel». Utilisez final` pour l'empêcher. En plus du simple héritage, il existe également une interface,

interface Base {
    void func();
}
class Impl implements Base {
    void func() {
        // implementation
    }
}

Écrivez comme ça. Il ressemble à une classe abstraite C ++. De plus, les variables de classe (sous-classe) dérivées Java peuvent être normalement affectées à des variables de classe de base, et les fonctions surchargées du côté de la classe dérivée peuvent être appelées à partir de variables de classe de base (comme pour la référence C ++).

Bien qu'il existe diverses différences comme celle-ci, la programmation de base orientée objet peut être effectuée en Java tel quel. C'était amusant d'écrire un programme normalement simplement en achetant un livre de référence.

Recommended Posts

Une personne écrivant C ++ a essayé d'écrire Java
Si une personne de Java apprend PHP
java j'ai essayé de casser un simple bloc
J'ai essayé de frapper une méthode Java d'ABCL
Différences dans l'écriture des classes Java, C # et Javascript
Résumer les différences entre l'écriture C # et Java
J'ai essayé de casser le bloc avec java (1)
J'ai essayé d'exécuter Java dans un terminal Mac
ABC --013-A et B et C
ABC --023 --A & B & C
ABC --036-A et B et C
ABC --010 --A & B & C
ABC --028 --A & B & C
[Java] Créer un filtre
ABC --015 --A & B & C
ABC --128 --A & B & C
ABC --012-A et B et C
ABC --018 --A & B & C
ABC --054 --A & B & C
ABC --017 --A & B & C
ABC --029- A & B & C
java construire un triangle
ABC --022 --A & B & C
J'ai essayé de créer une compétence Clova en Java
ABC --019 --A & B & C
ABC --020 --A & B & C
ABC --030- A & B & C
ABC --127 --A & B & C
J'ai essayé de créer une fonction de connexion avec Java
J'ai essayé d'utiliser Log4j2 sur un serveur Java EE
ABC --007 --A & B & C
ABC --132- A & B & C
ABC --026 --A & B & C
ABC --014- A & B & C
J'ai essayé OCR de traiter un fichier PDF avec Java
[Java] Lors de l'écriture du source ... Mémorandum ①
ABC --016 --A & B & C
ABC --011-A et B et C
ABC --031 --A & B & C
ABC --021 --A & B & C
ABC --025 --A & B & C
J'ai essayé de gratter un graphique boursier en utilisant Java (Jsoup)
J'ai essayé de mâcher C # (lire et écrire des fichiers)
ABC --024 --A & B & C
ABC --027 --A & B & C
ABC --080- A & B & C
J'ai essayé de créer un environnement de développement java8 avec Chocolatey
J'ai essayé de moderniser une application Java EE avec OpenShift.
Mettez à jour vos connaissances Java en écrivant un serveur gRPC en Java (1)
J'ai essayé de convertir une chaîne de caractères en un type LocalDate en Java
J'ai créé un client RESAS-API en Java
J'ai essayé OCR de traiter un fichier PDF avec Java part2
Remarques sur Java GC
ABC --129- A & B & C & D
ABC --133- A & B & C & D
Créer une méthode java [Memo] [java11]
ABC --122 --A & B & C & D
Programme de jugement des nombres premiers le plus rapide C # Java C ++
[Java] Créer un fichier temporaire
J'ai essayé Drools (Java, InputStream)
Rechercher un sous-ensemble en Java