160 likes | 274 Vues
独習Javaゼミ第10回. セクション1~3 発表者 直江 宗紀. Javaクラスライブラリ. クラスライブラリとは Java プログラムに利用できる様々な機能を提供するクラスやインターフェイス集のこと java.util パッケージ 今回用いるユーティリティクラスが集約されたクラスライブラリのパッケージ 乱数、カレンダー等の日付、時間や、ベクトル、ハッシュ表、スタック等のデータ構造を扱える. 10.1 Random クラス(1). Random クラス
E N D
独習Javaゼミ第10回 セクション1~3 発表者 直江 宗紀
Javaクラスライブラリ • クラスライブラリとは • Javaプログラムに利用できる様々な機能を提供するクラスやインターフェイス集のこと • java.utilパッケージ • 今回用いるユーティリティクラスが集約されたクラスライブラリのパッケージ • 乱数、カレンダー等の日付、時間や、ベクトル、ハッシュ表、スタック等のデータ構造を扱える
10.1 Randomクラス(1) • Randomクラス • boolean型,double型,float型,int型,またはlong型の乱数を生成するクラス • 乱数関数を用いる乱数以外に、ガウス分布に則る乱数を生成することも可能
10.1 Randomクラス(2) • Randomコンストラクタ • コンストラクタとして、以下2つが用意されているRandom()Random(long seed)(seedは乱数ジェネレータに渡される初期値) • 引数無しでRandomコンストラクタを呼んだ時 • 現在時刻をseed(種値)とする
10.1 Randomクラス(3) 表1 Randomクラスに定義された主なインスタンスメソッド
10.1 Randomクラス(4) 適当な乱数を発生させるプログラム例 import java.util.*; class RandomInts{ public static void main(String args[]){ //乱数ジェネレータを作成する Random generator=new Random() ; //10個のint型の乱数を生成する for(ing i=0;i<10;i++){ System.outo.println(generator.nextIng()) ; } } }
10.2 Dateクラス(1) • Dateクラス • 特定の日付と時刻に関する情報を扱える • Dateコンストラクタ • 以下の2つのコンストラクタが用意されているDate()Date(long msec)(msec:グリニッジ標準時で1970年1月1日午前0時からの経過時間をミリ秒で表した数値)
10.2 Dateクラス(2) 表2 Dateクラスに定義されている主なインスタンスメソッド
10.2 Dateクラス(3) Dateクラスを利用したプログラム例 import java.util.*; class DateDemo{ public static void main(String args[]){ //現在の日付/時間で初期化 Date currentDate=new Date() ; System.out.println(currentDate) ; //基準時(1970/1/1)に初期化する Date epoch=new Date(0) ; System.out.println(epoch) ; } }
10.3Calendar,GregorianCalendarクラス(1) • 抽象クラスCalendar • このクラスにより、日付と時刻の情報を交換可能 • カレンダーの要素の取得または設定に使用できる、int型の定数がいくつか定義されている。(例:AM,AM_PM,PM,HOUR_OF_DAY,等)
10.3Calendar,GregorianCalendarクラス(2) • Calendarコンストラクタ • パブリックなコンストラクタは無い • 静的メソッドgetInstance()を用いることにより現在の日付、時刻で初期化されたカレンダーを取得できる例:Calendar now=Calendar.getInstance() ;
10.3Calendar,GregorianCalendarクラス(3) 表3 Calendarクラスに定義されている主なインスタンスメソッド
10.3Calendar,GregorianCalendarクラス(4) 表4 Calendarクラスに定義されている主なインスタンスメソッド(続き)
10.3Calendar,GregorianCalendarクラス(5) • GregorianCalendarクラス • Calendarの有形サブクラス • グレゴリオ暦に則って日付/時間を管理できる • GregorianCalendarコンストラクタ • 主なコンストラクタとして以下の物があるGregorianCalendar() GregorianCalendar(int year,int month,int date) GregorianCalendar(int year,int month,int date,int hour,int minute,int sec)
10.3Calendar,GregorianCalendarクラス(6) • GregorianCalendarクラスに定義されたメソッド • Calendarクラスで定義されたメソッド全てある • 追加されたメソッドもあるisLeapYear(int year) • 指定した年がうるう年の場合に真、そうでなければ偽を返すメソッド
演習問題 • ガウス分布に従う乱数を100個生成し、それが本当にガウス分布に従うのか平均と分散それぞれの値を計算するプログラムを作成せよ。 • 基準時から現在までの間にうるう年が何度あったのかを調べるプログラムを作成せよ。 • コマンドライン引数により、年、月、日にちが入力された時、その年月日がその年が始まって何日目なのか、そして何曜日なのかを示すプログラムを作成せよ。