Solved

classes in a package talking to each other

Posted on 2000-05-16
8
170 Views
Last Modified: 2010-04-01
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
0
Comment
Question by:thedogeater
  • 4
  • 3
8 Comments
 
LVL 3

Expert Comment

by:falter
ID: 2815172
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
 
LVL 4

Expert Comment

by:kylar
ID: 2815343
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
 

Author Comment

by:thedogeater
ID: 2815732
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
Free Tool: Postgres Monitoring System

A PHP and Perl based system to collect and display usage statistics from PostgreSQL databases.

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.

 

Author Comment

by:thedogeater
ID: 2815737
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
 

Author Comment

by:thedogeater
ID: 2815746
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
 
LVL 3

Expert Comment

by:falter
ID: 2816141
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
 

Author Comment

by:thedogeater
ID: 2822719
:+) it works thanks falter. I am happy
post for the points unless someone is
outdoing you with the other answer I aske


Thanks
0
 
LVL 3

Accepted Solution

by:
falter earned 200 total points
ID: 2824639
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

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
eclipse apache tomcat admin console 52 123
Detect Closed Loops (circles, figure-8s, etc) in PNG Images 6 58
web project error add remove 1 32
learn programming 8 42
Java contains several comparison operators (e.g., <, <=, >, >=, ==, !=) that allow you to compare primitive values. However, these operators cannot be used to compare the contents of objects. Interface Comparable is used to allow objects of a cl…
Go is an acronym of golang, is a programming language developed Google in 2007. Go is a new language that is mostly in the C family, with significant input from Pascal/Modula/Oberon family. Hence Go arisen as low-level language with fast compilation…
Viewers learn about the scanner class in this video and are introduced to receiving user input for their programs. Additionally, objects, conditional statements, and loops are used to help reinforce the concepts. Introduce Scanner class: Importing…
Viewers will learn how to properly install Eclipse with the necessary JDK, and will take a look at an introductory Java program. Download Eclipse installation zip file: Extract files from zip file: Download and install JDK 8: Open Eclipse and …

830 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question