tonyabracadabra
tonyabracadabra

Reputation: 319

Why did my import fail in Java?

I hava a StdDraw.java under the same folder of my working file, and picture() is a method within StdDraw.java.

However, I failed adding this line to import the method, suggesting by

package StdDraw does not exist

import StdDraw.picture

How could I possibly do that? Using package? Setting path? Or any modifications? I came from python and find it a little bit weird.

Upvotes: 0

Views: 2288

Answers (5)

Naman Gala
Naman Gala

Reputation: 4692

Even if you do not include import for the class which is present in the same folder, then also you can create object and call method of that class and also static methods.

You can create object and call the non-static methods.

StdDraw drawObj = new StdDraw();
drawObj.picture(); // if picture is non-static method

For static method, you can call it using class name only.

StdDraw.picture(); // if picture is static method.

Upvotes: 1

Zack
Zack

Reputation: 1575

When importing the package you do not need to import non static methods. You can read on Java - Packages here. It is easily explained and I found it useful when learning the same concept.

Upvotes: 1

Anil Reddy Yarragonda
Anil Reddy Yarragonda

Reputation: 767

If you are importing into the class which is there in same package then we no need to use any import.

if you want import mthods into the class use like below. You no need to put method name at the time of the import.

import packagename.StdDraw;

After importing your class, all non static methods of the class are available into the imported class.

when should you use static import? Only use it when you'd otherwise be tempted to declare local copies of constants, or to abuse inheritance (the Constant Interface Antipattern). In other words, use it when you require frequent access to static members from one or two classes. If you overuse the static import feature, it can make your program unreadable and unmaintainable, polluting its namespace with all the static members you import. Readers of your code (including you, a few months after you wrote it) will not know which class a static member comes from. Importing all of the static members from a class can be particularly harmful to readability; if you need only one or two members, import them individually. Used appropriately, static import can make your program more readable, by removing the boilerplate of repetition of class

names.

Read more about static import:

https://docs.oracle.com/javase/1.5.0/docs/guide/language/static-import.html

Upvotes: 1

aioobe
aioobe

Reputation: 420951

You can't import non-static methods (only classes and static members), and you don't have to!

If both your classes live in the default package then you should be able to do the following without any import statements :

myStdDrawObject.picture();  // if picture is non-static

or

StdDraw.picture();          // if picture is static

Note also, that you can't use static imports on classes that live in the default package.

Upvotes: 4

vijay
vijay

Reputation: 444

What I recommend is to read up on packages and how code is organized in java. It is in someway similar to python, where a directory structure is used, but more to it in java. Maybe this will help

Java Tutorial- Packages

Upvotes: 0

Related Questions