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
float
とdouble
の精度と使用シナリオを比較します。float
は単精度(32ビット)、double
は倍精度(64ビット)です。float
は少ないメモリで小数点以下の精度が低く、double
は精度が高いですが多くのメモリを使用します。- 演習問題:以下の手順に従って、プログラムを作成してください。
- float型とdouble型の変数を宣言し、円周率の近似値を代入する。
- それぞれの変数の値を表示する。
- 論理型:
boolean
boolean
型はtrue
とfalse
の2つの値のみを持ちます。これは条件分岐やループの制御に広く使用されます。- 演習問題:以下の手順に従って、プログラムを作成してください。
- 任意の整数を入力し、その整数が10から20の範囲内にあるかどうかを判定してください。
- その結果を表示してください。
- 文字型:
char
char
型は16ビットのUnicode文字を表します。これにより、国際化対応の文字列処理が可能です。- 演習問題:以下の手順に従って、プログラムを作成してください。
- 任意の文字を入力し、その文字のUnicodeコードポイントを表示してください。
- 任意のUnicodeコードポイントを入力し、そのコードポイントに対応する文字を表示してください。
セッション 2: 参照型の紹介
- 文字列型:
String
- 文字列の基本操作(連結、部分文字列の抽出、比較)を学びます。例えば、
String
クラスのconcat
メソッドやsubstring
メソッドを使用します。 String
とStringBuilder
の違いと適切な使用シナリオを理解します。String
は不変(immutable)であるのに対し、StringBuilder
は変更可能(mutable)です。これにより、StringBuilder
は頻繁な文字列操作が必要な場合にパフォーマンスが向上します。- 演習問題1:以下の手順に従って、プログラムを作成してください。
- 2つの文字列を連結し、結果を表示してください。
- 文字列の一部を抽出し、その部分文字列を表示してください。
- 2つの文字列を比較し、その結果を表示してください。
- 演習問題2:StringとStringBuilderの違いと適切な使用シナリオを理解するために、次のプログラムを作成してください。
- Stringを使って文字列を連結するプログラム。
- StringBuilderを使って文字列を連結するプログラム。
- 文字列の基本操作(連結、部分文字列の抽出、比較)を学びます。例えば、
- 配列型
- 一次元配列と多次元配列の作成と操作方法を学びます。一次元配列は単純なリストを表し、多次元配列は行列のような複雑なデータ構造を表します。
- 演習問題1:一次元配列の操作
- 整数の一次元配列を作成し、いくつかの値を代入してください。
- 配列の要素をソートし、最大値と最小値を見つけて表示してください。
- 演習問題2:多次元配列の操作
- 整数の二次元配列(行列)を作成し、いくつかの値を代入してください。
- 行列の要素を表示してください。
- クラスとオブジェクト
- クラス
- Javaにおいて、クラスはオブジェクトの設計図です。クラスは属性(フィールド)と動作(メソッド)を定義します。
- インスタンス変数
- インスタンス変数は、クラスの各オブジェクトが持つデータを表します。クラス内で定義され、各オブジェクトに固有の値を持ちます。
- メソッド
- メソッドは、クラスに関連付けられた関数であり、オブジェクトの動作を定義します。メソッドは、インスタンス変数を操作したり、オブジェクトの状態を変更したりするために使用されます。
- コンストラクタ
- コンストラクタは、オブジェクトを初期化するための特殊なメソッドです。クラスがインスタンス化されるときに呼び出され、インスタンス変数に初期値を設定します。
- 演習問題
- 以下の手順に従って、Javaのクラスを作成し、そのオブジェクトを生成・操作するプログラムを作成してください。
Person
クラスを作成します。Person
クラスに以下のインスタンス変数を定義します。name
(String型)age
(int型)
- コンストラクタを定義し、
name
とage
を初期化します。 - 以下のメソッドを定義します。
getName
:name
を返すsetName
:name
を設定するgetAge
:age
を返すsetAge
:age
を設定するintroduce
:name
とage
を表示する
- 以下の手順に従って、Javaのクラスを作成し、そのオブジェクトを生成・操作するプログラムを作成してください。
- クラス
セッション 3: データ型のキャスティングと変換
- 暗黙的変換(アップキャスト)
- 小さいデータ型から大きいデータ型への自動変換。例えば、
int
からlong
への変換は自動的に行われます。これにより、データの精度を維持しつつ、より大きな範囲を扱うことができます。
- 小さいデータ型から大きいデータ型への自動変換。例えば、
- 明示的変換(ダウンキャスト)
- 大きいデータ型から小さいデータ型への変換。キャスト演算子を使って明示的に行う必要があります。例えば、
double
からfloat
への変換は(float)
キャストを用います。この際、データの精度が失われる可能性があるため注意が必要です。
- 大きいデータ型から小さいデータ型への変換。キャスト演算子を使って明示的に行う必要があります。例えば、
- 演習課題:以下のコードを実行するとどのような結果になりますか?また、問題点があれば修正してください。
4. 最終課題:最終プロジェクト: 異なるデータ型を使った小規模なプログラムの開発
プロジェクト要件: 以下の要件を満たす小規模なプログラムを開発してください。
- 個人情報管理プログラム:
- ユーザーの名前、年齢、メールアドレス、電話番号を管理します。
- 名前は
String
型、年齢はint
型、メールアドレスはString
型、電話番号はString
型として扱います。 - ユーザー情報を格納するために配列またはリストを使用します。
- 機能要件:
- 新しいユーザー情報を追加する。
- 登録されているユーザー情報を表示する。
- 名前でユーザー情報を検索し、該当するユーザー情報を表示する。
- ユーザー情報を更新する機能を提供する。
- ユーザー情報を削除する機能を提供する。