2009-05-19 11 views

答えて

57

2つのファイルを同じディレクトリに配置するだけです。ここでは例です:

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

@ AndrewM.Farrellいいえ、インポートステートメントは必要ありません。ファイルを同じディレクトリに置き、コンパイルしてください。彼らはお互いを「見る」ことができます。 – ApproachingDarknessFish

2

にクラスを拡張することができます。

あなたが学生で人を延長したい場合は、単に実行します。

public class Student extends Person 
{ 
} 

そして、あなたは両方のクラスをコンパイルするとき、一方が他方ものを見つけることができ、確認してください。

どのIDEを使用していますか?

+0

私は私のパブリッククラスの拡張を行う前に、私が持っていないStudnet 1日に個人用のファイルを含みますか?あなたはjavaのインクルードファイルのステートメントを知っていますか? 例えばphpでは、statmentはinclude( 'directoty/file_name')です。 –

+0

こんにちは。 いいえ、Personのファイルを「インクルード」する必要はありません。クラスを拡張するだけです。クラスが同じパッケージにない場合は、そのクラスを「インポート」します。しかし、ファイルを含める必要はありません。実際、あなたはそれをすることはできません。あなたがしたい場合でも。 IDEを使用していますか? Eclipse?ネットビーンズ? –

+0

クラスが同じパッケージにある場合(明示的なパッケージを持たないソースファイルのデフォルトパッケージを含む)は自動的です。 –

19

JavaはCのやり方を含んでいません。その代わりに、javaはクラスパスという概念を使用します。これはJavaクラスを含むリソースのリストです。 JVMは、名前でクラスパス上のどのクラスにもアクセスできます。クラスを拡張し、型を宣言するだけでそれらを参照できる場合。インクルードステートメントのjava hasを閉じることは 'import'です。クラスはfoo.bar.Bazのような名前空間に分割されているので、quxパッケージに入っていてfoo.bar.Bazというフルネームを使わずにBazクラスを使いたい場合は、そのようなあなたのjavaファイルの先頭にあるimport文:すべての説明から欠落しているもの import foo.bar.Baz

23

は、Javaがクラス名=ファイル名の厳格なルールを持っているという事実です。クラス "Person"がある場合は、 "Person.java"という名前のファイルに存在する必要があります。したがって、あるクラスが "Person"にアクセスしようとすると、 "Person.java"になっているので、ファイル名は必要ありません。

C/C++には、まったく同じ問題があります。答えは、(クラス名に一致する新しいファイル内に)新しいクラスを作成し、パブリック文字列を作成することです。これはあなたの "ヘッダー"ファイルになります。そして、あなたのメインファイルで "extends"キーワードを使ってそれを使用してください。

  1. がInclude.javaというファイルを作成します。

    はここにあなたの答えです。このファイルに、次のように追加します。

    public class Include { 
        public static String MyLongString= "abcdef"; 
    } 
    
  2. 別のファイル、たとえばUser.javaを作成します。このファイルでは、置く:

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

ありがとうございました –

関連する問題