954,536 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

using a varible from main method

heres the start

public class work
{
public static void main (String [] args)
{

int number = 1;
}
public static boolean ifstate()
{
if ( number == 0 )
blah blah
}

question - how do I get the second method to call on the varible from the first.

thanks

ultimate_fusion
Light Poster
44 posts since Oct 2004
Reputation Points: 10
Solved Threads: 0
 

It is a matter of scope.
Put

int number = 1

outside the Main method (at the begining of your class.)

Look up the deffinition of scope in Java to learn more

jerbo
Junior Poster in Training
84 posts since Sep 2004
Reputation Points: 11
Solved Threads: 1
 

A better way is to pass it to the second method as a parameter. Especially since main is static and pulling the variable outside main would cause all kinds of other problems (especially if multiple instances of the class are created).

jwenting
duckman
Team Colleague
8,392 posts since Nov 2004
Reputation Points: 1,662
Solved Threads: 337
 

how do you "pass it to the second method as a parameter"
is it
public static int ifstate(int number)
????

ultimate_fusion
Light Poster
44 posts since Oct 2004
Reputation Points: 10
Solved Threads: 0
 

Try this (in reference to passing the variable):

public class work {

   public static void main (String [] args) {
      boolean booleanAnswer;
      int number = 1;
      // Passes copy of number to ifstate
      booleanAnswer = ifstate(number);  
   }

   public static boolean ifstate(int passedNumber) {
      if ( passedNumber == 0 )
         //blah blah
   }

Let me know if it is not clear

}//end class
jerbo
Junior Poster in Training
84 posts since Sep 2004
Reputation Points: 11
Solved Threads: 1
 

not clear, i dont need a boolean , sorry to have had posted it at the top
i just need a simple number to pass

ultimate_fusion
Light Poster
44 posts since Oct 2004
Reputation Points: 10
Solved Threads: 0
 

It is a matter of scope. Put

int number = 1

outside the Main method (at the begining of your class.)

Look up the deffinition of scope in Java to learn more

i did that and got
non-static variable thirdNo cannot be referenced from a static context
???

ultimate_fusion
Light Poster
44 posts since Oct 2004
Reputation Points: 10
Solved Threads: 0
 

quick question
how do you also pass(call) more than one number/char/boolean at a time?
(or all 3 types at once)

ultimate_fusion
Light Poster
44 posts since Oct 2004
Reputation Points: 10
Solved Threads: 0
 

Try this (in reference to passing the variable):

public class work {

   public static void main (String [] args) {
      boolean booleanAnswer;
      int number = 1;
      // Passes copy of number to ifstate
      booleanAnswer = ifstate(number);  
   }

   public static boolean ifstate(int passedNumber) {
      if ( passedNumber == 0 )
         //blah blah
   }

Let me know if it is not clear

}//end class


OK, here we go.
The reason for the boolean is you declared 'ifstate' with a return type of boolean. In reality, your "blah blah" (which I assume is shorthand for the remaining code in your method,) would contain a return statement of type boolean.

Where did you place "int number = 1;" when you placed it outside of main?
If you placed it outside of main, it should look like this:

public class work {
   int number = 1;  // Creates the variable outside of the class

   public static void main (String [] args) {
      boolean booleanAnswer;
      // Passes copy of number to ifstate
      booleanAnswer = ifstate(number);  
   }

   public static boolean ifstate(int passedNumber) {
      if ( passedNumber == 0 )
         //blah blah
   }

Let me know if it is not clear

}//end class


To declare and pass multiple parameters you separate them with a coma.

//Passing to a method
MyMethod(1, parm2, "Parm3");

//The declared method would look like this:
public void MyMethod(int p1, double p2, String p3) {
   // Your code here
}


Note, in my example above, I passed an Integer, a Double, and a String value. Also, since I have a 'void' return type I did not need to assign anything. I just called the method by specifying the name (and passing the parameters.)

My suggestion is to start reading some more on the basic syntax for Java.

Most of what I have tried to explaine to you is very basic, and you should be able to understand it better with a good book on Java.

If you have had any VB programming the consepts are simular.

Good Luck! :)

jerbo
Junior Poster in Training
84 posts since Sep 2004
Reputation Points: 11
Solved Threads: 1
 

have ever coded anything in Java before?
If not have ever read a single tutorial or beginners' book about Java?

All these questions are so basic they're part of the very earliest you should have been taught.

jwenting
duckman
Team Colleague
8,392 posts since Nov 2004
Reputation Points: 1,662
Solved Threads: 337
 

yes and yes,
i know everything like for loops, do while, switch, arrays its just methods im stuck on.

ultimate_fusion
Light Poster
44 posts since Oct 2004
Reputation Points: 10
Solved Threads: 0
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You