包名在java程序中的用途是什么?在哪里?单个.java文件可以有两个类吗?
我在爪哇是个笨蛋。 我在vogella.com学习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
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的基础知识,请购买,然后阅读。。。