public class和class的区别有哪些?
一、访问权限不同
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的代码规范,使用规范的命名方式、缩进、注释等,以使代码易于阅读和维护。同时,需要注意代码的可读性和可维护性,避免过于复杂的逻辑和冗长的代码,以提高代码的可复用性和可扩展性。
遵循上述这些注意事项,可以使代码更加规范、易读、易维护,并且提高代码的可复用性和可扩展性。

猜你喜欢LIKE
相关推荐HOT
更多>>
为什么SQL数据库用B树索引?
一、SQL数据库用B树索引的原因1、平衡性B树是一种自平衡的树型数据结构,它能够自动调整和保持树的平衡状态。这意味着无论是在插入、删除还是查...详情>>
2023-10-15 17:27:31
Python的pymysql、mysql、mysqlx库都有什么区别?
一、Python的pymysql、mysql、mysqlx库的区别Python的pymysql、mysql、mysqlx库连接数据库所使用的引擎不一样,简单操作都没什么影响的。如果一...详情>>
2023-10-15 16:54:43
CHNS数据库怎么查找想要的数据?
一、CHNS数据库查找想要的数据的方法CHNS数据库是指中国健康与营养调查(China Health and Nutrition Survey)数据库,该数据库提供了中国家庭...详情>>
2023-10-15 16:31:56
502 Bad Gateway怎么解决?
一、502 Bad Gateway的解决办法“502 Bad Gateway”错误是指在客户端(通常是您的浏览器)和服务器之间建立网关或代理时出现问题。1、刷新页面...详情>>
2023-10-15 16:03:47热门推荐
MySQL LEFT JOIN 和 JOIN查询有什么区别?
沸写好的java可执行程序在其他电脑上如何使用?
热oracle19c与oracle12c有哪些区别?
热Python的字典和数据库有什么区别?
新mysql字符串内部是怎么比较大小的?
Excel怎样从Access中实时读取更新的数据?
mysql中,逻辑删除对索引以及性能会造成什么影响?
什么是 ZIP 文件,工作机制是什么?
sql中group by,having语句在select前执行,那么为什么能用select中的别名?
public class和class的区别有哪些?
Python的应用领域及优缺点?
postgreSQL is not null 和 !=NULL有什么区别吗?
Oracle执行SQL报错ORA-00922是什么原因?
为什么SQL数据库用B树索引?
技术干货






