※ ChatGPTを利用し、要約された質問です(原文:Javaのクラス内の文法について)
Javaのクラス内の文法について
このQ&Aのポイント
Javaのクラス内で使用される特殊な文法について解説します。
「static{ UserBean u1 = new ~ 」という記述について、意味や使い方を詳しく説明します。
この書き方がどのような文法であり、なぜコンパイルが通るのかを明確に解説します。
Javaでクラスを作るときこのような記述を見たのですが、
この4行目から始まる「static{ UserBean u1 = new ~ 」とは
意味は分かるのですが、どういう文法になっているのでしょうか?
変数名と型を宣言しているのかと思ったのですが、
この書き方はただの文のようですし、
なぜこの書き方がコンパイルを通るのでしょうか?
まだJavaは入門レベルのため、この書き方について
解説してあるサイトなどももしあればぜひ教えてください。
public class UserDAO {
private static UserDAO userdao = new UserDAO();
private static ArrayList<UserBean> userlist = new ArrayList<UserBean>(5);
static {
UserBean u1 = new UserBean(1, "suzuki", "Tokyo");
UserBean u2 = new UserBean(2, "sato", "Chiba");
UserBean u3 = new UserBean(3, "ando", "Ibaraki");
UserBean u4 = new UserBean(4, "yasuda", "Saitama");
UserBean u5 = new UserBean(5, "mizuno", "Tokyo");
userlist.add( u1 );
userlist.add( u2 );
userlist.add( u3 );
userlist.add( u4 );
userlist.add( u5 );
}
// Singletonパターンで単一のインスタンスを取得
public static UserDAO getInstance(){
return userdao;
}
~~以下メソッド定義
お礼
すみません、さきほど自分でもwikipediaを見ていて 静的初期化子とインスタンス初期化子というのを 見つけて自己解決してしまいました。 わざわざ見つけてきていただいてありがとうございました。 お手数おかけしてすみませんでした。