|
staticとは:SJC-P(310-035)対策Java用語集
Java認定資格(SJC-P/310-035)を一発合格したい! このサイトは、そんなあなたを本気で応援します!! SJC-P(310-035)対策のメルマガ問題集も好評発刊中。 ぜひあなたの受験に役立ててください。 メールマガジンの購読はもちろん無料です! 登録はこちらから→SJC-P対策メルマガ問題集 |
Java用語集:staticstatic について:簡単に説明すると
static とは
修飾子
の一つであり Java の
キーワード
の一つです。 static について:もっと詳しく
static には以下の3通りの使用方法があります。 class Test{ public static void main( String argv[] ){ System.out.println( "Bugの数:" + Bug.num ); Bug bug1 = new Bug( "無限ループ" ); System.out.println( "bug1の名前:" + bug1.getName() ); System.out.println( "Bugの数:" + bug1.getNum() ); Bug bug2 = new Bug( "メモリリーク" ); System.out.println( "bug2の名前:" + bug2.getName() ); System.out.println( "Bugの数:" + bug2.getNum() ); Bug bug3 = new Bug( "不正な値" ); System.out.println( "bug3の名前:" + bug3.getName() ); System.out.println( "Bugの数:" + bug3.getNum() ); } } class Bug{ static int num = 0; String name = "hoge"; public Bug( String s ){ name = s; num ++; } public int getNum(){ return num; } public String getName(){ return name; } } >javac Test.java >java Test Bugの数:0 bug1の名前:無限ループ Bugの数:1 bug2の名前:メモリリーク Bugの数:2 bug3の名前:不正な値 Bugの数:3
static で宣言されたフィールド num はインスタンスとは無関係に、クラス Bug に関連付けられている様子が分かりますね。 public int getNum(){ return num; }
非 static なメソッドから、static なフィールド num にアクセスできています。 class Test{ public static void main( String argv[] ){ System.out.println( "Bugの数:" + Bug.num ); Bug bug1 = new Bug( "無限ループ" ); System.out.println( "Bugの数:" + Bug.num ); System.out.println( "Bugの数:" + bug1.num ); Bug bug2 = new Bug( "メモリリーク" ); System.out.println( "Bugの数:" + Bug.num ); System.out.println( "Bugの数:" + bug2.num ); } } class Bug{ static int num = 0; String name = "hoge"; public Bug( String s ){ name = s; num ++; } public int getNum(){ return num; } public String getName(){ return name; } } >javac Test.java >java Test Bugの数:0 Bugの数:1 Bugの数:1 Bugの数:2 Bugの数:2
インスタンスの参照 bug1 、 bug2 から static なフィールドにアクセスできています。 class Test{ public static void main( String argv[] ){ Bug bug1 = new Bug( "無限ループ" ); System.out.println( "Bugの名前:" + Bug.name ); System.out.println( "Bugの名前:" + Bug.getName() ); } } class Bug{ static int num = 0; String name = "hoge"; public Bug( String s ){ name = s; num ++; } public int getNum(){ return num; } public String getName(){ return name; } } >javac Test.java:4: static でない変数 name を static コンテキストから 参照することはできません。 System.out.println( "Bugの名前: " + Bug.name ); ^ Test.java:5: static でないメソッド getName() を static コンテキスト から参照することはできません。 System.out.println( "Bugの名前: " + Bug.getName() ); ^
非 static なメンバはインスタンスと関連して記憶されています。 class Test{ public static void main( String argv[] ){ Bug bug1 = new Bug( "無限ループ" ); System.out.println( "Bugの名前:" + Bug.getName() ); } } class Bug{ static int num = 0; String name = "hoge"; public Bug( String s ){ name = s; num ++; } public int getNum(){ return num; } public static String getName(){ return name; } } >javac Test.java:4: static でない変数 name を static コンテキストから 参照することはできません。 public static String getName(){ return name; } ^
これもクラスに関連付けられたメソッドからだと、どのインスタンス
のフィールド( name )にアクセスしたいのか、コンパイラが判別できないから
エラーになってしまいます。
要するにインスタンスや、インスタンスに関連付けられた非 static なメンバからは
全てのメンバにアクセスできます。 |
SJC-P対策問題集
Java認定試験( SJC-P/310-035 )対策のメルマガ問題集も好評発刊中!
もちろん無料です。 SJC-P対策参考書
現在、Java認定試験(SJC-P/310-035)対策の参考書は本当にたくさん出版されてます。 SJC-P対策Java用語集
Java認定試験( SJC-P/310-035 )合格のために必要な Java の用語を集めました。 更新履歴
このサイトの最新情報はここで確認できます。 Javaを始める人へ
これからJavaを始めようとしているあなたへ。 Java認定資格の概要
Java認定資格にはどのようなものがあるのか。 LINK
Javaの勉強に役立つリンク。 このサイトについて
このサイト「1発合格★Java認定試験!」についての説明です。 ちょっとひと息
仕事や試験勉強に疲れたら、ここでちょっと一息つきませんか。 |
これからJavaを始める人へ / Java認定資格の概要
SJC-P対策Java用語集 / SJC-P対策問題集 / SJC-P対策参考書
このサイトについて / ちょっとひと息 / 更新履歴 / LINK
このサイトはどのページにでも直接リンクして頂いて結構です。リンク大歓迎!
このページのトップページのURLはhttp://sjc-p.obx21.com/です。
Java関連情報
Spring / JSF(JavaServer Faces) / Hibernate / Jbuilder / TOMCAT入門 / NetBeans / JUnit / Struts
Strutsリファレンス / ANT / TOMCAT / JavaでWebサービス / JDBC / JBoss / J2EE / iアプリ
EJB / アプレット / JavaとXML / JMF(Java Media Framework) / Java3D / Jakarta Commons / JNI / OracleとJava
EclipseでJava入門 / Java RMI, CORBA / JSP/サーブレット入門・初心者向け / Javaネットワークプログラミング / WebLogic