JAVA中类的public class与class的区别详解
转载自:https://blog.csdn.net/jingzi123456789/article/details/71515728
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类中才能运行程序。
参考:http://www.jb51.net/article/39892.htm
http://www.cnblogs.com/stevengerrard/p/4067422.html
《java编程思想》
JAVA中类的public class与class的区别详解相关推荐
- Java中print、printf、println的区别 详解
Java中print.printf.println的区别详解 printf主要是继承了C语言的printf的一些特性,可以进行格式化输出 print就是一般的标准输出,但是不换行 println和pr ...
- java中public_java中public class与class的区别详解
以下是对java中public class与class的区别进行了分析介绍,需要的朋友可以过来参考下 在编写类的时候可以使用两种方式定义类:public class定义类: class定义类:如果一个 ...
- java之public class和class声明区别详解 (转)
在编写类的时候可以使用两种方式定义类: public class定义类: class定义类: 如果一个类声明的时候使用了public class进行了声明,则类名称必须与文件名 ...
- java serializable用法_JAVA序列化Serializable及Externalizable区别详解
序列化简介 Java 的对象序列化将那些实现 Serializable 接口的对象转换成一个字节序列,并能在之后将这个字节序列完全恢复为原来的对象. 这就意味着 Java 对象在网络上的传输可以不依赖 ...
- java integer == int_Java中int和Integer的区别详解
1.Java 中的数据类型分为基本数据类型和复杂数据类型 int是前者>>integer 是后者(也就是一个类) 2.初始化时>> int i =1; Integer i= n ...
- Java中的nextInt()和next()与nextLine()区别详解
首先的一个区别是: nextInt()读取结果为一个int类型数据,返回int值 nextFloat()读取结果为float类型,返回float值 next()读取结果为String类型,返回stri ...
- Java中类、抽象类、接口之间的区别和联系。
Java中类.抽象类.接口之间的区别和联系. 程序设计所面对的问题域--客观世界,是由许多事物构成的,这些事物既可以是有形的(比如一辆汽车),也可以是无形的(比如一次会议).把客观世界中的事物映射到面 ...
- java 三种将list转换为map的方法详解
这篇文章主要介绍了java 三种将list转换为map的方法详解的相关资料,需要的朋友可以参考下 java 三种将list转换为map的方法详解 在本文中,介绍三种将list转换为map的方法: 1) ...
- java throw与throws_基于Java中throw和throws的区别(详解)
系统自动抛出的异常 所有系统定义的编译和运行异常都可以由系统自动抛出,称为标准异常,并且 Java 强烈地要求应用程序进行完整的异常处理,给用户友好的提示,或者修正后使程序继续执行. 语句抛出的异常 ...
最新文章
- Spring Boot+Docker微服务分布式服务架构设计和部署案例
- 专题解读 |「知识图谱」领域近期值得读的 6 篇顶会论文
- 我的MVC之旅(3)--------MVC Music Store 第三篇 Views and ViewModels [翻译]
- DE19 Introduction to the Laplace Transform
- 数字图像空间域 频域
- Sketch软件51.3 51.2 50.2 50 52 53 54 55 56 57 58正版激活码序列号 支持在线升级
- C++ 单例模式(饿汉模式、懒汉模式)
- 数据可视化基本套路总结
- 人工智能迅猛发展,如何应对避免失业?
- aspose.total for C++ Crack
- Bitmap 图片缩放
- JavaScript Canvas2D实现SpriteSheet角色动画
- SQL中row_numer、rank、dense_rank的区别与用途
- c语言怎么写tg的反函数,关于y=x对称的两个函数表达式有什么特点 改怎么写 比如对数函数...
- 单身的我写了一个七夕表白程序
- 第07讲B文件与文件夹操作
- mysql投影和选择区别_计算机二级。选择和投影到底有什么区别?
- 【论文学习】《Who is Real Bob? Adversarial Attacks on Speaker Recognition Systems》
- 《魔灵保卫者》服务端架构及实现
- 参考文献管理软件Jabref和Zotero使用笔记
热门文章
- RTEMS线程调度算法(RMS)详解
- java计算机毕业设计歌唱比赛积分管理系统MyBatis+系统+LW文档+源码+调试部署
- 【Jquery】-------JS实现关键字检索html内容,符合关键字的匹配项,进行标注背景色,可进行上一个,下一个切换定位
- win7 隐藏任务栏操作中心图标
- ETHBMC: A Bounded Model Checker for Smart Contracts
- 公司总监沦为家庭主妇:做威客让我重新破浪前行
- EMD和Hilbert
- shell编程-02-变量作用域
- 什么蓝牙耳机性价比高?目前最值得入手的蓝牙耳机
- 【FAQ】什么是 Canon EDSDK(EOS Digital SDK)