●ローカルアドレスの取得1
getHostName()
getHostAddress()
getAddress()

---------------------------------------------------------------

import java.net.*;

public class IPAddress {

public static void main(String args[]) {
//
try {
InetAddress ias[] = InetAddress.getAllByName("localhost");
for (int i = 0; i < ias.length; i++) {
System.out.println(ias[i].getHostName());
System.out.println(ias[i].getHostAddress());
byte bytes[] = ias[i].getAddress();
for (int j = 0; j < bytes.length; j++) {
if (j > 0) {
System.out.print(".");
}if(bytes[j] >= 0) {
System.out.print(bytes[j]);
}else{
System.out.print(bytes[j] + 256);
}
}
System.out.println("");
}
} catch (Exception e) {
e.printStackTrace();
}
}

}
---------------------------------------------------------------
●日時を表示する
Calendar.getInstance()
java.util
クラス Calendar

java.lang.Object
上位を拡張 java.util.Calendar

すべての実装されたインタフェース:
Serializable, Cloneable, Comparable

直系の既知のサブクラス:
GregorianCalendar
public abstract class Calendar
extends Object
implements Serializable, Cloneable, Comparable

Calendar クラスは、
特定の時点と YEAR、MONTH、DAY_OF_MONTH、HOUR などの
カレンダフィールドセット間の変換、
および次週の日付の取得などのカレンダフィールド操作を行うための抽象クラスです。
特定の時点は、
1970 年 1 月 1 日 00:00:00.000 GMT (グレゴリオ暦) を
「エポック」とするミリ秒単位のオフセットで表現できます。

このクラスは、
パッケージ外部の具象カレンダシステムを実装するための追加メソッド
およびフィールドも提供します。これらのフィールドおよびメソッドは、
protected として定義されます。

ロケールに依存する他のクラスと同じように、
Calendar では、この種の一般に役立つオブジェクトを得るための
クラスメソッド getInstance が提供されます。
Calendar の getInstance メソッドは、
Calendar オブジェクトを返しますが、
このカレンダフィールドは現在の日付と時刻に初期化されています。

Calendar rightNow = Calendar.getInstance();


Calendar オブジェクトでは、
特定の言語およびカレンダスタイル
(日本のグレゴリオ暦、日本の旧暦など) に対して、
日付と時刻のフォーマットを行うときに必要なすべての
カレンダフィールド値を生成できます。
Calendar では、特定のカレンダフィールドとその意味の両方によって返される
値の範囲が定義されます。
たとえば、カレンダシステムの最初の月には、
すべてのカレンダについて値 MONTH == JANUARY があります。
他の値は、ERA などの具象サブクラスで定義されます。

フィールドの概要

static int AM
真夜中から正午の前までの時間を示す
     AM_PM フィールドの値です。
static int AM_PM
get および set のためのフィールド値で、
     HOUR が正午より前であるか後であるかを示します。
static int APRIL
4 番目の月を示す MONTH フィールドの値です。
protected boolean areFieldsSet
fields[] が現在設定されている時刻と同期をとっている場合は true です。
static int AUGUST
8 番目の月を示す MONTH フィールドの値です。
static int DATE
get および set のためのフィールド値で、
     月の日を示します。
static int DAY_OF_MONTH
get および set のためのフィールド値で、
     月の日を示します。
static int DAY_OF_WEEK
get および set のためのフィールド値で、
     曜日を示します。
static int DAY_OF_WEEK_IN_MONTH
get および set のためのフィールド値で、
     現在の月の何度目の曜日かを示します。
static int DAY_OF_YEAR
get および set のためのフィールド値で、
     現在の年の何日目かを示します。
static int DECEMBER
12 番目の月を示す MONTH フィールドの値です。
static int DST_OFFSET
get および set のためのフィールド値で、
     夏時間のオフセットをミリ秒単位で示します。
static int ERA
get および set のためのフィールド値で、
     ユリウス暦の AD または BC などの年代を示します。
static int FEBRUARY
2 番目の月を示す MONTH フィールドの値です。
static int FIELD_COUNT
get および set によって識別される重複しないフィールドの数を示します。
protected int[] fields
このカレンダで現在設定されている時刻に対するカレンダフィールド値です。
static int FRIDAY
金曜日を示す DAY_OF_WEEK フィールドの値です。
static int HOUR
get および set のためのフィールド値で、午前または午後の何時かを示します。
static int HOUR_OF_DAY
get および set のためのフィールド値で、時刻を示します。
protected boolean[] isSet
指定されたカレンダフィールドがカレンダで設定されているかどうかを示すフラグです。
protected boolean isTimeSet
time の値が有効である場合は true です。
static int JANUARY
年の最初の月を示す MONTH フィールドの値です。
static int JULY
7 番目の月を示す MONTH フィールドの値です。
static int JUNE
6 番目の月を示す MONTH フィールドの値です。
static int MARCH
3 番目の月を示す MONTH フィールドの値です。
static int MAY
5 番目の月を示す MONTH フィールドの値です。
static int MILLISECOND
get および set のためのフィールド値で、ミリ秒を示します。
static int MINUTE
get および set のためのフィールド値で、分を示します。
static int MONDAY
月曜日を示す DAY_OF_WEEK フィールドの値です。
static int MONTH
get および set のための、月を示すフィールド値です。
static int NOVEMBER
11 番目の月を示す MONTH フィールドの値です。
static int OCTOBER
10 番目の月を示す MONTH フィールドの値です。
static int PM
正午から真夜中の前までの時間を示す AM_PM フィールドの値です。
static int SATURDAY
土曜日を示す DAY_OF_WEEK フィールドの値です。
static int SECOND
get および set のためのフィールド値で、秒を示します。
static int SEPTEMBER
9 番目の月を示す MONTH フィールドの値です。
static int SUNDAY
日曜日を示す DAY_OF_WEEK フィールドの値です。
static int THURSDAY
木曜日を示す DAY_OF_WEEK フィールドの値です。
protected long time
このカレンダで現在設定されている時刻です。
static int TUESDAY
火曜日を示す DAY_OF_WEEK フィールドの値です。
static int UNDECIMBER
13 番目の月を示す MONTH フィールドの値です。
static int WEDNESDAY
水曜日を示す DAY_OF_WEEK フィールドの値です。
static int WEEK_OF_MONTH
get および set のためのフィールド値で、
     現在の月の何週目かを示します。
