2012-02-25 8 views
-1

こんにちは、私はJavaとLinkedListプロジェクトに取り組んでいます。私の心にはいくつか不明な点があります。例えばこれは私の「患者」クラスです。"new"キーワードでオブジェクトを作成するか、Javaで "new"なしで作成する

public class Patient { 

private int id; 
private String name; 
private String lastName; 
private String doctor; 

private Patient next; 
private Patient prev; 

public Patient(int id, String name, String lastName, String doctor, Patient next, Patient prev){ 

    this.id = id; 
    this.name = name; 
    this.lastName = lastName; 
    this.doctor = doctor; 
    this.next = next; 
    this.prev = prev; 

} 

私は自分のLinkedListを構築するときに、このようなヘッダーとテールノードを作成します。

private Patient header = new Patient(0, null, null, null, null, null); 
private Patient tail = new Patient(0, null, null ,null ,null, null); 

new Patient(0, null, null, null, null, null);なしでこれらの2つのノードを作成しても何も変わりません。なぜあなたは説明できますか?

+3

"新規ノードなしでノードを作成する"とはどういう意味ですか?あなたは正確に何をしていますか?何が変わらないの? –

+0

私はちょうど "私的な患者のヘッダーを使用するかどうかを意味します;"プログラムは同じ? – quartaela

+1

あなた自身を完全に説明するように頼む必要がありますか?とにかく、あなたはちょうど私的な患者のヘッダーを書く場合;現在はnullを指しているPatient型のオブジェクトへの参照を宣言します。それを何かに決して割り当てないで、それを逆参照しようとしないでください(インスタンスメソッドを呼び出すなど)。あなたのプログラムは動作します。 –

答えて

1

新しいキーワードを使用しない場合は、参照がNULLになります。新しいキーワードでインスタンス化されていないオブジェクトでアクセスして何かをしようとしましたか? getName()というメソッドを追加し、インスタンス化する前にPatient変数でそのメソッドを呼び出します。これにより、 "nullポインタ例外"が発生します

+0

はい私はnullpointerexceptionを得る。今私はそれを得る。どうもありがとうございました :) – quartaela

関連する問題