‘壹’ 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一个对象,再用这个对象调用它的方法