static int WEEK_OF_YEAR
get および set のためのフィールド値で、
     現在の年の何週目かを示します。
static int YEAR
get および set のための、年を示すフィールド値です。
static int ZONE_OFFSET
get および set のためのフィールド値で、
     GMT から直接計算したオフセットをミリ秒単位で示します。

---------------------------------------------------------------
import java.util.Calendar;

public class CalendarDemo {
public static void main(String args[]) {
//
int Year, Month, Date, Hour, Minute;
Calendar calendar = Calendar.getInstance();

Year = calendar.get(Calendar.YEAR);
Month = calendar.get(Calendar.MONTH) + 1;
Date = calendar.get(Calendar.DATE);
Hour = calendar.get(Calendar.HOUR);
Minute = calendar.get(Calendar.MINUTE);
System.out.println(Year + "年" + Month + "月" + Date + "日");
System.out.println(Hour + "時" + Minute + "分");
}

}
---------------------------------------------------------------
●クラス(宣言方法とそのメンバ)


クラス宣言の構文
[修飾子] class 識別子 [extends節] [implements節] {クラス本体}
*[]内は省略可能
クラス宣言に使える修飾子(アクセス制御)
 public ・・・・・・クラスの内部、同一のパッケージ、サブクラス、無関係のクラス
 修飾子なし・・・クラスの内部、同一のパッケージ
クラス宣言に使える修飾子(アクセス制御以外)
abstract
  他のクラスのスーパークラスになることを強制する。
final
  他のクラスになることを禁止する
strictfp
  浮動小数点数の機能拡張。範囲を厳密に規定する特殊な用途に使う
クラスメンバの宣言に使える修飾子(アクセス制御)
public ・・・・・・ クラスの内部、同一のパッケージ、サブクラス、無関係のクラス
protected ・・・ クラスの内部、同一のパッケージ、サブクラス
修飾子なし・・・ クラスの内部、同一のパッケージ
private・・・・・・ クラスの内部
クラスの構成要素(クラス内で宣言されるもの)
 フィールド
プリミティブ型の変数、参照型の変数(クラス、インターフェイス、配列への参照)
〔オブジェクトの持つデータ。ローカル変数に対して、
 フィールド変数やメンバ変数と呼ばれることもある〕
 メソッド
メソッド(処理手続きとローカル変数)
〔オブジェクトの持つ手続き〕
 ネストしたクラス
通常のクラスと同様(フィールドやメソッド)
〔関連性の高いクラスをクラスの内部に作る。イベント処理で利用する〕
 コンストラクタ
オブジェクト作成時の初期化処理を記述する特別なメソッド
〔クラスと同じ名前を付ける。戻り値の型を記述しない〕
 初期化子(静的初期化子)
クラスの初期化処理
〔クラスの初期化時に実行される〕
 初期化子(インスタンス初期化子)
オブジェクト作成時の初期化処理
〔そのクラスのコンストラクタの前に実行される〕


クラス宣言の例
---------------------------------------------------------------------------------

class Point{

----------------------------
// フィールド
int x; // X座標
int y; // Y座標
----------------------------
// メソッド
int getX(){
return x;
}

void move(int addx, int addy){
x = x + addx;
y = y + addy;
Nest obj = new Nest();
obj.info();
}
----------------------------
// ネストしたクラス
class Nest{
void info(){
System.out.println("X = " + x + " Y = " + y);
}
}
----------------------------
// コンストラクタ
Point(int x, int y){
this.x = x;
this.y = y;
}
----------------------------
// 初期化子
static{
// クラスの初期化処理
}
----------------------------
// 初期化子
{
// オブジェクトの初期化処理
}
}
--------------------------------------------------------------------------------
---------------------------------------------------------------
public class MainClass {
public static void main(String[] args) {
// Pointクラスのオブジェクトの生成
Point obj = new Point(10, 20);
// Pointを利用する
System.out.println("X = " + obj.getX());
// Pointを利用する
obj.move(1, 2);
}
}

class Point {
// フィールド
int x;
int y;
//・・・

// メソッド
int getX() {
return x;
}

void move(int addx, int addy) {
x = x + addx;
y = y + addy;
Nest obj = new Nest();
obj.info();
}
//・・・

// ネストしたクラス
class Nest {
void info() {
System.out.println("X = " + x + " Y = " + y);
}
}
//・・・

// コンストラクタ
Point(int x, int y) {
this.x = x;
this.y = y;
}
//・・・

// 初期化子
static {
// クラスの初期化処理
}
// 初期化子
{
// オブジェクトの初期化処理
}
}
---------------------------------------------------------------


独習Javaサーバサイド編/山田 祥寛

¥3,780
Amazon.co.jp

明解Javaによるアルゴリズムとデータ構造/柴田 望洋

¥2,520
Amazon.co.jp

SUN教科書 Javaプログラマ(SJC-P) 5.0・6.0両対応(試験番号310-055、310-065)/ポール・サンヘラ

¥3,990
Amazon.co.jp