java的package与class与public
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相关推荐
- Java链表的书_JAVA实现双向链表的增删功能,完整代码package linked;class LinkedTable{ }public class Linke...
JAVA实现双向链表的增删功能,完整代码 package linked; class LinkedTable{ } public class LinkedTableTest { //构造单链表 sta ...
- Java 包(package)
为了更好地组织类,Java提供了包机制,用于区别类名的命名空间. 包的作用 1 把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用. 2 如同文件夹一样,包也采用了树形目录的存储方式.同一 ...
- java 同一个package import_【编程基础】Java 中的Package和Import
开始要逐步去熟悉最基础的语法了,幸好之前是有底子的,所以理解也不难, import Package 有点类似C语言中的#include [头文件] 为什么要用包(Package) 当一个大型程序交由 ...
- [笔记]java-package
[笔记]java-package import 关键字导入一个完整的库时,就会获得"包"(Package).例如: import java.util.*; 若想导入单独一个类,可在 ...
- 【java】Java 包(package)
文章目录 包的作用 创建包 import 关键字 package 的目录结构 设置 CLASSPATH 系统变量 系统包 为了更好地组织类,Java 提供了包机制,用于区别类名的命名空间. 包的作用 ...
- java中package(包)的使用理解
最近在学习java,在学习到对象和类这一部分时,接触了java中很重要的一个概念:package,也就是包.一开始对于package的使用我产生了许多疑惑,不仅是理论上的,在实际写代码的尝试中也出现了 ...
- 实际上Java注解与普通修饰符(public、static、void等)的使用方式并没有多大区别
Java 注解 实际上Java注解与普通修饰符(public.static.void等)的使用方式并没有多大区别 注解的定义 日常开发中新建Java类,我们使用class.interface比较多,而 ...
- Java 包(package)使用
Java 包(package) 一.包的概述:(什么是包?) 开始之前还是得说个例子! 假如有很多Person类,有的有名字有性别,有的又只有名字,那我是不是代码删了写,写了又删?有没有办法这个同样的 ...
- java中main方法前的public static void及其后面的(String[] args)【笔记自用】
为什么Java的main方法必须是public static void? 一. void 如下,像C, C++一样,将返回值类型改为int,再返回一个0,虽然编译通过,但是运行时会报错. 找到一种可理 ...
最新文章
- 首部高中《人工智能基础》教材问世,40家中学引入
- 计算机网络课程优秀备考PPT之第五章网络层(五)
- UniDAC使用教程(二):数据更新
- VMware ESXi客户端连接控制台时提示“VMRC控制台连接已断开...正在尝试重新连接“的解决方法
- 83.76%任职回报!这位「互联网研霸」基金经理的作业赶快抄!
- 【Linux网络编程】TCP 和 UDP 数据报格式详解
- 4.无监督学习--K-means聚类
- use SAP web IDE to commit change to git
- OSSemPost()--发出一个信号量
- Broadcom获得65亿美元过度贷款以收购Brocade
- 系统架构(1)---单机至亿级流量大型网站系统架构演进
- HBase伪分布式搭建
- Nacos初探(3)-- 服务发现原理解析
- Linux 驱动开发 六十六:多点触控(MT)协议
- 如何写产品介绍PPT
- 【实战】爬虫实战-pixabay图片存储mysql
- 移动OA实现智慧互联,助力企业办公无忧
- [BZOJ3928/4048]Outer space invaders
- mt6592驱动下载linux,OV13850-mipi-raw-for-MT6592 OV13850 for mtk6592上的驱动 - 下载 - 搜珍网...
- c语言精华版课件,C语言课件精华版).ppt