読者です 読者をやめる 読者になる 読者になる

MyEnigma

とあるエンジニアのブログです。#Robotics #Programing #C++ #Python #MATLAB #Vim #Mathematics #Book #Movie #Traveling #Mac #iPhone

C++ユーザのためのJava入門

c++ Programming

スッキリわかるJava入門 第2版

スッキリわかるJava入門 第2版

目次

はじめに

Javaは、元サン・マイクロシステムズ、

今はオラクルという会社が開発している

プログラミング言語です。

Java - Wikipedia

 

元々は、PCのアプリや、

サーバサイドのツールとして良く使われていますが、

最近はAndroidの影響で、

モバイルにも広く使われるようになっています。

 

今回は、C++ユーザの自分が、

Javaを勉強した時のメモを残しておきたいと思います。

Javaの特徴

Javaは

Write Once, Run Anywhere

という言葉があり、

同じコードを様々なプラットフォームで動かせることを売りにしています。

java.com: あなたとJava

また、C++と同じで

オブジェクト指向のプログラミング言語です。

加えて、C++と同様、

事前にコードをコンパイルして

実行ファイルを生成する形になっています。

インストール

それぞれのOSに対するインストールは下記を参照下さい。

Ubuntu

Windows

Mac

Javaの種類

Javaには用途に応じて、いくつかの種類があるため

インストールの際には注意が必要です。

Java SE: Standard Edition

いわゆる一般的なデスクトップで使用するJavaです。

Java ME: Micro Edition

携帯電話や家電などの組み込み向けのJavaです。

組み込み向けJavaと聞くと、Androidを思い浮かべますが、

このJava MEはAndroidとは異なり、互換性は無いようです。

Java EE: Enterprise Edition

企業用のフルセットのJavaです。

Java SEよりも使用できる機能が増えており、

特に大規模サーバ向けの機能が拡張されています。

Java Platform, Enterprise Edition - Wikipedia

C++ユーザが注意すべき所

JavaはC(C++)言語を元に設計されたので、

C(C++)を使ったことがある人は、

あまり迷うことは無いかと思いますが、

それでも設計思想の違いなどで、

JavaとC(C++)には違う部分もあります。

 

そこで、C(C++)ユーザのために

Javaを使う上で注意すべき所をまとめておきます。

真偽値型はboolean

true / falseの真偽値はC++ではboolですが、

javaではbooleanです。

boolean flag = true;

1Byteの数値データ型はbyte

C++では、1Byteの数値はchar型を使うことが多いですが、

Javaではcharは一文字の文字列しか格納出来ないので、

byteという型を使います。

byte bval = 127;// -128 〜 128

floatとlongに値を代入する時は数値の末尾にFとLを付ける。

float a = 1.23F;
long d = 9223372036854775807L;

Stringと数値を連結させると数値が文字列になる

自動的に数値が文字列に変換されるので便利です。

String a="Num:";
String b=a+100; // Num:100となる

Javaの配列

Cの配列と異なり、配列のサイズなどのフィールドがあり、

STLのvectorのように使うことができます。

int sales[]= new int[4];

for(int i=0;i<sales.lengh;i++){
    sales[i]=1*10;
}

クラスメソッドで、メンバ変数(フィールド)にアクセスする時はthisを使う

C++ではthisポインタみたいな感じですね。

class User{
    String name;

    User(String name){
        this.name=name;
    }
}

クラスの継承

クラスの継承に関しては、C++とJavaで書き方が異なります。

Javaの場合、クラスを継承する場合、

extendsという予約語を使い、

親クラスのコンストラクタをアクセスする場合は、

superというコマンドを使います。

 

またJavaではアクセス修飾子(publicなど)で

メンバ変数のアクセスを制御する場合、

それぞれのフィールドにアクセス修飾子を付ける必要があります。

class User{
    String name;

    User(String name){
        this.name=name;
    }
}

class SuperUser extends User{

    private int age;
    
    SuperUser(String name){
        super(name);
    }
}

別クラスのインポート

C++では別クラスを利用する時は、includeを使いますが、

Javaの場合はimport文を使います。

ちなみに数学関連のMathクラスはインポートせずに使えます。

import java.util.Calendar;

初心者勉強用おすすめ資料

ドットインストールのJava入門クラス

まず初めにおすすめなのは

下記のドットインストールのJavaのクラスです。

Javaの基本的な言語的な部分は、

このクラスのスクリーンキャストを見ることで理解できると思います。

 

JavaのGUIツールSwingの説明ページ

JavaのGUIツールSwingに関しては、

下記のページが初めから一つ一つ説明しているためおすすめです。

より詳しいSwingの説明に関しては、

下記の書籍もおすすめです。

Java Swing Hacks ―今日から使える驚きのGUIプログラミング集

Java Swing Hacks ―今日から使える驚きのGUIプログラミング集

  • 作者: Joshua Marinacci,Chris Adamson,神戸博之(監訳),島田秋雄(監訳),加藤慶彦
  • 出版社/メーカー: オライリージャパン
  • 発売日: 2006/04/01
  • メディア: 単行本(ソフトカバー)
  • 購入: 7人 クリック: 100回
  • この商品を含むブログ (39件) を見る

参考資料

スッキリわかるJava入門 第2版

スッキリわかるJava入門 第2版