Cómo crear un objeto de la clase en el subdirectorio en Java

Youngmin Park:

Empecé a estudiar Java.
Una parte me quedé atrapado es acerca de cómo crear y utilizar objetos que se originó a partir de otra clase.

Estructura de directorios:

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

Los códigos fuente son como éstos.

// 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;
  }
}

correr

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

Error

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

Escribí public User_table(int a)en User_Table.javaque el constructor
Pero no sé por qué dice que el errorinvalid method declaration; return type required

eric.m:

Los nombres de método entre mayúsculas y minúsculas: User_tableno es lo mismo que User_Table(aviso de la capital T). El constructor debe tener exactamente el mismo nombre que la clase, a fin de utilizar User_Table.

Aún así, el compilador se quejará de una otra cosa una vez que arreglar eso: en el constructor que haces

this.user_a=a;

Pero user_ano está declarado en su clase, lo que hará que el compilador emite un error. Para corregir esto, sólo hay que declararlo en la clase; ya que desea tener acceso al campo fuera de la clase (por ejemplo, en Main.main()) lo convierten en public:

public class User_Table
{
  public int user_a;

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

Como recomendación, que realmente debería considerar las siguientes convenciones de nombres y estilo de Java: - Se debe utilizar más espacios en blanco: this.user_a = a, int temp = 5, obj_user_table = new- Los nombres de clase utilizan el UpperCamelCase, sin guiones: UserTable- Método y nombres de variables utilizan el lowerCamelCase, sin subrayados:userA

Esto no va a cambiar la funcionalidad del código, pero que hará que sea más fácil de leer y estándar para otros usuarios de Java.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=333246&siteId=1
Recomendado
Clasificación