package test;
import java.io.*;public class Employee {String name;int age;String designation;double salary;// Employee 类的构造器public Employee(String name) {this.name = name;//此处this代表类的对象本身}// 设置age的值public void empAge(int empAge) {age = empAge;}/* 设置designation的值*/public void empDesignation(String empDesig) {designation = empDesig;}/* 设置salary的值*/public void empSalary(double empSalary) {salary = empSalary;}/* 打印信息 */public void printEmployee() {System.out.println("名字:" + name);System.out.println("年龄:" + age);System.out.println("职位:" + designation);System.out.println("薪水:" + salary);}
}
package test;import java.io.*;public class EmployeeTest {public static void main(String[] args) {/* 使用构造器创建两个对象 *////*java因强制要求类名(唯一的public类)和文件名统一,因此在引用其它类时无需显式声明。在编译时,编译器会根据类名去寻找同名文件。*/Employee empOne = new Employee("RUNOOB1");Employee empTwo = new Employee("RUNOOB2");// 调用这两个对象的成员方法empOne.empAge(26);empOne.empDesignation("高级程序员");empOne.empSalary(1000);empOne.printEmployee();empTwo.empAge(21);empTwo.empDesignation("菜鸟程序员");empTwo.empSalary(500);empTwo.printEmployee();}
}
//private class test{
//public static void main(String[] args){
//
//        }
//        }

由此观察Employee与EmployeeTest可观察出,java因强制要求类名(唯一的public类)和文件名统一,因此在引用其它类时无需显式声明。在编译时,编译器会根据类名去寻找同名文件。---此处和go高度类似,go吸取了java的优点但并不局限于文件名,只限定都在同包下,并可以在一个文件包含多个Public类(首字母大写)灵活性更高

所以说java语法比go更严格。

package test;
class FreshJuice {//不可以加publicenum FreshJuiceSize {SMALL, MEDIUM, LARGE}FreshJuiceSize size;
}public class FreshJuiceTest {//这是主入口------//public static void main(String[] args) {FreshJuice juice = new FreshJuice();juice.size = FreshJuice.FreshJuiceSize.MEDIUM;}
}

此处文件包含多个class,但是只允许存在一个public作为主入口

package 的作用就是 c++ 的 namespace 的作用,防止名字相同的类产生冲突。Java 编译器在编译时,直接根据 package 指定的信息直接将生成的 class 文件生成到对应目录下。如 package aaa.bbb.ccc 编译器就将该 .java 文件下的各个类生成到 ./aaa/bbb/ccc/ 这个目录。

import 是为了简化使用 package 之后的实例化的代码。假设 ./aaa/bbb/ccc/ 下的 A 类,假如没有 import,实例化A类为:new aaa.bbb.ccc.A(),使用 import aaa.bbb.ccc.A 后,就可以直接使用 new A() 了,也就是编译器匹配并扩展了 aaa.bbb.ccc. 这串字符串。

//

java 程序是从一个 public 类的 main 函数开始执行的,(其实是main线程),就像 C 程序 是从 main() 函数开始执行一样。 只能有一个 public 类是为了给类装载器提供方便。 一个 public 类只能定义在以它的类名为文件名的文件中。

每个编译单元(文件)都只有一个 public 类。因为每个编译单元都只能有一个公共接口,用 public 类来表现。该接口可以按照要求包含众多的支持包访问权限的类。如果有一个以上的 public 类,编译器就会报错。 并且 public类的名称必须与文件名相同(严格区分大小写)。 当然一个编译单元内也可以没有 public 类,全部是class 类

java的package与class与public相关推荐

  1. Java链表的书_JAVA实现双向链表的增删功能,完整代码package linked;class LinkedTable{ }public class Linke...

    JAVA实现双向链表的增删功能,完整代码 package linked; class LinkedTable{ } public class LinkedTableTest { //构造单链表 sta ...

  2. Java 包(package)

    为了更好地组织类,Java提供了包机制,用于区别类名的命名空间. 包的作用 1 把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用. 2 如同文件夹一样,包也采用了树形目录的存储方式.同一 ...

  3. java 同一个package import_【编程基础】Java 中的Package和Import

    开始要逐步去熟悉最基础的语法了,幸好之前是有底子的,所以理解也不难,  import Package 有点类似C语言中的#include [头文件] 为什么要用包(Package) 当一个大型程序交由 ...

  4. [笔记]java-package

    [笔记]java-package import 关键字导入一个完整的库时,就会获得"包"(Package).例如: import java.util.*; 若想导入单独一个类,可在 ...

  5. 【java】Java 包(package)

    文章目录 包的作用 创建包 import 关键字 package 的目录结构 设置 CLASSPATH 系统变量 系统包 为了更好地组织类,Java 提供了包机制,用于区别类名的命名空间. 包的作用 ...

  6. java中package(包)的使用理解

    最近在学习java,在学习到对象和类这一部分时,接触了java中很重要的一个概念:package,也就是包.一开始对于package的使用我产生了许多疑惑,不仅是理论上的,在实际写代码的尝试中也出现了 ...

  7. 实际上Java注解与普通修饰符(public、static、void等)的使用方式并没有多大区别

    Java 注解 实际上Java注解与普通修饰符(public.static.void等)的使用方式并没有多大区别 注解的定义 日常开发中新建Java类,我们使用class.interface比较多,而 ...

  8. Java 包(package)使用

    Java 包(package) 一.包的概述:(什么是包?) 开始之前还是得说个例子! 假如有很多Person类,有的有名字有性别,有的又只有名字,那我是不是代码删了写,写了又删?有没有办法这个同样的 ...

  9. java中main方法前的public static void及其后面的(String[] args)【笔记自用】

    为什么Java的main方法必须是public static void? 一. void 如下,像C, C++一样,将返回值类型改为int,再返回一个0,虽然编译通过,但是运行时会报错. 找到一种可理 ...

最新文章

  1. 首部高中《人工智能基础》教材问世,40家中学引入
  2. 计算机网络课程优秀备考PPT之第五章网络层(五)
  3. UniDAC使用教程(二):数据更新
  4. VMware ESXi客户端连接控制台时提示“VMRC控制台连接已断开...正在尝试重新连接“的解决方法
  5. 83.76%任职回报!这位「互联网研霸」基金经理的作业赶快抄!
  6. 【Linux网络编程】TCP 和 UDP 数据报格式详解
  7. 4.无监督学习--K-means聚类
  8. use SAP web IDE to commit change to git
  9. OSSemPost()--发出一个信号量
  10. Broadcom获得65亿美元过度贷款以收购Brocade
  11. 系统架构(1)---单机至亿级流量大型网站系统架构演进
  12. HBase伪分布式搭建
  13. Nacos初探(3)-- 服务发现原理解析
  14. Linux 驱动开发 六十六:多点触控(MT)协议
  15. 如何写产品介绍PPT
  16. 【实战】爬虫实战-pixabay图片存储mysql
  17. 移动OA实现智慧互联,助力企业办公无忧
  18. [BZOJ3928/4048]Outer space invaders
  19. mt6592驱动下载linux,OV13850-mipi-raw-for-MT6592 OV13850 for mtk6592上的驱动 - 下载 - 搜珍网...
  20. c语言精华版课件,C语言课件精华版).ppt

热门文章

  1. [ZJCTF 2019]NiZhuanSiWei
  2. 专访宜信CTO向江旭:技术应当服务于场景,AI天生适合金融业
  3. 修改Wordpress固定链接导致页面无法无法访问的解决办法
  4. 那匆匆2014年,明明想静静
  5. 音速索尼克 怪人_优势演员评论家方法简介:让我们玩刺猬索尼克!
  6. 【NOIP%你题】【线性筛】dun题解
  7. DUN连接完成后,pc与手机进行LCP协商
  8. python培训报价
  9. 品管七大手法-6鱼骨图(转载)
  10. python画趋势图_python 绘制走势图