classes in a package talking to each other

so say if I have few classes all in
/a/dir/where/classes/are
and I am saying
package a.dir.where.classes.are;
at the top of all.
Why can I not call a class from a diffredn
calls in the same package. I mean I have
say to classes in this dir and I want to
call one form the other.
But if I do I get told after it compiles
ok. when I try to run it
Error loading class mytest: Wrong name

also how can I just call the class name
if I only have one function in a class?

I should say it works ok if I put mytest
out side the dir and import the package

Thank you for helping
thedogeaterAsked:
Who is Participating?
 
falterConnect With a Mentor Commented:
thedogeater,
>alos how can I say have a class where I
>will put a load of values which I will
>use in all classes do I have to make
>the all public of is this a easy way?

If you wnt to use these values only as constants (read only) than the easiest way is to define them like this
public final int myConst1 = 5;
and access them with:
MyClass.myConst1

If you want to modify these values than I would prefer to make them private and code public methods for getting and setting them.

This will allow you to put in synchronizing code needed in a multithreaded environment.
0
 
falterCommented:
Have you some code we can examine?

Definitly you can access a class in the same package.

If your class mytest has a package statement then the name is not mytest.
The name is package.mytest
In your example
so say if I have few classes all in
                  a.dir.where.classes.are.mytest

What do you mean by calling a class?

Second, you can not call only the class if there is only one method defined in the class.
At least ther will be more methods, because all classes extending Object, so
there are a lot of methods in you class.
You can define a method static and then call it with
classname.method(...)
0
 
kylarCommented:
This probably isn't the answer, but I need a reminder of this from time to time. make sure that you have the exact same package name, I frequently will put

com.kylar.Toolbox.MyClass;

when I mean

com.kylar.ToolBox.MyClass;

:)
Cheers
Kylar
0
Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
thedogeaterAuthor Commented:
well say I have this

package my.package;

public class atest{
  public static void main(String args[]){
  String s = "why not is working";
    trying.tocall(s);
  }
}

and in a new file in same dir

package my.package

public class trying{
  public static void tocall (String meg){
    System.out.println(meg);
  }
}

kind of thing what is it I am doing wrong?
0
 
thedogeaterAuthor Commented:
alos how can I say have a class where I
will put a load of values which I will
use in all classes do I have to make
the all public of is this a easy way?
to ask more:+)

Thanks
0
 
thedogeaterAuthor Commented:
alos how can I say have a class where I
will put a load of values which I will
use in all classes do I have to make
the all public of is this a easy way?
to ask more:+)

Thanks
0
 
falterCommented:
I have tried your example and it works witk little modifications:
- my.package; -> my.test;
- putting the files in a directory my/test
- compiling javac my/test/atest.java
- compiling javac my/test/trying.java

calling
java my.test.atest
result:
why not is working

0
 
thedogeaterAuthor Commented:
:+) it works thanks falter. I am happy
post for the points unless someone is
outdoing you with the other answer I aske


Thanks
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.