Java中的靜態方法和實例方法的調用的理解(不同的類下的方法調用)


public class MethodCall
{
public static void main(String[] args)
{
Test.sayStatic();
Test test = new Test();
test.sayInstance();
}
}
class Test
{
public static void sayStatic()
{
System.out.println("這是一個靜態方法。");
}
public void sayInstance()
{
System.out.println("這是一個實例方法。");
}
}

我的理解:

public class Authorization {
public static final int MANAGER = 1;
public int manager;

public static void main(String[] args) {
	Authorization A=new Authorization();
	A.manager=1;
	Test B=new Test();
	
	System.out.println(B.canAccess(A.manager)+"不同類下非靜態的實例方法");
	//非靜態方法必須通過實例調用,方法是Test類下的方法,所以用Test屬性的實例來調用
	System.out.println(Test.Access(A.MANAGER)+"不同類下靜態的實例方法");
	//靜態的方法可以不需要實例來調用,可以直接用方法名調用,這里的Access方法不在Authorization類下,所以要寫上類名注明來處
	System.out.println(A.couldAccess(A.manager)+"同一個類下非靜態的實例方法");
	//這里的couldAccess方法在Authorization類下且為非靜態的,所以要用Authorization屬性的實例來調用
	System.out.println(weAccess(A.manager)+"同一個類下靜態的實例方法");
	/*這里的weAccess方法也在Authorization類下且為靜態,故不需要創建實例來調用,並且可以省略掉類名。
	  加上Authorization或者實例來調用也可以,最好是加上類名,以便使格式保持一致*/
	
	//這里的大寫的MANAGER這些變量可以看做是實例的屬性,也可以直接作為常量使用,最好是直接作為常量使用
}

public boolean couldAccess(int access) {
	if (access == Authorization.MANAGER)
	{
		return true;

	} else
	{
		return false;
	}
}

public static boolean weAccess(int access) {
	if (access == Authorization.MANAGER)
	{
		return true;
	} else
	{
		return false;
	}

}

}

另一個類Test:
public class Test {
public boolean canAccess(int access) {
if (access == Authorization.MANAGER)
{
return true;
} else
{
return false;
}
}

public static boolean Access(int access) {
	if (access == Authorization.MANAGER)
	{
		return true;
	} else
	{
		return false;
	}

}

}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM