Javaでのサブディレクトリ内のクラスからオブジェクトを作成する方法

YoungMinパーク:

私は、Javaを勉強し始めました。
私は行き詰まって一つの部分は、他のクラスから発信されたオブジェクトを作成し、使用する方法についてです。

ディレクトリ構造:

/temp_dir/Java_code  
  Main.java  
  /java_db_code/  
    User_Table.java   

ソースコードは、これらのようなものです。

// File: /temp_dir/Java_code/Main.java

package temp_dir.java_code; // Package configuration of this java file
import temp_dir.java_code.java_db_code.User_Table; // import other class

public class Main
{
  public static void main(String[] args)
  {
      int temp=5;

      // Create obj_user_table object from User_Table class located in package of temp_dir.java_code.java_db_code.User_Table, through its int parameterized constructor
      User_Table obj_user_table=new User_Table(temp);

      System.out.println(obj_user_table);
      // Expected: obj_user_table object

      System.out.println(obj_user_table.user_a);
      // Expected: 5
  }
}
// File: /temp_dir/Java_code/java_db_code/User_Table.java

package temp_dir.java_code.java_db_code;

public class User_Table
{
  public User_table(int a)
  {
    this.user_a=a;
  }
}

ラン

cd /temp_dir/Java_code
javac -d . Main.java ./java_db_code/User_Table.java

エラー

./java_db_code/User_Table.java:22: error: invalid method declaration; return type required
  public User_table(int a)
         ^
1 error

私が書いたpublic User_table(int a)User_Table.javaコンストラクタとして
しかし、エラーがいるという理由を私は知りませんinvalid method declaration; return type required

eric.m:

メソッド名は、大文字と小文字が区別される:User_tableと同じではないUser_Table(通知資本T)。コンストラクタは、クラスのように使用することをまったく同じ名前を持つ必要がありますUser_Table

コンストラクタ内であなたが行う:あなたがいることを修正したら、それでも、コンパイラはもうひとつ文句を言うだろう

this.user_a=a;

しかしuser_a、コンパイラはエラーをスローにするであろう、あなたのクラスで宣言されていません。それを修正するには、あなただけのクラスでそれを宣言する必要があり、あなたはクラスの外のフィールドにアクセスできるようにするため、(例えば、中にはMain.main())それを作りますpublic

public class User_Table
{
  public int user_a;

  public User_table(int a)
  {
    this.user_a=a;
  }
}

勧告として、あなたが本当にJavaの命名とスタイル規則を次のよう考慮する必要があります-あなたはより多くの空白を使用する必要があります:this.user_a = aint temp = 5obj_user_table = new-クラス名が使用UpperCamelCase下線なしで、:UserTable-メソッド、変数名が使用lowerCamelCase下線なしで、:userA

これは、コードの機能を変更しませんが、それは他のJavaユーザーにとってより読みやすく、標準になります。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=333243&siteId=1