| この記事の要点 |
|---|
|
Javaのstaticと非staticの違いについての記事です。
以下、プログラムを用いてそれぞれの違いについて検証します。
【検証プログラム】
□呼び出される側のクラス
public class TestClass {
//static変数
private static int staticVal;
//インスタンス(メンバ)変数
private int instanceVal;
//staticメソッド
public static int getValStaticMethod() {
return staticVal;
}
//インスタンス(メンバ)メソッド
public int getValInstanceMethod() {
return this.instanceVal;
}
//staticメソッド
public static void setValStaticMethod(int arg) {
staticVal = arg;
}
//インスタンス(メンバ)メソッド
public void setValInstanceMethod(int arg) {
this.instanceVal = arg;
}
}
□呼び出す側のクラス
public class main {
public static void main(String[] args) {
//static変数に値を設定(メソッドの使用や変数を参照する際にインスタンス化する必要がない)
TestClass.setValStaticMethod(100);
//static変数を取得
System.out.println("staticVal = " + TestClass.getValStaticMethod());
/*
* static変数とインスタンス変数の違いを検証
*/
//オブジェクト1を生成してstatic変数とインスタンス変数に値を設定する
TestClass obj1 = new TestClass();
obj1.setValInstanceMethod(111);
obj1.setValStaticMethod(200); //オブジェクトにしてstaticメソッドを呼び出すこともできるが、意味合いは同じ
//オブジェクト2を生成してstatic変数とインスタンス変数に値を設定する
TestClass obj2 = new TestClass();
obj2.setValInstanceMethod(222);
obj2.setValStaticMethod(300);
//インスタンス変数はオブジェクト毎に別物扱いされるが、static変数はクラスで共有の値となる
System.out.println("obj1 instanceVal = " + obj1.getValInstanceMethod());
System.out.println("obj1 staticVal = " + obj1.getValStaticMethod());
}
}
【出力結果】
staticVal = 100
obj1 instanceVal = 111
obj1 staticVal = 300
子ページはありません
同階層のページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスのソフト一覧|Blender・Metasequoiaと用途別の選び方
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Visual Studio「デザイナーを表示できません」エラーの原因と対処 2026-10-28 12:06:00
- SSH 認証に失敗しました。再試行してください の対処 2026-10-28 12:06:00
- SSH2 秘密鍵の読み込みに失敗しました の原因と対処 2026-10-28 12:06:00
- TeraTerm のよくあるエラーと対処法完全ガイド — Connection refused / 2026-10-28 12:06:00
- Visual Studio エラー一覧|コンパイルエラー・警告の確認方法と対処 2026-10-28 11:39:57
- Whitelabel Error Page の原因と消し方|Spring Boot のエラーページ 2026-10-28 11:39:57
- Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法 2026-10-28 11:39:57
- SQL WHERE 句完全ガイド 2026-10-28 11:39:57
- SQL JOIN 完全ガイド (INNER/LEFT/RIGHT/FULL OUTER) 2026-10-28 11:39:57
- tomcat の起動 / 停止ログと catalina.log・catalina.out の違い 2026-10-28 10:24:23
- Tomcat の起動確認方法 5 つ|localhost:8080・ポート・プロセス・ログ 2026-10-28 10:24:23
- Oracle 19c COMMITの使い方: 暗黙コミット・自動確定・応答不明時の確認 2026-10-28 09:59:09
- Oracle 19c DELETE文|削除対象の確認・COMMIT前の判断・ROLLBACKの条件 2026-10-28 09:59:09
- Oracle 19c INSERT文|INSERT ALL・SELECT・RETURNINGとMERGEの使い分け 2026-10-28 09:59:09
- Oracle 19cのトランザクション制御|COMMIT・ROLLBACK・分離レベルと接続設定 2026-10-28 09:59:09