我如何“导入”一个java文件到另一个文件

问题描述:

我目前有我的程序有问题,我想要做的是将包含我的变量的文件“导入”到我的主Java文件,所以它可以识别变量而不用将它们添加到主文件中。我如何“导入”一个java文件到另一个文件

我创建了一个.java文件调用的变量,这个代码里面:

/* 
* To change this license header, choose License Headers in Project Properties. 
* To change this template file, choose Tools | Templates 
* and open the template in the editor. 
*/ 
package destinytextgame; 

import java.util.Scanner; 

/** 
* 
* @author 30136246 
*/ 
public class Variables { 

    Scanner input = new Scanner(System.in); 

    String first_name; 
    int age; 

} 

我想要做的是能够让我使用的代码我的程序识别主要的Java文件代码在Variables.java文件中。当我在没有任何附加代码的情况下尝试它时,它一直弹出一个错误,并说first_name没有被定义。任何人都可以获得协助吗?

+0

请分享为主要的Java文件 – Jabir

+1

这些都是非静态变量的代码,所以你需要一个'Variable'的实例来访问它们。 –

+9

你不 - 这不是Java的工作原理。如果你导入了'Variables'类,那就意味着你可以使用'Variables'这个名字而不需要完全限定它;你仍然需要创建一个* Variables的实例*。 –

你需要创建一个变量类的实例

public static void main(String[] args) { 
    Variables variables = new Variables(); 
    System.out.println("Please enter your first name:"); 
    variables.first_name = variables.input.next(); 
    System.out.println("Hi " + variables.first_name + "!"); 
} 
+0

这工作,我添加了一个系统出来测试,看看它是否存储在该变量,它是,谢谢你meskobalaz,这已经解决了我的问题。 –

,你可能想尝试几件事情:

使变量public static如果你只想要其中的一个实例。

实例化的变量类Variables vars = new Variables();,然后如果你正在使用的实例方法的话,我会使用建议从实例vars.first_name = "First Name";

调用变量Getters and Setters

This还可以帮助您了解如何获得类变量更好。

做它的静态方法:

public class Main { 

    public static void main(String[] args){ 
     Variables.first_name = "Hello, you."; 
     System.out.println("first_name: " + Variables.first_name); 
    } 

    private static class Variables { 

     private static Scanner input = new Scanner(System.in); 

     public static String first_name; 
     public static int age; 
    } 
} 

做它的OOP方式:

public class Main { 

    public static void main(String[] args) { 
     Variables var = new Variables(); 

     var.setFirst_name("First Name Here"); 
     System.out.println(var.getFirst_name()); 
    } 

    private static class Variables { 

     private Scanner input = new Scanner(System.in); 

     public String first_name; 
     public int age; 

     public String getFirst_name() { 
      return first_name; 
     } 

     public void setFirst_name(String first_name) { 
      this.first_name = first_name; 
     } 

     public int getAge() { 
      return age; 
     } 

     public void setAge(int age) { 
      this.age = age; 
     } 
    } 
}