Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
包名在java程序中的用途是什么?在哪里?单个.java文件可以有两个类吗?_Java - Fatal编程技术网

包名在java程序中的用途是什么?在哪里?单个.java文件可以有两个类吗?

包名在java程序中的用途是什么?在哪里?单个.java文件可以有两个类吗?,java,Java,我在爪哇是个笨蛋。 我在vogella.com学习java,在那里我看到了一个有两个类的示例。 一个.java文件可以有两个类名吗?(我不这么认为,因为文件应该有类名) 头等舱是: package com.vogella.javastarter.exercises1; class Person {String firstName; String lastName; int age; public Person(String a, String b, int value) { fir

我在爪哇是个笨蛋。 我在vogella.com学习java,在那里我看到了一个有两个类的示例。 一个.java文件可以有两个类名吗?(我不这么认为,因为文件应该有类名) 头等舱是:

package com.vogella.javastarter.exercises1;

class Person {String firstName;
  String lastName;
 int age;

public Person(String a, String b, int value) {
  firstName = a;
  lastName = b;
age = value;
}

public String getFirstName() {
  return firstName;
}

public void setFirstName(String firstName) {
  this.firstName = firstName;
}

public String getLastName() {
  return lastName;
}

public void setLastName(String lastName) {
  this.lastName = lastName;
}

public int getAge() {
  return age;
}

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

@Override
public String toString() {
  return firstName + " " + lastName;
}
package com.vogella.javastarter.exercises1;



 public class Main {
    public static void main(String[] args) {
    Person person = new Person("Jim", "Knopf", 21);
    Person p2 = new Person("Jill", "Sanders", 20);
    // Jill gets married to Jim
    // and takes his name
    p2.setLastName("Knopf");
    System.out.println(p2);
  }
} 
}

第二类是:

package com.vogella.javastarter.exercises1;

class Person {String firstName;
  String lastName;
 int age;

public Person(String a, String b, int value) {
  firstName = a;
  lastName = b;
age = value;
}

public String getFirstName() {
  return firstName;
}

public void setFirstName(String firstName) {
  this.firstName = firstName;
}

public String getLastName() {
  return lastName;
}

public void setLastName(String lastName) {
  this.lastName = lastName;
}

public int getAge() {
  return age;
}

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

@Override
public String toString() {
  return firstName + " " + lastName;
}
package com.vogella.javastarter.exercises1;



 public class Main {
    public static void main(String[] args) {
    Person person = new Person("Jim", "Knopf", 21);
    Person p2 = new Person("Jill", "Sanders", 20);
    // Jill gets married to Jim
    // and takes his name
    p2.setLastName("Knopf");
    System.out.println(p2);
  }
} 
我该如何编译两个独立的.java文件,因为第一个文件缺少main()方法,第二个文件没有连接到“class Person”文件

最重要的是,当我看到单个函数调用(setLastName()函数)时,类Person的函数/方法是如何执行的。 叫我笨蛋,但请澄清我的疑问

我该如何编译两个独立的.java文件,因为第一个文件缺少main()方法,第二个文件没有连接到“class Person”文件

如果两个文件(Person和Main)位于同一文件夹中,则它们可以相互引用。编译时,请确保首先编译Person,因为Main包含对它的引用。如果您先编译Main,它将不知道“人”是什么

最重要的是,当我看到单个函数调用(setLastName()函数)时,类Person的函数/方法是如何执行的。叫我笨蛋,但请澄清我的疑问


我不确定您在这里想要什么-

在Java中,您可以有许多相互依赖的文件。例如,您的
Person
类没有main方法,因为它不能自己运行。这就是第二个文件存在的原因。为了运行这个程序,编译这两个文件(如Martin M J所述,首先编译
Main.java
),将它们放在同一个文件夹中,然后运行
Main
。由于这两个文件位于同一文件夹中,
Main
可以使用所有
Person
对象所具有的方法

至于问题的第二部分,
Person
类中的大多数方法都没有被调用。它们只是为了完整性而存在。与您的代码状态一样,调用
setLastName(“Knopf”)
p2
的姓氏更改为
“Knopf”
。此外,当创建
Person
对象时,会调用构造函数,给出它们的名称和年龄

唯一调用的其他方法是不可见调用的。当执行行
System.out.println(p2)
时,调用
p2
toString()
方法。这导致
println
打印
“吉尔·克诺夫”
,因为我们把她的名字从
“桑德斯”
改了


Java教程的第三部分更容易理解地解释了面向对象编程。事实上,这些教程通常都是很好的参考资料。

请阅读更多关于Java的内容这是Java的基础知识,请购买,然后阅读。。。