2009-05-19 8 views
55

मैं एक जावा फ़ाइल को किसी अन्य जावा फ़ाइल में कैसे शामिल कर सकता हूं?किसी अन्य जावा फ़ाइल में एक फ़ाइल से जावा क्लास बढ़ाएं

उदाहरण के लिए: यदि मेरे पास 2 जावा फ़ाइल है तो उसे Person.java कहा जाता है और इसे Student.java कहा जाता है। मैं Person.java को Student.java में कैसे शामिल कर सकता हूं ताकि मैं Person.java से Student.java

उत्तर

57

बस दो फ़ाइलों को एक ही निर्देशिका में डालें। यहाँ एक उदाहरण है:

Person.java

public class Person { 
    public String name; 

    public Person(String name) { 
    this.name = name; 
    } 

    public String toString() { 
    return name; 
    } 
} 

Student.java

public class Student extends Person { 
    public String somethingnew; 

    public Student(String name) { 
    super(name); 
    somethingnew = "surprise!"; 
    } 

    public String toString() { 
    return super.toString() + "\t" + somethingnew; 
    } 

    public static void main(String[] args) { 
    Person you = new Person("foo"); 
    Student me = new Student("boo"); 

    System.out.println("Your name is " + you); 
    System.out.println("My name is " + me); 
    } 
} 

रनिंग छात्र (क्योंकि यह मुख्य कार्य है) हमें वांछित परिणाम पैदावार:

Your name is foo 
My name is boo surprise! 
+4

क्या आपको Student.java के शीर्ष पर कुछ प्रकार के आयात विवरण की आवश्यकता नहीं है? वह आयात कथन कैसा दिखता है? –

+4

@ एंड्रयूएम। फेरेल नो, एक आयात विवरण आवश्यक नहीं है। बस फ़ाइलों को एक ही निर्देशिका में रखें और उन्हें संकलित करें। वे एक दूसरे को ठीक "देखने" में सक्षम होंगे। – ApproachingDarknessFish

2

में कक्षा का विस्तार कैसे कर सकता हूं।

आप छात्र के साथ व्यक्ति का विस्तार करना चाहते हैं, तो बस कार्य करें:

public class Student extends Person 
{ 
} 

और यह सुनिश्चित कर लें, जब आप दोनों वर्गों संकलन, एक दूसरे पा सकते हैं।

आप किस आईडीई का उपयोग कर रहे हैं?

+0

इससे पहले कि मैं कर मेरी सार्वजनिक वर्ग के लिए फैली हुई है, मुझे नहीं है? क्या आप जावा में फ़ाइल शामिल करने के लिए बयान जानते हैं? उदाहरण के लिए PHP में स्टेटमेंट में शामिल है ('directoty/file_name'); –

+0

हाय जिन। नहीं, आपको व्यक्ति के लिए फ़ाइल "शामिल" करने की आवश्यकता नहीं है। आप बस कक्षा का विस्तार करते हैं। यदि कक्षाएं एक ही पैकेज में नहीं हैं, तो आप कक्षा को "आयात" करते हैं। लेकिन फ़ाइल को शामिल करने की कोई आवश्यकता नहीं है। वास्तव में, आप ऐसा नहीं कर सकते हैं। भले ही आप चाहते हैं। क्या आप किसी प्रकार का आईडीई उपयोग कर रहे हैं? ग्रहण? NetBeans? –

+0

कक्षाएं एक ही पैकेज में हैं (स्रोत फ़ाइलों के लिए डिफ़ॉल्ट संकुल सहित जिनमें एक स्पष्ट पैकेज नहीं है) यह स्वचालित है। –

19

जावा का उपयोग नहीं करता है जिस तरह से सी करता है। इसके बजाए जावा क्लासपाथ नामक एक अवधारणा का उपयोग करता है, जिसमें जावा कक्षाओं वाले संसाधनों की एक सूची है। JVM क्लासपाथ पर किसी भी वर्ग को नाम से एक्सेस कर सकता है ताकि यदि आप कक्षाओं का विस्तार कर सकें और उन्हें घोषित करके प्रकारों को संदर्भित कर सकें। कथन जावा में शामिल चीज को बंद करना 'आयात' है। चूंकि वर्ग foo.bar.Baz जैसे नामस्थानों में विभाजित होते हैं, यदि आप qux पैकेज में हैं और आप baz class का उपयोग पूर्ण foo.bar.Baz के पूर्ण नाम का उपयोग किए बिना करना चाहते हैं, तो आपको एक का उपयोग करने की आवश्यकता है इसलिए की तरह अपने जावा फ़ाइल की शुरुआत में इंपोर्ट स्टेटमेंट: import foo.bar.Baz

23

क्या सभी व्याख्याओं से लापता है तथ्य जावा वर्ग के नाम = फ़ाइल नाम की एक सख्त नियम है कि है। मतलब है कि यदि आपके पास कक्षा "व्यक्ति" है, तो "Person.java" नाम की फ़ाइल में होना चाहिए। इसलिए, यदि एक वर्ग "व्यक्ति" तक पहुंचने का प्रयास करता है तो फ़ाइल नाम आवश्यक नहीं है, क्योंकि इसे "Person.java" होना चाहिए।

सी/सी ++ के लिए आ रहा है, मेरे पास एक ही समस्या है। जवाब एक नई कक्षा (एक नई फ़ाइल मिलान वर्ग नाम में) बनाने और एक सार्वजनिक स्ट्रिंग बनाने के लिए है। यह आपकी "हेडर" फ़ाइल होगी। फिर "विस्तार" कीवर्ड का उपयोग करके अपनी मुख्य फ़ाइल में इसका उपयोग करें।

  1. एक फ़ाइल Include.java बुलाया बनाएँ:

    यहाँ अपने जवाब है। इस फ़ाइल में, इसे जोड़ें:

    public class Include { 
        public static String MyLongString= "abcdef"; 
    } 
    
  2. एक और फ़ाइल बनाएं, उपयोगकर्ता, जावा।इस फ़ाइल में डाल दिया: Studnet 1 में व्यक्ति के लिए फ़ाइल शामिल

    import java.io.*; 
    
    public class User extends Include { 
        System.out.println(Include.MyLongString); 
    } 
    
+1

धन्यवाद मेरा दिन बचाया –

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