怎么用java在主类中调用另一个类的私有方法

怎么用java在主类中调用另一个类的私有方法,第1张

//测试类
class MyTest {
    public void publicMethod(Object o) {
        Systemoutprintln("调用的公共方法 " + o);
    }
    /
      类的私有方法
     /
    private void privateMethod(Object o) {
        Systemoutprintln("调用了私有方法 " + o);
    }
}

新建main方法

import javalangreflectMethod;
public class ReflectionTest {
    public static void main(String args[]) throws Exception{
        MyTest myTest = new MyTest();
        // 调用公共方法
        myTestpublicMethod("传入参数");
        // 编译报错
        // myTestprivateMethod();
        // 获得类的私有方法
        Method method = MyTestclassgetDeclaredMethod("privateMethod",Objectclass);
        // 开启私有访问权限
        methodsetAccessible(true);
        methodinvoke(myTest,"传入参数");
    }
}

只能通过反射才能调用私有方法

方法1 新建一个类。然后在调用类中先进行被调用类实例化,然后通过实例化的对象访问。例如:

//先定义一个类

//实例化,调用

方法2新建一个类,将该类中需要被调用的方法设置为静态(static),加了static后,就可以用类名直接调用。然后在调用类中直接通过类名进行访问。调用格式为:类名方法名(参数表)。例如:

扩展资料:

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。

Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点  。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等  。

参考资料:

Java 类与类之间的调用--CSDN

import javaio;
class Runtime1
{
public Runtime1()
{
try{
RuntimegetRuntime()exec("C:\\Program Files\\Microsoft Visual Studio\\Common\\MSDev98\\Bin\\MSDEVEXE");
}
catch(Exception e)
{
}
}
public static void main(String []args)
{
new Runtime1();
}
}
//把代码第7行exec后面的括号里里面换成你应用程序的路径即可,注意路径加双斜杆

你是说Main函数,还是main()函数?
如果Main,那和一般的函数没区别,如果是main(),则不能直接调用。但可以通过java的Runtime类去执行。
比如你的D:盘根下有个java类 Helloclass,里面有main()函数
你的执行类是TestClass
public class TestClass {
public static void main(String argv []) {
String cmdstr = "cmd /c java d:/Hello";
Runtime run = RuntimegetRuntime();
try {
Process p = runexec(cmdstr);
BufferedInputStream in = new BufferedInputStream(pgetInputStream());
BufferedReader inBr = new BufferedReader(new InputStreamReader(in));
String lineStr;
while ((lineStr = inBrreadLine()) != null)
Systemoutprintln(lineStr);
if (pwaitFor() != 0) {
if (pexitValue() == 1)//pexitValue()==0表示正常结束,1:非正常结束
Systemerrprintln("命令执行失败!");
}
inBrclose();
inclose();
} catch (Exception e) {
eprintStackTrace();
}
}
}这样去调用。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/13170061.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-30
下一篇2025-08-30

发表评论

登录后才能评论

评论列表(0条)

    保存