java中关于public class
在编写类的时候可以使用两种方式定义类:
public class定义类:
class定义类:
1,如果一个类声明的时候使用了public class进行了声明,则类名称必须与文件名称完全一致。(一个java 程序中至多只能有一个public 类,也可以没有任何public类)。
2,如果类的声明使用了class的话,则类名称可以与文件名称不一致,但是执行的时候肯定执行的是生成后的名称。(class文件是根据java文件中的class声明生成的。)
3,在一个*.java的文件中,只能有一个public class的声明,但是允许有多个class的声明 。(一个java程序中有几个class就会被编译成几个class文件)。
为什么java源文件不可以有两个public类?
简单的说,是由JAVA机制决定的,这是硬性规定,不遵守就会出错。比如C#里就可以在一个源文件里有多个public类,也可以只有一个,这是看各个不同语言所定的规则了。
细究的话,只能说JAVA这个样规定有什么好处呢?
简单地说来,是为了更好地组织代码。
再追究,为什么这样能更好地组织代码呢?这得从JAVA类的访问机制说起了。
JAVA中可以让用户(当你编译好类之后,所有使用这些类的其它类,因为在不同的包中)访问的类只能是public,没有加public 的只有包的访问权限,用户无法访问 ,这样的类是作为辅助public类的作用出现的,如果不在public类中出现过,那么可以说这些类是没用的。
所以,JAVA就规定一个源文件只能有一个public类,而且文件名必须与它相同,这样一个文件形成了一个功能单元,而不会存在一个文件有很多功能单元这样的混乱局面,这样管理起代码来就有条理多了。
java中关于public class的更多相关文章
- 在JAVA中利用public static final的组合方式对常量进行标识
在JAVA中利用public static final的组合方式对常量进行标识(固定格式). 对于在构造方法中利用final进行赋值的时候,此时在构造之前系统设置的默认值相对于构造方法失效. 常量(这 ...
- java中class,public的用法
java中class,public的用法 一.Java访问权限饰词(access specifiers) Java有public.protect.friendly.private四种访问权限,并且这四 ...
- Java中的public、protected、default和private的区别
(1) 对于public修饰符,它具有最大的访问权限,可以访问任何一个在CLASSPATH下的类.接口.异常等.它往往用于对外的情况,也就是对象或类对外的一种接口的形式. (2) ...
- 如何区别java中的public,protected,default,private
================Public====================== 1>首先我们介绍public关键字,从字面意义上出发,public意为公共的,可见它的访问权限是很宽松的 ...
- java中的public,protected,private权限修饰
public和private基本没问题,主要是默认的和protected之间的区别 同一包中默认的和protected一样,所以来看看不同包的情况 看下如下代码,两个类位于不同包: public cl ...
- Java中的public、private、protected,函数修饰符
1.public:public表明该数据成员.成员函数是对所有用户开放的,项目中其他脚本都可以直接进行调用 2.private:private表示私有,私有的意思就是除了脚本之外,项目中其他类都不可以 ...
- [转]java中作用域public private protected 以及不写的区别
在说明这四个关键字之前,我想就class之间的关系做一个简单的定义,对于继承自己的class,base class可以认为他们都是自己的子女,而对于和自己一个目录下的classes,认为都是自己的朋友 ...
- java中的 public protected friendly private
1.public:public表明该数据成员.成员函数是对所有用户开放的,所有用户都可以直接进行调用 2.private:private表示私有,私有的意思就是除了class自己之外,任何人都不可以直 ...
- 一看你就懂,超详细java中的ClassLoader详解
本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 ClassLoader翻译过来就是类加载器,普通的Java开发者其实用到的不多,但对于某些框架开发者来说却非常常见.理解ClassL ...
随机推荐
- 2016022605 - redis订阅发布
Redis的实现消息队列功能,消息发布者发送的消息,消息接收者接收发布者的消息.由该消息传送的链路被称为通道.在Redis客户端可以订阅任何数目的通道. 案例:给出一个客户端订阅一个通道名为redis ...
- winform下载网页源码
public partial class Form1 : Form{public Form1(){InitializeComponent();} private void button1_Click( ...
- Contest20140705 testC DP
testC 输入文件: testC.in 输出文件testC.out 时限1000ms 问题描述: ,⋯,an. ,a2,a3,⋯,an) ,⋯,alm. ,al2,al3,⋯,alm) 现要求G=g ...
- Astyle:代码格式化工具简明指南
astyle是一个我自己常用的开放源码工具.它可以方便的将程序代码格式化成自己想要的样式而不必人工修改.本来嘛,作为高等生物应该优先去做一些智慧的事情,而不是把时间消耗在机器可以完美完成的事情上. 想 ...
- linux下常用网络操作汇总
首先说明下RHEL6下设置IP地址的确和RHEL5下有几点是不同的. 我装完RHEL6中默认选择的是DHCP自动获取方式: [root@localhost ~]# vi /etc/sysconfig/ ...
- ubuntu 增加新硬盘
在校内建了一个ftp,本来是想放一点东西的,没想到越放越多,然后硬盘就不够了. 服务器是虚拟出来的ubuntu-server 12.04.想要将新硬盘挂载到/home/ftp目录. 操作步骤: 1.可 ...
- bzoj2597
非常好的网络流题目 首先这里用到了求补集的思想,我们可以先求不满足的三元对的情况 设A-->B代表A赢B 由于最后所有胜负关系都确定,一定是一个完全图,所以任意一个不合法的三元对,单独取出来一定 ...
- Oracle imp 不同字符集导入
有一个dmp文件是US7ASCII字符的,现有数据库是UTF8字符集,按照查到的资料看说是UTF8是US7ASCII超级可以自动转换导入.但是导入的时候某些字段超长,导致一个表导入错误. 解决办法,讲 ...
- Selenium 前期学习
一.了解selenium必读文档: 官方文档:http://docs.seleniumhq.org/docs/03_webdriver.jsp 二.公司使用c#开发,配合开发的要求,使用visual ...
- Rest中的XML与JSON的序列化与反序列化
#region 获取XML的序列化和反序列化 /// <summary> /// 对象进行序列化生成XML /// </summary> /// <typeparam n ...