2017-02-02 17 views
0

誰かがJavaの初めに何が何をするのか説明できますか?私は、私が自分のコンピュータクラスのためにやっているコードのビットで、変数が指していることについて混乱しています。私は正解を得るために何を探すべきかを知るにはあまりにも新しくて、私が使っている本はどこから呼ばれているのか私を混乱させるすべての変数を同じ名前で説明するものではない。 ありがとうございます チャド私の変数がどこから呼び出されるのかわからないのですが、

ここでpublic void setEmpID(int NewID)はthis.empIDをNewIDに設定していますか?

// access modifier is set to public and a class is declared and named Employee 
public class Employee 
{ 
    private int empID; 
    private String firstName; 
    private String lastName; 
    private double monthlySalary; (Are these to store the variable values from the main method until class creation or are they defining variables in the object that will be created?) 

    //Constructor intializes class Employee to create object Employee with instance variables above. Must be same name as class 

    **public Employee(int empID, String firstName, String lastName, double newSalary) //(is this the storage until the class is created or the defining of the variables for the object that will be created?)** 
    { 
     //ensures empID is a positive number before assignment 
     if (empID > 0.0) 
      //assigns empID to variable "empID" 
      **this.empID = empID; //where does this assign empID? in the new object or in this class temporarily until the object is created?** 

     //assigns firstName to variable "firstName" 
     this.firstName = firstName; 

     // assigns lastName to variable "lastName" 
     this.lastName = lastName;       

     //ensure monthlySalary is a positive number before assignmentand if 
     //ends constructor 
    } 

    **//method that sets the empID(where are these set?)** 
    public void setEmpID(int newID) 
    { 
     this.empID = newID; 
    } 

    //method that sets the firstName 
    public void setFirstName(String newFirst) 
    { 
     this.firstName = newFirst; 
    } 

    //method that sets the lastName 
    public void setLastName(String newLast) 
    { 
     this.lastName = newLast; 
    } 

    //method that sets the monthlySalary for the new obj 
    public void setMonthlySalary(double newSalary) 

    { 
     this.monthlySalary = newSalary; 
    } 

    **//Gets empid from the object and returns empID to the calling method (I think this is right)** 
    public int getEmpID() 
    { 
     return empID; 
    } 

    //gets first name from the object and returns first name to the calling method 
    public String getFirstName() 
    { 
     return firstName; 
    } 

    //gets last name from the object and returns last name to the calling method 
    public String getLastName() 
    { 
     return lastName; 
    } 

    //gets monthly salary from the object and returns it to the calling method 
    public double getMonthlySalary() 
    { 
     return monthlySalary;   
    } 

} 
+0

あなたのコメントに '**'は必要ではないことをご存知でしょうか。 – Dan

+0

大変ありがとうございます。投稿を読んでいる人が問題のコードをすばやく見つけることができるように、パーツを見やすくするために質問があった部分を大胆にしたいと思っていました。何らかの理由で、私がパートを投稿したときに太字になっていなかった。 –

+0

ああ、それはインデントされていて、質問で太字と認識されないようになったからです – Dan

答えて

1

これは変数の可視性について知りたい場合に役立ちます。 SO Question

変数が同じ名前を持っている場合

以下のコードを参照してくださいについてはExample.java

public class Example { 
    private int empID = 0; //Creates a global variable 

    public Example(int empID) { //Creates a local variable that is 
           //initiated when contructor is called 
     this.empID = empID; //Calls the global variable and sets it 
          //equal to the local variable 
     exampleMethod(); //Calls the method below 
    } 

    private void exampleMethod() { 
     empID = 1; //Sets the global variable to = 1 
     //This is the same as this.empID = 1; 
    } 

    public void setEmpID(int newID) { 
     empID = newID; //Sets the global variable to = newID 
     //This is the same as this.empID = newID; 
    } 

    public int getEmpID() { 
     return empID; //Gets the value of the global variable 
         //empID. Example use below 
    } 
} 

Example2.java

public class Example2 { 
    public Example2() { 
     Example ex = new Example(1); //Create and initate an Example class 
     System.out.println(ex.getEmpID()); //Prints out Example.empID, aka 1 
     ex.setEmpID(2); 
     System.out.println(ex.getEmpID()); //Prints out Example.empID, aka 2 
    } 

    public static void main(String[] args) { 
     new Example2(); //Creates and initates an Example2 class 
    } 
} 

、変数の型、このためとして、短いチュートリアルがそれらを通ります。 Tutorial

+0

したがって、グローバル変数は(このプログラムのケースでは)メインメソッドに含まれるものですか?私は従業員のemployeeTwo = new employee(100、John、Doe、3000.01)として定義しました。最初の従業員が「従業員」クラスを呼び出すように指示し、2番目のメソッドがそのクラスからemployeeOneという名前のオブジェクトを作成するようにそれは(属性)を持つ新しい従業員は、カッコ内の属性はグローバル変数ですか?邪悪な速い応答のためにみんなありがとう!あなたたち最高! –

+0

あなたの最初の質問が何を意味しているかは完全にはわかりません。グローバル変数はクラス全体で見ることができますが、ローカル変数は単一のメソッドまたはコンストラクタでしか見ることができません。 – Dan

+0

@chadjensenあなたの第2部については、 'Employee employeeTwo'は変数を作成します。 'employeeTwo = new Employee(100、John、Doe、3000.01);'が使用できるように変数を開始します。たとえば、私のコード例で 'Example ex;'と 'System.out.println(ex.getEmpID()); 'を実行した場合、エラーが発生する – Dan

関連する問題