我是java的初学者,我曾经用C ++编写代码,在使用类时我曾经在单独的文件中定义它们,然后在我的主文件中包含这些类。
我正在尝试学习套接字编程的线程,因此我可以将多个服务器端口作为线程打开并接受多个客户端。我知道在Java中,文件名应该与类名相同(如果我错了,请纠正我)。这就是我想要做的事情:
main.java
include derived.java;
class main1
{
main1()
{
System.out.println("Constructor of main1 class.");
}
void main1_method()
{
System.out.println("method of main 1 class");
}
public static void main(String[] args)
{
main1 my = new main1();
Derived derivedThread = new Derived();
derivedThread.start();
}
}
derived.java
public class derived extends Thread
{
public void run()
{
System.out.println("starting a new thread");
}
}
如何在main中创建派生类对象并将其包含在main1.java文件中?
我认为我并不完全理解类如何在Java中工作以及必须使用哪个类路径。我有一个网络项目的截止日期,我非常落后所以请帮助我!
答案 0 :(得分:1)
删除你的文件并试试这个,这应该是用Java看的:
派生类: Derived.java
public class Derived extends Thread {
public void run() {
System.out.println("starting a new thread");
}
}
Main1类: Main1.java
public class Main1 {
public Main1() {
System.out.println("Constructor of main1 class.");
}
void main1_method() {
System.out.println("method of main 1 class");
}
public static void main(String[] args) {
Main1 my = new Main1();
Derived derivedThread = new Derived();
derivedThread.start();
}
}
注意:
1)类名总是大写的,你是对的,文件名必须是相同的。此外,构造函数和对构造函数的任何调用都必须大写。
2)如果将类放在同一个包中,则无需导入它们。如果您有多个包,则可以这样导入:import packageName.className;
。最后不需要.java,严格来说是类名。您也可以使用嵌套包,因此您可能会看到以下内容:import java.util.ArrayList;
。这将使用在util包中找到的ArrayList类,它位于java包中(内置)。您不必担心在较小的项目上创建嵌套包,但这就是概念。
3)注意我将public
修饰符添加到Main1及其构造函数中。最好为类名和方法以及类变量提供修饰符。有关修饰符的信息,请参阅this SO Question。对于初学者,你应该只关注公共和私人。
我希望这对你的Java研究有所帮助,祝你好运。
答案 1 :(得分:0)
如果派生类存在于不同的包中,则无需使用此include derived.java;
。导入。调用和声明时类Derived
不同。
class main1 // Class name must start with Uppercase
{
public static void main(String[] args)
{
main1 my = new main1(); // Can be remove
Derived derivedThread = new Derived();
derivedThread.start();
}
}
public class derived extends Thread // Change derived to Derived
--------------------^
{
public void run()
{
System.out.println("starting a new thread");
}
}
我删除了构造函数和一个未使用的方法。