千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > public class和class的区别有哪些?

public class和class的区别有哪些?

来源:千锋教育
发布人:xqq
时间: 2023-10-13 12:42:18 1697172138

一、访问权限不同

public class是一个修饰符,用于声明一个公共类,可以被其他类访问,这意味着在同一个项目或包中的其他类可以直接访问该公共类。而class关键词仅仅是一个声明类的关键词,不具备访问权限的修饰功能,因此如果一个类没有明确指定修饰符,则默认为包访问权限。

二、文件结构不同

一个Java源文件只能包含一个public class,并且该文件的名称必须与public class的名称相匹配。这是Java编译器的规定,也是为了方便代码的组织和管理。而一个源文件可以包含多个非public class,这些类的名称可以与文件名不同。当然,这些非public class只能在同一个文件中访问。

三、入口点不同

在Java应用程序中,程序的入口点是main方法。只有public class才能包含main方法。当我们执行Java程序时,虚拟机会自动寻找public class中的main方法,并从那里开始执行程序。因此,如果我们想要一个类作为程序的入口点,必须将它声明为public class,并在其中定义main方法。

四、继承和实现不同

public class可以被其他类继承,这意味着其他类可以扩展并重写public class中的方法。这是面向对象编程的一种重要特性。然而,class关键词不允许其他类继承该类。因此,如果我们希望一个类能够被其他类继承和扩展,必须将它声明为public class。

五、可见性不同

public class对外部类和外部包可见。这意味着在不同的包中,其他类也可以访问public class。而class关键词仅对同一个包中的其他类可见,对外部包的类不可见。

综合上述内容,public class具有公共的访问权限,可以被其他类继承和实现,对外部类和外部包可见,并且可以作为程序的入口点;而class关键词没有访问权限修饰符,只能在同一个包中可见,不允许其他类继承和实现。理解这些区别,可以帮助我们更好地设计和组织Java类,使代码更加灵活、可扩展和易于维护。

延伸阅读1:在使用public class时有哪些注意事项

在Java编程中,public class是一种常见的类定义方式,它可以被其他类所访问和调用。但是,在使用public class时,我们需要注意以下几点事项:

一、文件名与类名必须一致

在Java中,每个源代码文件必须包含且只包含一个public类,而文件名必须与public类的类名完全一致,包括大小写。如果文件名与public类的类名不一致,编译器将会出现错误。

二、public类只能有一个

在一个Java文件中,只能有一个public类。如果在同一个Java文件中定义了多个public类,那么编译器将会报错。但是,可以定义多个非public类,这些类只能在同一个包中被访问。

三、public类的访问权限

public类的访问权限是较广泛的,其他类无论在哪个包中,都可以访问public类。但是,如果public类定义在某个包中,其他类需要使用该类时,需要使用完整的包路径来引用该类。

四、public类的方法和变量

在public类中,方法和变量的访问权限可以是public、private、protected或默认(不使用任何访问修饰符)。但是,需要注意的是,public类的所有public方法和变量都可以被其他类所访问,因此,需要谨慎处理这些公开的方法和变量,以免造成安全问题或不必要的麻烦。

五、public类的继承

public类可以被其他类继承,并且子类可以访问其公共方法和变量。但是,需要注意的是,如果public类的某些方法或变量被子类覆盖了,而且这些方法或变量在原始类中是公共的,那么子类中的同名方法或变量也必须是public的。

六、public类的构造函数

public类的构造函数可以被其他类所调用,因此,在设计public类的构造函数时,需要考虑到其安全性和正确性。如果public类的构造函数不应该被其他类所调用,可以将其定义为private或protected,以限制其访问权限。

七、代码规范

在使用public class时,需要遵循Java的代码规范,使用规范的命名方式、缩进、注释等,以使代码易于阅读和维护。同时,需要注意代码的可读性和可维护性,避免过于复杂的逻辑和冗长的代码,以提高代码的可复用性和可扩展性。

遵循上述这些注意事项,可以使代码更加规范、易读、易维护,并且提高代码的可复用性和可扩展性。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT
类似博客这样的图文混排内容在数据库中是以什么形式保存的呢?

一、图文混排内容在数据库中的保存形式在数据库中保存类似博客这样的图文混排内容,可以使用以下几种形式:1、文本字段(Text Field)可以使用...详情>>

2023-10-13 14:30:09
Canal将MySQL数据同步到Elasticsearch怎么保证数据一致性?

一、Canal将MySQL数据同步到Elasticsearch保证数据一致性的方法1、事务同步确保Canal捕获到的MySQL数据是基于事务的。Canal会将整个事务的操作...详情>>

2023-10-13 14:27:06
怎样在数据库中实现一对多的关系怎样存储图片和视频?

一、怎样在数据库中实现一对多的关系怎样存储图片和视频1.图片和视频文件 不要存放在数据库中,而应该利用文件系统存放,数据库中只存放读取他...详情>>

2023-10-13 14:22:08
如果同一条记录同时多个进程可能对不同的字段进行修改,怎么保证列锁?

一、如果同一条记录同时多个进程可能对不同的字段进行修改,怎么保证列锁没听说有列锁的机制,主流的方式就是行锁。我觉得你这种需求可以归到“...详情>>

2023-10-13 14:18:11
PC端网站,手机版网站,APP,三者可以实现共用同一数据库,能同步更新吗?

一、PC端网站,手机版网站,APP,三者可以实现共用同一数据库同步更新一般网站实现pc端与移动端适配的需求,方案有两个:1、一套页面,从设计时...详情>>

2023-10-13 14:10:53
快速通道