1. カリキュラムの目的

このモジュールでは、Javaプログラミング言語の基本的なデータ型とクラスについて学びます。データ型とクラスの理解は、効率的かつ効果的なプログラミングに不可欠です。

Javaのデータ型を正しく理解し、適切に使用できるようになることを目指します。

2. 概要

  • データ型の重要性と基本的な概念
    • データ型は、変数が保持できる値の種類を定義し、プログラムの効率性と安全性を向上させます。
  • プリミティブ型(基本データ型)と参照型(オブジェクトデータ型)の違い
    • プリミティブ型は基本的な値を直接扱い、参照型はオブジェクトの参照を扱います。
  • データ型の変換とキャスティング
    • 異なるデータ型間の変換方法と注意点を学びます。

3. データ型とクラスについての理解

セッション 1: プリミティブ型の理解
  • 整数型: byte, short, int, long
    • 各データ型のサイズと範囲について学びます。例として、byteは1バイト(8ビット)の範囲(-128から127)を持ちます。shortは2バイト(16ビット)で-32,768から32,767、intは4バイト(32ビット)で-2^31から2^31-1、longは8バイト(64ビット)で-2^63から2^63-1の範囲を持ちます。
    • 演習問題:以下の手順に従って、プログラムを作成してください。
      • 各整数型(byte, short, int, long)の変数を宣言し、それぞれに適当な値を代入する。
      • それぞれの変数の値を表示する。
      • その後、それぞれの変数に1を加算した結果を表示する。
  • 浮動小数点型: float, double
    • floatdoubleの精度と使用シナリオを比較します。floatは単精度(32ビット)、doubleは倍精度(64ビット)です。floatは少ないメモリで小数点以下の精度が低く、doubleは精度が高いですが多くのメモリを使用します。
    • 演習問題:以下の手順に従って、プログラムを作成してください。
      • float型とdouble型の変数を宣言し、円周率の近似値を代入する。
      • それぞれの変数の値を表示する。
  • 論理型: boolean
    • boolean型はtruefalseの2つの値のみを持ちます。これは条件分岐やループの制御に広く使用されます。
    • 演習問題:以下の手順に従って、プログラムを作成してください。
      • 任意の整数を入力し、その整数が10から20の範囲内にあるかどうかを判定してください。
      • その結果を表示してください。
  • 文字型: char
    • char型は16ビットのUnicode文字を表します。これにより、国際化対応の文字列処理が可能です。
    • 演習問題:以下の手順に従って、プログラムを作成してください。
      • 任意の文字を入力し、その文字のUnicodeコードポイントを表示してください。
      • 任意のUnicodeコードポイントを入力し、そのコードポイントに対応する文字を表示してください。
セッション 2: 参照型の紹介
  • 文字列型: String
    • 文字列の基本操作(連結、部分文字列の抽出、比較)を学びます。例えば、Stringクラスのconcatメソッドやsubstringメソッドを使用します。
    • StringStringBuilderの違いと適切な使用シナリオを理解します。Stringは不変(immutable)であるのに対し、StringBuilderは変更可能(mutable)です。これにより、StringBuilderは頻繁な文字列操作が必要な場合にパフォーマンスが向上します。
    • 演習問題1:以下の手順に従って、プログラムを作成してください。
      • 2つの文字列を連結し、結果を表示してください。
      • 文字列の一部を抽出し、その部分文字列を表示してください。
      • 2つの文字列を比較し、その結果を表示してください。
    • 演習問題2:StringとStringBuilderの違いと適切な使用シナリオを理解するために、次のプログラムを作成してください。
      • Stringを使って文字列を連結するプログラム。
      • StringBuilderを使って文字列を連結するプログラム。
  • 配列型
    • 一次元配列と多次元配列の作成と操作方法を学びます。一次元配列は単純なリストを表し、多次元配列は行列のような複雑なデータ構造を表します。
    • 演習問題1:一次元配列の操作
      • 整数の一次元配列を作成し、いくつかの値を代入してください。
      • 配列の要素をソートし、最大値と最小値を見つけて表示してください。
    • 演習問題2:多次元配列の操作
      • 整数の二次元配列(行列)を作成し、いくつかの値を代入してください。
      • 行列の要素を表示してください。
  • クラスとオブジェクト
    • クラス
      • Javaにおいて、クラスはオブジェクトの設計図です。クラスは属性(フィールド)と動作(メソッド)を定義します。
    • インスタンス変数
      • インスタンス変数は、クラスの各オブジェクトが持つデータを表します。クラス内で定義され、各オブジェクトに固有の値を持ちます。
    • メソッド
      • メソッドは、クラスに関連付けられた関数であり、オブジェクトの動作を定義します。メソッドは、インスタンス変数を操作したり、オブジェクトの状態を変更したりするために使用されます。
    • コンストラクタ
      • コンストラクタは、オブジェクトを初期化するための特殊なメソッドです。クラスがインスタンス化されるときに呼び出され、インスタンス変数に初期値を設定します。
    • 演習問題
      • 以下の手順に従って、Javaのクラスを作成し、そのオブジェクトを生成・操作するプログラムを作成してください。
        • Personクラスを作成します。
        • Personクラスに以下のインスタンス変数を定義します。
          • name(String型)
          • age(int型)
        • コンストラクタを定義し、nameageを初期化します。
        • 以下のメソッドを定義します。
          • getNamenameを返す
          • setNamenameを設定する
          • getAgeageを返す
          • setAgeageを設定する
          • introducenameageを表示する
セッション 3: データ型のキャスティングと変換
  • 暗黙的変換(アップキャスト)
    • 小さいデータ型から大きいデータ型への自動変換。例えば、intからlongへの変換は自動的に行われます。これにより、データの精度を維持しつつ、より大きな範囲を扱うことができます。
  • 明示的変換(ダウンキャスト)
    • 大きいデータ型から小さいデータ型への変換。キャスト演算子を使って明示的に行う必要があります。例えば、doubleからfloatへの変換は(float)キャストを用います。この際、データの精度が失われる可能性があるため注意が必要です。
  • 演習課題:以下のコードを実行するとどのような結果になりますか?また、問題点があれば修正してください。

4. 最終課題

最終プロジェクト: 異なるデータ型を使った小規模なプログラムの開発

プロジェクト要件: 以下の要件を満たす小規模なプログラムを開発してください。

  1. 個人情報管理プログラム:
    • ユーザーの名前、年齢、メールアドレス、電話番号を管理します。
    • 名前はString型、年齢はint型、メールアドレスはString型、電話番号はString型として扱います。
    • ユーザー情報を格納するために配列またはリストを使用します。
  2. 機能要件:
    • 新しいユーザー情報を追加する。
    • 登録されているユーザー情報を表示する。
    • 名前でユーザー情報を検索し、該当するユーザー情報を表示する。
    • ユーザー情報を更新する機能を提供する。
    • ユーザー情報を削除する機能を提供する。