2010-08-13 13 views
16

क्या मैं आयात कर सकता हूं, अन्य पैकेज से कक्षा का उपयोग कर सकता हूं? ग्रहण में मैं 2 संकुल बना एक मुख्य अन्य दूसरेजावा अन्य पैकेज में कक्षाओं का उपयोग कैसे करें?

 
main 
-main (class) 
second 
-second (class) 

है और मैं फोन करने के लिए द्वितीय श्रेणी में समारोह एक्स मुख्य वर्ग का मुख्य कार्य करना चाहता था। मैं इसे कैसे कर सकता हूं? मैंने कोशिश की:

import second; 
second.x(); (if both classes are in the same package then it works) 
second.second.x(); 

लेकिन उनमें से कोई भी काम नहीं किया। अब मैं विचार से बाहर हूं।

+0

मुख्य और दूसरे मुख्य से आपका क्या मतलब है? वे कक्षाओं और पैकेजों के नाम क्या हैं? –

उत्तर

23

आपको पूरा पथ प्रदान करना होगा जिसे आप आयात करना चाहते हैं।

 
import com.my.stuff.main.Main; 
import com.my.stuff.second.*; 

तो, अपने मुख्य वर्ग में, आप होगा:

 
package com.my.stuff.main 

import com.my.stuff.second.Second; // THIS IS THE IMPORTANT LINE FOR YOUR QUESTION 

class Main { 
    public static void main(String[] args) { 
     Second second = new Second(); 
     second.x(); 
    } 
} 

संपादित करें:, शॉन डी 'टिप्पणी

एक और विकल्प नहीं है के जवाब में उदाहरण जोड़ने शॉन डी के रूप में बताते हैं, जहां आप उस ऑब्जेक्ट का पूरा पैकेज नाम निर्दिष्ट कर सकते हैं जिसका आप उपयोग करना चाहते हैं। यह दो स्थानों में बहुत उपयोगी है। सबसे पहले, यदि आप वर्ग ठीक एक बार उपयोग कर रहे हैं:

class Main { 
    void function() { 
     int x = my.package.heirarchy.Foo.aStaticMethod(); 

     another.package.heirarchy.Baz b = new another.package.heirarchy.Bax(); 
    } 
} 

वैकल्पिक रूप से, यह उपयोगी है जब आप एक ही छोटा नाम के साथ दो वर्गों के बीच अंतर करने के लिए चाहते हैं:

class Main { 
    void function() { 
     java.util.Date utilDate = ...; 
     java.sql.Date sqlDate = ...; 
    } 
} 
+1

इसके अलावा, यदि आप केवल एक स्थान पर कक्षा का संदर्भ दे रहे हैं, तो आप आयात के बिना कोड में पूर्ण पैकेज + क्लासनाम का उपयोग कर सकते हैं, या यदि आपको दो आयात विवरणों में उपयोग किए गए समान क्लासनाम को हल करने की आवश्यकता है। –

4

अपने उदाहरण को देखते हुए, आप अपने main.main कक्षा में निम्नलिखित आयात जोड़ने की जरूरत:

import second.second; 

कुछ बोनस सलाह, सुनिश्चित करें कि आप अपने वर्ग के नाम titlecase के रूप में है कि एक जावा मानक है या नहीं। - (या)> आप एक विशिष्ट वर्ग आयात करना चाहते हैं

import package_name.* -> में सभी वर्गों को आयात करने के

package main; //lowercase package names 
public class Main //titlecase class names 
{ 
    //Main class content 
} 
+0

आपको अपनी दूसरी कक्षा "सार्वजनिक" बनाना होगा – mor222

0

यह import package_name.Class_Name की तरह होना चाहिए: तो अपने उदाहरण मुख्य वर्ग संरचना होगा एक पैकेज

संबंधित मुद्दे

 संबंधित मुद्दे