1 | 2 | 3 |最初 次ページ >> ▼ /
2004-12-29 23:27:46
テーマ:Java

J2SE5.0の新機能(7)Static Import

Static Import

Staticなメソッドやフィールドを省略して書けるようになる。



Before

double val = Math.sin(10) + Math.cos(Math.PI);


After

import static java.lang.Math.*; // 冒頭(普段Import書くところ)で宣言。

double val = sin(10) + cos(PI);


java.lang.Mathクラスにはsinやlogなどの関数があります。以前はMath.sin(1.0)などと記述する必要がありましたが、Static Importを使えばStaticなメンバにクラス名を省略してアクセス出来るようになります。
AD
いいね!した人  |  リブログ(0)
2004-12-28 22:01:31
テーマ:Java

J2SE5.0の新機能(6)拡張for文

Enhanced for Loop

一言で言えば、foreachです。
C#のforeachをforに換えてinを:に換えるだけです。

Before

ArrayList<Integer> list = new ArrayList<Integer>();
for (Iterator i = list.iterator(); i.hasNext();)
{
Integer value=(Integer)i.next();
...
}


After

ArrayList<Integer> list = new ArrayList<Integer>();
for (Integer i : list)
{
...
}

sunのページより引用。

これが無ければコードが書けなくなるわけではないですが、コードをシンプルに分かりやすく表現できるようになります。すべての要素にアクセスするときはこの拡張for文を使うのがお勧めです。

AD
いいね!した人  |  リブログ(0)
2004-12-27 22:44:00
テーマ:Java

J2SE5.0の新機能(5)Generics

Generic Types
J2SE5.0の新機能の本命(?)のGenericsです。C++のテンプレートに相当する機能です。C#にも同様の機能が次期バージョンから搭載予定。

Before

ArrayList list = new ArrayList();
list.add(0, new Integer(42));
int total = ((Integer)list.get(0)).intValue();

After

ArrayList<Integer> list = new ArrayList<Integer>();
list.add(0, new Integer(42));
int total = list.get(0).intValue();

(sunのページより引用。Autoboxingを使えばnew Integer(42)は単に42と書ける)

従来javaの標準ライブラリのコンテナは要素としてObject型の変数を取っていました。これだと、Integerしか入れないにもかかわらず、コンテナから取り出すときにキャストする必要がありました。これを解消するためにInteger専用のコンテナを作ろうとすると、扱いたい型が増えるたびにいくつも作らなければいけません。

良く考えれば、ArrayListにしろHashtableにしろアルゴリズムはデータの型に依存するものではないので、型を特定しない形でアルゴリズムだけ書いて色々な型で使いまわすのが賢い選択です。それを現状のObject型という形でなく実現するのがGenericsです。

J2SE5.0ではArrayListなど主要コンテナはGenericsを使って書かれているので、上の例のような書き方が可能になっています。上の例はGenericsで書かれたクラスを使う例ですが、Genericsを使ってクラスを設計する場合については別に書くかもしれません。これ以外にGenericなメソッドというのもあります。詳しくは以下を参照してください(英語)。

http://java.sun.com/j2se/1.5/pdf/generics-tutorial.pdf
AD
いいね!した人  |  リブログ(0)
2004-12-27 03:06:05
テーマ:カブロボ

[カブロボ]上手く動かず

少し前の話ですが練習ラウンドがありました。

現在何日目かという情報を元に処理を切り替える予定だったのですが、予期した通りに動作しませんでした。手元では動いていたので困りました。なんとか締め切りに間に合わせたいです。

追記[2004-12-17 07:42]
売買の履歴を見て切り替えるように変更しました。これで多分動くと思われます。というわけで、後は結果待ちということになります。結果が出るのが2月末なのでしばらくかかります。個人的にはその前に卒業論文が忙しいです。
いいね!した人  |  リブログ(0)
2004-12-26 16:44:13
テーマ:Tips

フリーソフトリンク集

研究室の新しいWindowsマシンをセットアップする機会があったので、ついでに主要ソフトへのリンクを張る事にします。セットアップ時のメモを含みます。個別バージョンのページをはると内容が古くなるかもしれないので、JavaならJ2SE5.0のダウンロードページではなくsun.java.comみたいな方針で行きます。

アクセス前に
Firewallの確認をしてまずWindows Update。

普通に使うもの
Acrobat Reader
MSN Messenger
Lhaca
Terapad

Terapadはインストール後、ショートカットをC:Documents and Settingsユーザー名SendToに置くと右クリックの「送る」に出てくる。このときついでに、フォルダ表示関連(拡張子表示、隠しファイル表示)の設定もしておく。

プログラミング系
Java
Eclipse
.NET FrameworkはWindows Update時に入れておく。

