0
0

More than 3 years have passed since last update.

Java入門メモ

Last updated at Posted at 2021-08-14

Javaの分類

  • JavaSE

Javaのスタンダード版、簡単なゲームやデスクトップアプリの開発に使われる、基礎の基礎。

  • JavaME

携帯や小型電気などの開発に使われる。今ほとんど死んでる

  • JavaEE

Webなどの開発に使われる。Javaといったら、この版のことさしてるのが多いでしょ。

JDK、JRE、JVM

  • JDK(Jvav Development Kit)
    中身は開発用に必要なツールキット及びJRE,JVMが含まれてる。

  • JRE(Java Runtime Enviroment)
    javaを動かす環境のことです

  • JVM(Java Virtual Machine)
    JavaはMACでもWindowsでも動けるのはJVMがあるから。例えば、hello.javaをコンパイルすると、java.classが生成されますね。OSの環境依存しないように実行できるのはJVMというJavaの仮想マシンで実行するからだ。つまりOSの違いがJVMにより吸収されちゃう。

この図を見たら理解できるでしょ!
r5compiler01_03.gif

  • JDK,JRE,JVM関係

JDK_JRE_JVM-1.jpeg

JDK インストール

以下の記事はとってもわかりやすいのでここには省略します

注意したいのは環境変数の設定

  • システム環境変数新規作成
変数名:JAVA_HOME
変数値:{JDKのインストールパス}

  • システム環境変数Path編集
%JAVA_HOME%¥bin   →  追加
または
{JDKのインストールパス}¥bin   →  追加

%JAVA_HOME%¥jre¥bin   →  追加
または
{JDKのインストールパス}¥jre¥bin   →  追加

Java仕組み

Javaのキーワード(予約語、定数)

データ型

統合開発環境(IDEA)ツール

昔Eclipseがほとんどでしたが、今は段々IntelliJIDEAを使うようになった気がします。
個人的には、コードの補完がEclipseより優れるところですかね。
例えば:
psvmを入力したらpublic static void mainのメソッド作ってくれるとか、
soutを入力したら、 System.out.printlnに補完してくれるなど。

ツールアイコンの表示

キャプチャ.PNG

注釈

以下三種類がある

// 一行のみ注釈   

/* 
複数行注釈
複数行注釈
 */

/**
 * JavcDoc 
 * @author maekawa
 * @version 1.0
 * @param int 金額
 */

コンパイルファイル確認

プロジェクト構造の設定を変更するには、ツールバーの歯車アイコン をクリックか(Ctrl+Alt+Shift+S)で開くことができます。
コンパイル出力先を確認できる。

コンパイルファイル実行の注意点

実行できた。

C:\Users\maekawa\Demo\hello\src>javac HelloWorld.java

C:\Users\maekawa\Demo\hello\src>java HelloWorld
Hello

C:\Users\maekawa\Demo\hello\src>

↓なんと実行できません

C:\Users\maekawa\Demo\hello\src\com\maekawa\base>javac Happy.java

C:\Users\maekawa\Demo\hello\src\com\maekawa\base>java Happy
エラー: メイン・クラスHappyを検出およびロードできませんでした
原因: java.lang.NoClassDefFoundError: com/maekawa/base/Happy (wrong name: Happy)

修正↓
パッケージが作成された場合に、srcの階層から実行しないとダメみたいです。
エンコードが必要な場合にはjavac -encoding UTF-8 xxx.javaとなります。

C:\Users\maekawa\Demo\hello\src\com\maekawa\base>javac -encoding UTF-8 Happy.java

C:\Users\maekawa\Demo\hello\src\com\maekawa\base>cd ../../..

C:\Users\maekawa\Demo\hello\src>java com.maekawa.base.Happy
気持ちいいね

 よく使うショートカット

Alt+Enter 警告を直してくれる
Ctrl+Alt+L コード整形

ドキュメント検索

「jdk api ドキュメント」と検索するといっぱい出ます。ダウンロードでもオンラインでも確認できます。
キャプチャ.PNG

staticメソッド

  • 違うクラス間メソッドの使用

メソッドを呼ぶのにstaticありとなし二種類がある。普通staticなしの方法を使います。

happy.java
package com.maekawa.base;

public class Happy {
    public static void main(String[] args) {

        //Peopleクラスのdreamメソッド使用
        People.dream();
        //Peopleクラスのspeechメソッド使用
        People method = new People();
        method.speech();
    }
}
People.java
package com.maekawa.base;

public class People {

    //staticありメソッド
    public static void dream() {
        System.out.println("Staticあり");
    }

    //staticなしメソッド
    public void speech() {
        System.out.println("Staticなし");
    }
}
  • 同じクラス内メソッドの使用

全部staticなしのメソッドの場合、そのまま呼ぶ

happy.java
public class Happy {
    public static void main(String[] args) {
    }
    // aもbもstaticなしのメソッド
    public void a(){
        // メソッド直接呼べる
       b();
    }
    public void b(){

    }
}

全部staticありのメソッドの場合、そのまま呼ぶ

happy.java
public class Happy {
    public static void main(String[] args) {
    }
    // aもbもstaticなしのメソッド
    public static void a(){
        // メソッド直接呼べる
       b();
    }
    public static void b(){

    }
}

呼ばれるメソッドなし、呼ぶメソッドはありの場合にエラー

happy.java
public class Happy {
    public static void main(String[] args) {
    }
    // aもbもstaticなしのメソッド
    public static void a(){
        // エラー発生 
       b();
    }
    public void b(){

    }
}

↑このエラーを解消する方法

        new Happy().b();

よく使うクラス

クラス ポイント 目的
Scanner 標準力取得
Obeject  hashcode(),toString(),clone(),getClass(),
getClass(),notify(),wait(),equals()
Math 演算
Random ランダムな数字生成、例えばUUID
File ファイルの作成、確認、修正、削除など
Date Date、SimeDateFormat、Calendar
String final
StringBuffer append()
StringBuilder

Scannerクラス

継承

目的

コードを簡易化して、重複なメソッドを書かないようにするため。

参考記事

すべてのクラスはObjectクラスを継承してる(実際に隠されて見えないだけ)

例:以下の二つのクラス、水飲むというメソッドは重複してます。

class People{
  //水飲む
  public void drink(){
    System.out.println("水飲む");
  }
}

class Student{
  //水飲む
  public void drink(){
    System.out.println("水飲む");
  }
  //勉強する
  public void study(){
    System.out.println("勉強する");
  }
}

親クラスの変数やメソッドの呼び方

オブジェクト.変数名やメソッド名

//メインクラス、一つのプロジェクトにmainクラス一つのみ
class ctest11{
  public static void main(String args[]){
    Student student = new Student();

    //変数の呼び方
    student.age = 10;
    //メソッドの呼び方
    student.drink();

  }
}

//親クラス
class People{
  int age = 34;
  //水飲む
  public void drink(){
    System.out.println("水飲む");
  }
}

//子クラス
class Student{
  //勉強する
  public void study(){
    System.out.println("勉強する");
  }
}

CollectionとMap学習ポイント

HashMap.jpg

IOについて(入出力)

AWTとswing

swingはAWTの前身みたいなもの

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0