JAVA中类的public class与class的区别详解

JAVA中类的public class与class的区别详解1.类的访问权限为了控制某个类的访问权限,修饰词必须出现在关键字class之前。例如:publicclassStudent{}在编写类的时候可以使用两种方式定义类:(A)publicclass定义类(B)class定义类2.publicclass定义类如果一个类声明的时候使用了publicclass进行了声明,则类名称必须与文件名称完全一致。被publ…

大家好,又见面了,我是你们的朋友全栈君。

##1.类的访问权限

  • 为了控制某个类的访问权限,修饰词必须出现在关键字class之前。例如:public class Student {}
  • 在编写类的时候可以使用两种方式定义类:
    (A)public class定义类
    (B)class定义类
    ##2.public class定义类
  • 如果一个类声明的时候使用了public class进行了声明,则类名称必须与文件名称完全一致。
  • 被public修饰的类可以被其他包访问。如果现在的库名是com,那么就可容易通过下面的声明访问Student:
import com.Student;
或者
import com.*;

这里写图片描述
##3.class定义类

  • 如果一个类声明的时候使用了class进行了声明,则作为启动类的名称可以与文件名称不一致,但是执行的时候肯定执行的是生成后的名称。
  • 没有public修饰的类,该类就拥有了包访问权限,即该类只可以用于该包之中。
    这里写图片描述

这里写图片描述
##4.class定义的类只具有包访问权限,该类不能被其他包访问

package access.cookie2;

public class Cookie
{
	Cookie()
	{
		System.out.println("Cookie constructor");
	}
	public void bite()
	{
		System.out.println("bite");
	}
}  
package access;
import access.cookie2.*;

public class ChocolateChip2
{
	public ChocolateChip2()
	{
		System.out.println("ChocolateChip2 constructor");
	}

	public static void main(String[] args)
	{
		ChocolateChip2 x = new ChocolateChip2();
		
		Cookie y = new Cookie();
		y.bite();		
	}
}
  • 编译、运行:
    这里写图片描述

  • 如果把Cookie修改为:public class Cookie{}。再编译、运行:
    这里写图片描述

##5.小结

  • 每个编译单元(文件)都只能有一个public类。即每个编译单元都有单一的公共接口,用public类实现。此时,mian()就必须要包含在public类中。
  • public类的名称必须完全与含有该编译单元的文件名称一致,包括大小写。如果不匹配,编译时错误。
  • 如果编译单元(文件)中不含有一个public类,此时编译单元文件名称可以与启动类名称可以不一致,即可以随意对文件命名。这样的话,main()不是必须要放在public类中才能运行程序。
  • **总的来说,一个Java源文件中最多只能有一个public类,当有一个public类时,源文件名必须与之一致,否则无法编译,如果源文件中没有一个public类,则文件名与类中没有一致性要求。**至于main()不是必须要放在public类中才能运行程序。

欢迎关注公众号:VenusBlockChain 致力于区块链技术研究,传播区块链技术和解决方案、区块链应用落地、区块链行业动态等。
在这里插入图片描述

参考:http://www.jb51.net/article/39892.htm
http://www.cnblogs.com/stevengerrard/p/4067422.html
《java编程思想》

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/132763.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 深入浅出学python_深入浅出Python机器学习 (段小手) 完整pdf高清版[176MB]

    深入浅出学python_深入浅出Python机器学习 (段小手) 完整pdf高清版[176MB]机器学习正在迅速改变我们的世界。我们几乎每天都会读到机器学习如何改变日常的生活。如果你在淘宝或者京东这样的电子商务网站购买商品,或者在爱奇艺或是腾讯视频这样的视频网站观看节目,甚至只是进行一次百度搜索,就已经触碰到了机器学习的应用。使用这些服务的用户会产生数据,这些数据会被收集,在进行预处理之后用来训练模型,而模型会通过这些数据来提供更好的用户体验。此外,目前还有很多使用机器学习技术的产品或服务即…

    2022年10月18日
    3
  • 【读书笔记】高性能MySQL (一)

    【读书笔记】高性能MySQL (一)

    2021年8月18日
    57
  • DatagramSocket例子「建议收藏」

    DatagramSocket例子「建议收藏」在javaSE中,使用DatagramSocket进行的网络通信是基于UDP的。DatagramSocket类:表示发送和接收数据报包的套接字。数据报套接字是包投递服务的发送或接收点。从一台机器发送到另一台机器的多个包可能选择不同的路由,也可能按不同的顺序到达。构造方法:(多个只说一个)DatagramSocket(intport)创建数据报套接字并将其绑定到本…

    2022年6月8日
    33
  • Linux chmod命令用法

    Linux chmod命令用法chmod—-改变一个或多个文件的存取模式(mode) chmod[options]modefiles 只能文件属主或特权用户才能使用该功能来改变文件存取模式。mode可以是数字形式或以whoopcodepermission形式表示。who是可选的,默认是a(所有用户)。只能选择一个opcode(操作码)。可指定多个mode,以逗号分开。 options:

    2022年6月24日
    22
  • 软件公司有哪些[通俗易懂]

    软件公司有哪些[通俗易懂]1、ERP厂商sap、oracle、赛捷(sage)、用友、金蝶、鼎捷、神州数码、浪潮、新中大、东软、中软、宝信软件、博科、天元国信、微软、正航软件、管家婆、金算盘、管易、智邦国际、德米萨、通易、精效ERP、万里牛懒人ERP、来钱快速达、任我行、美萍、精算软件、艾特、快普、商友、东华软件、高格ERP、汉得信息、哲霖软件、九天软件、网店管家、吉客云、普源软件2、CRM厂商salesforce、南讯软件、爱客、八百客、纷享销客、百会、车商通SCRM、EC、富润、红圈、码客、前海圆舟、时趣SOCIAL、数云

    2022年10月10日
    4
  • 如何设计单元测试用例「建议收藏」

    如何设计单元测试用例「建议收藏」如何编写单元测试用例(白盒测试)。一、单元测试的概念单元通俗的说就是指一个实现简单功能的函数。单元测试就是只用一组特定的输入(测试用例)测试函数是否功能正常,并且返回了正确的输出。测试的覆盖种类1.语句覆盖:语句覆盖就是设计若干个测试用例,运行被测试程序,使得每一条可执行语句至少执行一次。2.判定覆盖(也叫分支覆盖…

    2022年6月18日
    33

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号