論文を書く
TeX

パスワード管理
ID Manager

今後、セットアップが進むにつれてこのページは更新されていく見込みです。

いいね!した人  |  リブログ(0)
2004-12-26 04:28:48
テーマ:Java

J2SE5.0の新機能(4)可変長引数

Varargs(可変長引数)
	static void test1(String ... args)
	{
		for(int i = 0;i < args.length;i++)
		{
			System.out.println(args[i]);
		}
	}

	public static void main(String[] args)
	{
		test1("test","abcde","asdf");
	}

J2SE5.0では可変長引数がサポートされました。これまたC,C++,C#にはあってJavaには無かったものです。可変長引数は最後の引数として記述するする必要があるようです。これを利用してC言語ではおなじみのprintf(書式付出力)が標準ライブラリに追加されました。これについては別の機会に書きます。

JavaはC,C++から不要なものを取り去るというコンセプトでしたが、ここに来て機能を削りすぎたのを認めている感じですね。
いいね!した人  |  リブログ(0)
2004-12-25 21:41:39
テーマ:Java

J2SE5.0の新機能(3)enum

Enumerated Types

宣言
public enum Color { black , white };


void put(Color color,int x,int y)
{
if(color == Color.white){ .... }else{ .... }
}

enumは定数をひとまとまりにする用途に用途に使えます。型名が付くので定数より便利になります。
C++やC#にはあるのですがJavaにはありませんでした。これが導入される前はprivateなコンストラクタしかないクラスにstatic finalな変数を持たせる方法とかで解決していたようです。
いいね!した人  |  リブログ(0)
2004-12-25 21:31:10
テーマ:Java

J2SE5.0の新機能(2)Autoboxing

Autoboxing and Auto-Unboxing of Primitive Types

Before

Integer i = new Integer(1);
int j = i.intValue();

After

Integer i = 1;
int j = i;

自動でプリミティブ型とそのラッパークラス間の変換を行ってくれる機能です。標準ライブラリのコンテナにはプリミティブ型を入れることができないので、こういう機能があると便利です。C#にはあった機能。
いいね!した人  |  リブログ(0)
2004-12-25 21:26:18
テーマ:Java

J2SE5.0の新機能(1)

J2SE5.0(Tiger)の新機能について書いてみようと思います。とりあえずまとめ(リンクの紹介)から。個別の機能については次回以降で扱おうと思います。英語が読める方は下のリンクを読んだほうが早いです。

どこかの解説の焼き直しになるといけないので、他のサイトを見ずにSunのページだけを参照して書いてみる事にします。(とは言っても以前見たものをある程度記憶しているので全くオリジナルではないかもしれません。)

J2SE5.0新要素に関するSunのページ
http://java.sun.com/developer/technicalArticles/releases/j2se15/
http://java.sun.com/j2se/1.5.0/docs/relnotes/features.html

ちなみに12/20にJ2SE5.0はUpdate1が出ています。バグフィックス中心のようです。
http://java.sun.com/j2se/1.5.0/download.jsp

その他いくつかリンク

APIドキュメント
1.5.0でなく5.0と呼ぶことについて

目次
Metadata
Generic Types
Autoboxing and Auto-Unboxing of Primitive Types
Enhanced for Loop
Enumerated Types
Static Import
Formatted Output
Formatted Input
Varargs
いいね!した人  |  リブログ(0)
2004-12-24 02:29:49
テーマ:Tips

QRコードの技術情報

QRコード(2次元バーコード)について気になったので調べてみました。QRコード自体の仕様は一つしかないのですが、携帯用の仕様(urlやメールアドレスの書き方等)は各社微妙に異なるようです。どのキャリアでも読めるQRコードを書きたいと思っていて、どこかに資料(まとめているサイト)が無いか探しています。
以下、QRコードと携帯各社仕様へのリンクです。


QRコードドットコム
http://www.qrcode.com/

docomo
http://www.nttdocomo.co.jp/p_s/imode/barcode/

au
http://www.au.kddi.com/ezfactory/tec/two_dimensions/index.html

vodafone
http://www.dp.j-phone.com/dp/tool_dl/qrcode/tech.php
いいね!した人  |  リブログ(0)
1 | 2 | 3 |最初 次ページ >> ▼ /

AD

ブログをはじめる

たくさんの芸能人・有名人が
書いているAmebaブログを
無料で簡単にはじめることができます。

公式トップブロガーへ応募

多くの方にご紹介したいブログを
執筆する方を「公式トップブロガー」
として認定しております。

芸能人・有名人ブログを開設

Amebaブログでは、芸能人・有名人ブログを
ご希望される著名人の方/事務所様を
随時募集しております。