独習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クラスに定義された主なインスタンスメソッド boolean nextBoolean() 真または偽のどちらかを返す void nextBytes(byte buffer[]) bufferを乱数で埋める double nextDouble() double型の乱数を返す float nextFloat() float型の乱数を返す double nextGaussian() double型の乱数を返す。このメソッド を繰り返し呼び出すと、平均0と標準 偏差の1のガウス分布の乱数が得ら れる Int nextInt() int型の乱数を返す Long nextLong() long型の乱数を返す void setSeed(long seed) 乱数ジェネレータに種値を与える 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クラスに定義されている主なインスタンスメソッド boolean after(Date d) dが現在の日付よりも後の場合に真を返す。 それ以外の場合は偽を返す boolean before(Date d) dが現在の日付よりも前の場合に真を返す。 それ以外の場合は偽を返す boolean equals(Date d) dが現在の日付と同じ場合に真を返す。それ 以外の場合は偽を返す long getTime() 基準時からの経過時間をミリ秒単位で返す void setTime(long msec) 基準時からmsecミリ秒経過した日付と時刻 を現在のオブジェクトに設定する String toString() 日付を文字列にして返す 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クラスに定義されている主なインスタンスメソッド boolean after(Object calendarObj) 呼び出し元Calendarオブジェクトの日 付がcalendarObjの日付よりも後の 場合は真を、それ以外は偽を返す boolean before(Object calendarObj) 呼び出し元Calendarオブジェクトの日 付がcalendarObjの日付よりも前の 場合は真を、それ以外は偽を返す boolean equals(Object calendarObj) 呼び出し元Calendarオブジェクトの日 付がcalendarObjの日付と同じ場合 は真を、それ以外は偽を返す int get(int calendarField) 呼び出し元オブジェクトの要素の値を 返す。目的の要素はcalendarFieldで 指定する 10.3Calendar,GregorianCalendarクラス(4) 表4 Calendarクラスに定義されている主なインスタンスメソッド(続き) static Calendar getInstance() 既定の場所とタイムゾーンに設定さ れたCalendarオブジェクトを返す final Date getTime() 呼び出し元オブジェクトの時刻に相当 するDateオブジェクトを返す final void set(int year,int month,int date,int hour,int minite,int second) 呼び出し元オブジェクトのさまざまな 日付/ 時刻要素を設定する final void setTime(Date d) 呼び出し元オブジェクトのさまざまな 日付/ 時刻要素を設定する。設定する 情報はDateオブジェクトdから取り出 される 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) 指定した年がうるう年の場合に真、そうでなければ偽 を返すメソッド 演習問題 1. 2. 3. ガウス分布に従う乱数を100個生成し、それ が本当にガウス分布に従うのか平均と分散そ れぞれの値を計算するプログラムを作成せよ。 基準時から現在までの間にうるう年が何度あっ たのかを調べるプログラムを作成せよ。 コマンドライン引数により、年、月、日にちが入 力された時、その年月日がその年が始まって 何日目なのか、そして何曜日なのかを示すプ ログラムを作成せよ。
© Copyright 2024 ExpyDoc