java 静态库(java简述包的作用)
本篇文章给大家谈谈
静态导入import 语句不仅可以导人类,还增加了导人静态方法和静态域的功能import static java.lang.System.*;就可以使用 System 类的静态方法和静态域,而不必加类名前缀:。
out.println("Goodbye, World!"); // i.e., System.out 静态域exit(0); //i.e., System.exit 静态方法还可以导入特定的方法或域: import static java.lang.System.out; (这是导入域吧?)
将类放入包中package com.david.corejava; 引流营销推广文案 public class Employee{ ... } 没有package语句,默认default package (没有名字的包)
编译器对.java文件进行操作,解释器加载类import static java.lang.System.*; public class PackageTest{ public static void main(String[] args){ Employee harry = new Employee("Harry Hacker",50000,1989,10,1引流营销推广文案); harry.raseSalary(5); out.println("name=" + harry.getName() + ",salary = " + harry.getSalary()); } } package com.david.corejava; import java.time.*; public class Employee{ private String name; private double salary; pr引流营销推广文案ivate LocalDate hireDay; public Employee(String name, double salary, int year, int month, int day){ this.name = name; this.salary = salary; hireDay = LocalDate.of(year,month,day); } public String getName(){ return name; } public引流营销推广文案 double getSalary(){ return salary; } public LocalDate getHireDay(){ return hireDay; } public void raiseSalary(double byPercent){ double raise = salary * byPercent / 100; salary += raise; } }
包作用域如果没有指定 public 或 private ,引流营销推广文案 这 个部分(类、方法或变量)可以被同一个包中的所有方法访问,对于类来说,这种默认是合乎情理的但是, 对于变量来说就有些不适宜了, 因此变量必须显式地标记为 private, 不然的话将默认为包可见。
显然, 这样做会破坏封装性包密封 ( package sealing) :果将一个包密封起来, 就 不能再向这个包添加类了类 路 径 (class path)类存储在文件系统的子目录中类的路径必须与包名匹配。
类路径是所有包含类文件的路径的集合为了使类能够被多个程序共享,需要做到下面几点:1 ) 把类放到一个目录中, 例如 /home/user/classdir(基目录)需要注意, 这个目录是包树状引流营销推广文案结构 的基目录。
如果希望将 com.horstmann.corejava.Employee 类添加到其中,这个 Employee.class 类文件就必须位于子目录 /home/user/classdir/com/horstmann/corejava 中。
2 ) 将 JAR 文件放在一个目录中,例如:/home/user/archives3 ) 设置类路径(classpath)类路径,例子:c:\classdir;.;c:\archives\archive.jar。
为什么要有基目录,因为一个源文件内可能import多个包,所以在查找的时候要将基目录拼接上import的包所对应的的层次结构目录,引流营销推广文案这样才能定位到具体的类文件为什么要有.当前目录,因为这样才能找到同一个包下不同的类文件。
为什么要有jar包文件目录,因为你的源文件中引入了这些jar包中的类编译器定位文件要比虚拟机复杂得多如果引用了一个类,而没有指出这个类所在的 包, 那么编译器将首先查找包含这个类的包,并询查所有的 import 指令,确定其中是否包含 了被引用的类。
例如, 假定源文件包含指令:import java.util.*;import com.horstmann.corejava.*;并且源代码引用了 Employee 类 编译器将试图查找 java.lang.Employee (因为java.lang 包被 默认引流营销推广文案导入)、java.util.Employee、 。
com.horstmann.corejava.Employee 和当前包中的 Employee对这个类路径的所有位置中所列出的每一个类进行逐一查看如果找到了一个以上的类, 就 会产生编译错误(因为类必须是唯一的,而 import 语句的次序却无关紧要-->因为总是会遍历所有包)。
设置类路径java -classpath /home/user/dassdir: .:/home/user/archives/archive.jar HyProg文档注释(略)类的设计技巧1.保证数据私有
2.对数据初始化3.不要在类内使用过多的基本类型, 用其他类代替多引流营销推广文案个相关的基本类型使用例如, 用一个称为 Address 的新的类替换一个 Customer 类中以下的实例域: private String street; private String city; private String state; private int zip;
4.并非所有域都需要访问器和修改该区,对象中常常包括不希望设置的域5.将职责过多的类进行分解6.类名和方法名要体现他们的职责7.优先使用不可变类(什么是不可变类? ---就是没有方法可以改变对象的状态,也就是说对象调用一个方法,它会返回一个新的对象,而不是直接修改当前的对象)引流营销推广文案