『壹』 java Main函數怎麼調用其他函數。 其他類。
主函數main前必須有static修飾符,static表示是靜態。
一般,在靜態的方法中,若要|-直接-|調用其他方法,那麼被調用的也必須是靜態。
你的程序中包含兩個部分
方法getInt() 和主函數main 其中主函數是靜態(main必須是靜態)。
那麼要在main中直接調用getInt()是不可以了,因為getInt沒有用static修飾,也就是說getInt不是靜態。
將public void getInt() 修改成 public static void getInt() ,追加靜態修飾符static後可直接調用。
主函數main修改為
public static void main(String[] args)
{
getInt(); //這里調用了上面的方法
System.out.println("總共有括弧對數:");
}
返回值:
有些方法是帶有返回值的,取決於你的用途。能不能帶返回值取決於void修飾符
普通方法,無返回值void修飾 。如 public void fangfa()這是無返回值的
public int fangfa() 這個是有返回值的,而且返回值必須是int
舉個例子
public int getPlayercounts()
{
int playercount = 0 ;//一般先初始化一個相應的變數待用(重要)
for (int i = 0 ; i < 99 ; i ++) //一些相關的計算和方法開始..
playercount ++ ;
return playercount; //返回一個int值(重要,而且是必須)
}
當你的方法不是用void修飾 而是用其他數據類型修飾,均是要有返回值的,也就是說在方法的結束為止至少要有一個return + 相應的數據類型的變數 來結束。
那麼返回值究竟有什麼意義呢?
看下面這個例子、
public static int getPlayercounts() //注意我用了static 這是一個靜態方法
{
int playercount = 0 ;//一般先初始化一個相應的變數待用(重要)
for (int i = 0 ; i < 99 ; i ++) //一些相關的計算和方法開始..
playercount ++ ;
return playercount; //返回一個int值(重要,而且是必須)
}
public static voin main(String[] args)
{
System.out.println("一共有"+getPlayercounts()+"個玩家");
}
看出來了吧,getPlayercounts()執行後 會獲得執行時得到的int數,在一些需要最後得到某個結果的方法中,用含有返回值的方法是非常方便的。
==============================================
你的代碼完全修改後如下,因為你需要的是得到括弧數,所以將你的原有方法改成一個返回int值得方法。
public class java
{
public static int getInt()// 原來是 public void getInt() ,修改後增加了static修飾, int替換了void
{
String strChar="a(bc)()()dnn()()j";
int iX=0;
int iY=0;
for(int p=0; p<strChar.length();p++)
{
String getstr=strChar.substring(p,p+1);
if(getstr.equals("(")){iX++;}
if(getstr.equals(")")){iY++;}
}
return Math.min(iY, iX);//取兩者之間的最小值(即括弧對數)作為返回值
}
public static void main(String[] args)
{
System.out.println("總共有括弧對數:"+getInt());
}
}
郁悶 寫了半天發現你已經認可了。。
『貳』 java 在主函數中調用函數的方法
調用方法:先生成一個對象,用「對象.方法()」的方式調用。
調用說明:java中的main方法是靜態的,用於程序的入口,在靜態方法中無法調用非靜態方法,只能調用靜態方法。想調用靜態方法的話就要先生成該類的一個對象,通過對象調用非靜態方法。
調用舉例:
public class A{
public static void main(String[] args){
A a = new A();
a.aaa();
}
public void aaa(){}
}
『叄』 java主方法如何調用非靜態方法
java主方法調用非靜態方法的步驟:
1、新建一個類,本例類名「NoStaticMethod」,聲明一些成員變數,創建一個主方法main(),一個非靜態方法Method_1()。
2、類的全部代碼。
** * Created by Administrator on 2016/7/25.
*/
public class NOstaticMethod {
//satement new variable name: studentName
public static String studentName = "xxx";
//satetment new variable nmae: country
public static String country;
//satement new variable name: nation
private static String nation;
//satement new variable name: subject
public String subject = "物理";
//satement new variable name: school
private String school;
//create main method
public static void main(String[] args) {
//NOstaticMethod.Method_1(); 在靜態方法main中是不能直接調用非靜態方法Method_1的
//只能通過創建類的對象,再由對象去調用成員方法以及成員變數。
NOstaticMethod wangyan = new NOstaticMethod();
//call methol
wangyan.Method_1();
// String physics= subject;在靜態方法中也是不能訪問非靜態成員變數的
//call not static variable
String physics = wangyan.subject;
System.out.println("在主方法main()中只能通過對象來調用非靜態成員變數subject:" + physics);
}
//create new method name: Method_1()
public void Method_1() {
System.out.println("Method_1是一個公共的、非靜態的方法");
System.out.println("在非靜態方法Method_1中訪問靜態成員變數「學生姓名」(studentName):" + studentName);
System.out.println("在method_1中直接調用非靜態成員變數subject:" + subject);
}
3、運行結果
Method_1是一個公共的、非靜態的方法
在非靜態方法Method_1中訪問靜態成員變數「學生姓名」(studentName)
在method_1中直接調用非靜態成員變數subject(科目)
在主方法main()中只能通過對象來調用非靜態成員變數subject
4、分析代碼
public static void main(String[] args) {
//NOstaticMethod.Method_1(); 在靜態方法main中是不能直接調用非靜態方法Method_1的
//只能通過創建類的對象,再由對象去調用成員方法以及成員變數。
NOstaticMethod wangyan = new NOstaticMethod();
//call methol
wangyan.Method_1();
// String physics= subject; 在靜態方法中也是不能訪問非靜態成員變數的
//call not static variable
String physics = wangyan.subject;
System.out.println("在主方法main()中只能通過對象來調用非靜態成員變數subject:" + physics);
}
『肆』 是否可以從一個static方法內部發出對非static方法的調用
(1) 問題分析
探討static方法與非static方法之間的調用關系。
(2) 核心答案講解
在Java中,static方法無法直接調用非static方法。static方法屬於類,而非static方法關聯於對象,需先創建對象後調用。因此,若在static方法內嘗試調用非static方法,因未創建對象,非static方法無法正確關聯至對象,導致調用失敗。
(3) 問題擴展
static關鍵詞用於標記全局或靜態成員。它修飾的變數為靜態變數,方法為靜態方法,而靜態代碼塊則在類載入時執行。
靜態變數無需實例化即可訪問,靜態方法可通過類名調用,無需創建對象。
(4) 結合項目中使用
1.工具類常使用static定義方法,簡化對象創建與方法調用,減少代碼冗餘。例如UUIDUtils。
2.單例模式通過靜態方法實現,確保類內只存在一個實例,避免多處創建對象,提高代碼效率。
『伍』 java中main函數怎麼調用外部非static方法
方法可以分為靜態方法和實例方法
在main函數里調用非static方法(實例方法),那麼可以通過創建實例對象,然後來調用實例方法
具體代碼和注釋如下
publicclassFunDemo{
//靜態方法
publicstaticvoidsayHello(Stringname){
System.out.println("Hello"+name);
}
//實例方法
publicvoidsayBye(Stringname){
System.out.println("ByeBye"+name);;
}
//main方法
publicstaticvoidmain(String[]args){
FunDemo.sayHello("tom");//類名.方法名去調用靜態的方法
sayHello("jack");//本類里調用靜態方法,類名就可以省略了
FunDemofn=newFunDemo();//創建本類的實例對象
fn.sayBye("tom");//實例對象.方法名去調用實例方法
fn.sayBye("jack");
fn.sayHello("Word");//雖然實例對象也可以調用靜態方法,但是不推薦這種調用方式
}
}
輸出
Hellotom
Hellojack
ByeByetom
ByeByejack
HelloWord
『陸』 在Java 中非static方法如何調用
說的很清楚了 先實例化再使用
就是先new一個對象,再用這個對象調用它的方法