Java Basic for Android 〜Android実装でのJavaベーシック〜

毎度おなじみ?のJavaBasicコーナーです。
今回は、Android実装で使用するJavaの考え方を中心に記載します。
ちなみに今までのJavaBasicはイチから全部を作成するためのもの。。。低レベルな実装からおこなっております。Androidでちょっと複雑なこと、例えば3Dモデルを描画するとか、。。。、をやろうとするときに使えるものです。つまり文法とファイル入出力などです。
キホンですね。よかったらどうぞ。

  1. Java Basic その1
  2. Java Basic その2

AndroidでのJava Basic

Androidでの実装は、Javaで作成される画面、アクション、通信などの実装が行われています。
いわゆる「フレームワーク」としての実装があるので前回作成した「MainActivity」クラスのみの実装でHello Worldが表示できます。

このフレームワークに関しては、こちらのページも参照して欲しいのですが、大まかに必要な部分のみを実装すれば動く便利アイテムというイメージです。

具体的に

Android Studioでプロジェクトを作成したときに自動生成されたファイルがたくさんあります。
主要な部分としては以下の通りです。

  1. activity_main.xml
  2. MainActivity.java
  3. AndroidManifest.xml

他にもありますが、フレームワークの中身を見るのが目的ではないので、この3ファイルに着目します。

1のactivity_main.xmlは以前記載した記事でHello Worldの文言を変更するときに触りました。

  1. 見た目の作りについて
  2. 見た目の変更

Androidフレームワークでは、このXMLファイルにかいたプロパティを読み込んでJava側で表示するものを作成しています。
そして、XMLを読み込む処理は下の部分です。

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // 親クラスのonCreateを実行する
        super.onCreate(savedInstanceState);
        // activity_main.xmlを読み込む
        setContentView(R.layout.activity_main);
    }

なので、画面の見た目を作成する方法としては2通りあるということになります。

  1. XMLで作成する
  2. Javaコードで作成する

自分はJavaコードで作成する方に慣れているのでXMLはあまり使用しませんでしたが、ちょうど良い機会なので使ってみました。
設定するプロパティは変わらないのでXMLから入ってもJavaコードから入っても良いと思います。

しかし、世の中「GUIで実装する」ということもあるので。。。なんともいいがたし。。。

とりあえずはコードとXMLの関係がわかれば問題ないと思います。

クラスの継承関連

自動生成されたコードを見てみます。

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}

こんな感じだったと思います。
注目して欲しいのはextends AppCompatActivityの部分です。
フレームワークたる部分になるのでプログラミング初心者にはちょっと難しいかもですが、簡単にいうと『「extends」すると細かい処理は全部フレームワークがやってくれる』というところです。

クラスを継承する

ちなみに「extends」というのは日本語で「継承」と言います。クラスを継承するというのは、わかりづらい概念だと思います。自分は理解するのに結構時間がかかりました。

理解するポイントとしては、以下の通りです。

  1. 関係性を見て見る
  2. 実装して動かして見る
  3. どこがどのようになっているのか整理する

というわけで、簡単なアプリを作成して見るのが一番早いというわけです。
参考程度ですが、継承に関してOracleDocを引用して継承についてコードを交えて記載した記事があるので、それもよかったらどうぞ。

参考に下にリンクをつけておきます。

  1. オブジェクト指向の概念1〜OracleDocのチュートリアル1〜
  2. オブジェクト指向の概念3〜継承とは〜
  3. オブジェクト指向の概念4〜インターフェースとは〜

サンプル実装

ちょっと作成して見ました。
<親クラス>

public class ParentCls {
    private String parentName;
    protected int parentId;
    public String parentFunc;

    public ParentCls() {
        System.out.println("ParentCls is here");
    }

    private void say() {
        System.out.println("private: say parent");
    }

    protected void say(String message) {
        System.out.println("protected: " + message);
    }

    public void say(String message, int num) {
        System.out.println("public: " + message + " in " + num);
    }
}

<子クラス>

public class ChildCls extends ParentCls{
    public void sayChild() {
        say("Hello Parent");
    }
}

<実行したテストコード>

public class ExampleUnitTest {
    @Test
    public void testPrentChild() {
        ChildCls child = new ChildCls();
        // 子クラスから親クラスのメソッド
        child.say("Java Basic");
        // 子クラスのメソッド
        child.sayChild();
    }
}

実行結果

今回作成したのはAndroidでのテスト実行クラスです。
テスト実行処理は下のようなコードで実行しました。

public class ExampleUnitTest {
    @Test
    public void testPrentChild() {
        ChildCls child = new ChildCls();
        // 子クラスから親クラスのメソッド
        child.say("Java Basic");
        // 子クラスのメソッド
        child.sayChild();
    }
}

今回はここら辺で失礼します。

でわでわ。。。

関連ページ

Java学習フロー(こんなのどうでしょう?)

Javaでコンソールアプリを作る

Eclipse セットアップ

  1. Java Install Eclipse〜開発ツールのインストール〜
  2. TensorFlow C++環境〜EclipseCDTをインストール〜
  3. Setup OpenGL with JavaJOGLを使う準備 for Eclipse
  4. Eclipse Meven 開発手順〜プロジェクトの作成〜
  5. Java OpenCV 環境セットアップ(on Mac)
  6. Eclipse SceneBuilderを追加する
  7. JavaFX SceneBuilder EclipseSceneBuilder連携~

Java Basic一覧

  1. Java Basic Level 1 〜Hello Java〜
  2. Java Basic Level2 〜Arithmetic Calculate〜
  3. Java Basic Level3 〜About String class〜
  4. Java Basic Level 4〜Boolean〜
  5. Java Basic Level 5〜If Statement〜
  6. Java Basic Summary from Level1 to 5
  7. Java Basic Level 6 〜Traning of If statement〜
  8. Java Basic Level8 〜How to use for statement〜
  9. Java Basic Level 8.5 〜Array〜
  10. Java Basic Level 9〜Training of for statement〜
  11. Java Basic Level 10 〜While statement 〜
  12. Java Basic Swing〜オブジェクト指向〜
  13. Java Basic Swing Level 2〜オブジェクト指向2〜
  14. サンプル実装〜コンソールゲーム〜
  15. Java Basic インターフェース・抽象クラスの作り方
  16. Java Basic クラスとは〜Step2_1〜
  17. Java Basic JUnit 〜テストスイートの作り方〜

Git関連

  1. Java Git clone in Eclipse 〜サンプルの取得〜
  2. Eclipse Gitリポジトリの取得 GitからソースをPullしよう〜
  3. IntelliJ IDEA GitGitリポジトリからクローン〜


投稿者:

takunoji

音響、イベント会場設営業界からIT業界へ転身。現在はJava屋としてサラリーマンをやっている。自称ガテン系プログラマー(笑) Javaプログラミングを布教したい、ラスパイとJavaの相性が良いことに気が付く。 Spring framework, Struts, Seaser, Hibernate, Playframework, JavaEE6, JavaEE7などの現場経験あり。 SQL, VBA, PL/SQL, コマンドプロント, Shellなどもやります。

コメントを残す