java中public class和class的区别

2022年10月2日 21:41 ry 652

因为导师的项目设计到java,因此学习了下java的一些基础知识,一些重要的部分先加以记录。刚开始创建java源文件的时候,使用的intel ide总会自动创建一个public class 文件名的类,public即公共的意思,即为公共类,是不是java源代码中是不是一定要有公共类呢,我们先来做个实验,为了方便对比,本次使用notepad++来编写,我创建了一个名为K.java的源文件,里面代码如下

class A{
	
}
class B{
	
}
class C{

}

保存后然后使用命令

javac K.java

先对源文件进行编译,结果如下

编译没有任何问题,接下来是运行阶段,我们选择一个生成的字节码来运行,选择A吧,运行命令

java A

结果如下所示

C:\Users\14499\Desktop\java代码>java A
错误: 在类 A 中找不到 main 方法, 请将 main 方法定义为:
   public static void main(String[] args)
否则 JavaFX 应用程序类必须扩展javafx.application.Application

额,确实,一个完整的代码必须要有main方法,作为程序的入口,我们在每个类中加个main方法,如下所示

class A
{
	public static void main(String[] args)
	{
		System.out.println("A class");
	}
}
class B
{
	public static void main(String[] args)
	{
		System.out.println("B class");
	}
}
class C
{
	public static void main(String[] args)
	{
		System.out.println("C class");
	}
}

再用上述javac K.java进行编译,如图

再选择一个字节码进行,以A.class为例,使用命令java A,结果如下

C:\Users\14499\Desktop\java代码>javac K.java

C:\Users\14499\Desktop\java代码>java A
A class

C:\Users\14499\Desktop\java代码>

成功运行,我们再加一个public class看看,代码如下

class A
{
	public static void main(String[] args)
	{
		System.out.println("A class");
	}
}
class B
{
	public static void main(String[] args)
	{
		System.out.println("B class");
	}
}
class C
{
	public static void main(String[] args)
	{
		System.out.println("C class");
	}
}
public class D{
	
	public static void main(String[] args)
	{
		System.out.println("D public class");
	}
}

同样使用命令进行编译,结果如下

C:\Users\14499\Desktop\java代码>javac K.java
K.java:22: 错误: 类 D 是公共的, 应在名为 D.java 的文件中声明
public class D{
       ^
1 个错误

C:\Users\14499\Desktop\java代码>

上面错误显示公共D类名应该和源文件名一样,我们改下代码

public class K{
	
	public static void main(String[] args)
	{
		System.out.println("D public class");
	}
}

改了后运行代码就正常编译了

C:\Users\14499\Desktop\java代码>javac K.java

C:\Users\14499\Desktop\java代码>

可见,源文件中class可以多个,而public class 只能有一个且是和源文件同名,那这样就明白了intel ide中每创建一个java文件,都会自动生成一个public class 源文件名,而一般源文件main方法入口只有一个,因此大多数main方法配合public class一起

如果上述代码帮助您很多,可以打赏下以减少服务器的开支吗,万分感谢!

欢迎发表评论~

点击此处登录后即可评论


评论列表
暂时还没有任何评论哦...

赣ICP备2021001574号-1

赣公网安备 36092402000079号