LoginSignup
1
0

More than 5 years have passed since last update.

iOSエンジニアから見たJava8の文法についてまとめてみる

Last updated at Posted at 2018-05-19

Javaにおけるクラスの宣言

Student.java
class Student {
    // フィールドの宣言
    // String型のnameを宣言
    String name;
    // int型のscoreを宣言
    int score;
    // int型のクラス定数を宣言
    static final int MAX_SCORE = 100;
}

class Takashi {
    // static修飾子は クラス名.メンバー名 でアクセスできる
    int mathScore = Student.MAX_SCORE;
}

クラスを定義する

SampleClass.java
public class SampleClass { // クラス名
    private String name = "Sample"; // フィールド名 (iOS:プロパティ)
    public String action() { // メソッド名
        return name + "> " + "Action";
    }
}

クラスに指定できる修飾子について

修飾子 使い方
public 他のあらゆるクラスから参照可能
指定なし 同一パッケージ内のクラスから参照可能

フィールド、メソッドに指定できる修飾子について

修飾子 使い方
public 他のあらゆるクラスから参照可能
protected 子クラスおよび同一パッケージ内のクラスから参照可能
指定なし 同一パッケージ内のクラスから参照可能
private 自クラス内部のみアクセス可能

その他のよく使う修飾子

static修飾子

static修飾子はインスタンスを生成しなくとも呼び出せるメソッドやフィールドを定義できる。
static修飾子をつけたフィールドやメソッドをクラスメンバと呼び、インスタンスを生成しなくても呼び出すことができる。
クラスメンバーの使い方は 「クラス名.クラスメンバ」で呼び出せる。

StaticTest.java
public class StaticTest {
    // クラスフィールド
    static String staticField = "World";

    // クラスメソッド
    static String staticMethod() {
        return "yes!";
    }

    // インスタンスフィールド
    String instanceField = "Hello";

    // インスタンスメソッド
    String instanceMethod() {
        return instanceField + " " + staticField + " " + staticMethod();
    }
}

使い方は

StaticTestMain.java
public class StaticTestMain {
    public static void main(String... args) {
        System.out.print(StaticTest.staticField);

        System.out.print(StaticTest.staticMethod());

        StaticTest.staticField = "Japan";
        System.out.print(StaticTest.staticField);

        StaticTest test = new StaticTest();
        System.out.print(test.staticField);
        System.out.print(test.staticMethod());
        System.out.print(test.instanceMethod());
    }
}

final 修飾子

final 修飾子は変数を変更不可にするための修飾子。

宣言方法

FinalTest.java
public class FinalTest {
    // クラス定数
    static final String GREETING_MESSAGE = "Hello";
}

使い方

StaticTestMain.java
public class StaticTestMain {
    public static void main(String... args) {
        System.out.print(FinalTest.GREETING_MESSAGE);
    }
}

非常に勉強になりました。
早くAndroid開発におけるデザインパターンまで勉強を進めたいと思います。

参考文献

 JAVA本格入門 ~ Java本格入門 ~モダンスタイルによる基礎からオブジェクト指向・実用ライブラリまで

1
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
1
0