【问题标题】:calling functions without objects or passing values调用没有对象或传递值的函数
【发布时间】:2015-01-25 18:57:41
【问题描述】:

我想在函数内部调用用户定义的函数,而不创建对象或将任何值传递给被调用函数。有没有办法做到这一点?考虑以下代码

 import java.io.*;
 public class sorting
{
int number[]=new int[5];
void input()throws IOException
{
    BufferedReader in=new BufferedReader(new InputStreamReader(System.in));

    System.out.println("Enter 5 numbers");
    for(int i=0;i<5;i++)
    {
        number[i]=Integer.parseInt(in.readLine());
    }
}

void sort()
{
    int no;
    for(int i=0;i<5-1;i++)
    {
        for(int j=i+1;j<5;j++)
        {
            if(number[j]<number[i])
            {
                no=number[i];
                number[i]=number[j];
                number[j]=no;
            }
        }
    }
}

void display()
{
    for(int i=0;i<5;i++)
    {
        System.out.print(number[i]+"\t");
    }
}

public static void main()throws IOException
{
    BufferedReader in=new BufferedReader(new InputStreamReader(System.in));

    sorting o1=new sorting();

    o1.input();
    o1.sort();
    o1.display();
}

}

这是顺序排序的代码。在 void main 我创建了一个对象 o1 并调用了方法。但我不想调用 3 种方法,而是希望只调用其中一种来完成我的工作。据我所知,可以通过在另一个函数中调用一个函数来完成。

【问题讨论】:

  • 认为你需要的是一个static方法
  • 不清楚你真正在寻找什么,但我想你可以使用根本不需要创建任何对象的类函数,但我不知道你是什么意思传递任何值?有代码吗?

标签: java oop user-defined-functions


【解决方案1】:

是的,这是可能的。以下代码是满足您条件的示例:

//static -> no object creation
public static void a() {
    b(); //call function inside a function
}

//static -> no object creation
//no arguments -> you do not pass any value to your function
public static void b() {
    System.out.println("output something");
}

这回答了你的问题。如果对您没有帮助,请重新表述您的问题,以便更清楚您的问题是什么。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-13
    • 2014-06-08
    • 2012-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-25
    相关资源
    最近更新 更多