ソース掲示板




すべてから検索

キーワード   条件 表示 現行ログ 過去ログ トピックス 名前 本文
Java の static メソッド と instance メソッド
日時: 2015/09/14 19:25
名前: lightbox



Java のコンソールアプリケーションのエントリポイントは public static void main(String[] args) なので、static です。ここから呼び出す事のできるメソッドと振る舞いのサンプルは、以下以降になります
Main.java
public class Main {

	public static void main(String[] args) {
		// static 内から単純にメソッド名で呼べるのは、Main 内の static メソッド
		staticMethod1();	// Main. を省略
		Main.staticMethod2();
		
		Sub.staticMethod1();		// Sub. を省略はできません
		Sub.staticMethod2();
	}
	
	public static void staticMethod1() {
		
		System.out.println("Main.staticMethod1()");
		
	}
	
	public static void staticMethod2() {
		
		System.out.println("Main.staticMethod2()");
		
	}

}
Sub.java
public class Sub {

	public static void staticMethod1() {
		
		System.out.println("Sub.staticMethod1()");
		
	}
	
	public static void staticMethod2() {
		
		System.out.println("Sub.staticMethod2()");
		
	}
	
}
メンテナンス

instance メソッド ( No.1 )
日時: 2015/09/14 19:26
名前: lightbox


日時: 2015/09/14 19:26
名前: lightbox
Main.java

public class Main {

	public static void main(String[] args) {
		// instance メソッドは、自分自身のインスタンスを作成して呼びます
		
		Main main = new Main();
		main.instanceMethod1();
		main.instanceMethod2();

		// 同様に他のクラスもインスタンスを作成して呼びます
		Sub sub = new Sub();
		sub.instanceMethod1();
		sub.instanceMethod2();
		
	}
	
	public void instanceMethod1() {
		
		System.out.println(new Object(){
			@Override
			public String toString() {
				// this は、Object のインスタンスです
				return this.getClass().toString() + ":instanceMethod1()";
			}
			
		}.toString());
		
	}
	
	public void instanceMethod2() {
		
		System.out.println(new Object(){
			@Override
			public String toString() {
				// this は、Main のインスタンスです
				return Main.this.getClass().toString() + ":instanceMethod2()";
			}
			
		}.toString());
		
	}

}
Sub.java

public class Sub {

	public void instanceMethod1() {
		
		System.out.println(Sub.this.toString() + ":instanceMethod1()");
		
	}
	
	public void instanceMethod2() {
		
		System.out.println(Sub.this.toString() + ":instanceMethod2()");
		
	}
	
}
このアーティクルの参照用URLをクリップボードにコピー メンテナンス