静态导入
import 语句不仅可以导人类,还增加了导人静态方法和静态域的功能。
import static java.lang.System.*;
就可以使用 System 类的静态方法和静态域,而不必加类名前缀:
out.println("Goodbye, World!"); // i.e., Sy 静态域
exit(0); ., Sy 静态方法
还可以导入特定的方法或域: import static java.lang.Sy; (这是导入域吧?)
将类放入包中
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); (5); out.println("name=" + () + ",salary = " + ()); } } package com.david.corejava; import java.time.*; public class Employee{ private String name; private double salary; private LocalDate hireDay; public Employee(String name, double salary, int year, int month, int day){ = name; = salary; hireDay = LocalDa(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. 类添加到其中,这个 Em 类文件就必须位于子目录 /home/user/classdir/com/horstmann/corejava 中。
2 ) 将 JAR 文件放在一个目录中,例如:/home/user/archives。
3 ) 设置类路径(classpath)。
类路径,例子:c:classdir;.;c:archivesarc
为什么要有基目录,因为一个源文件内可能import多个包,所以在查找的时候要将基目录拼接上import的包所对应的的层次结构目录,这样才能定位到具体的类文件。
为什么要有.当前目录,因为这样才能找到同一个包下不同的类文件。
为什么要有jar包文件目录,因为你的源文件中引入了这些jar包中的类。
编译器定位文件要比虚拟机复杂得多。如果引用了一个类,而没有指出这个类所在的 包, 那么编译器将首先查找包含这个类的包,并询查所有的 import 指令,确定其中是否包含 了被引用的类。例如, 假定源文件包含指令:
import java.util.*;
import com..*;
并且源代码引用了 Employee 类。 编译器将试图查找 java.lang.Employee (因为java.lang 包被 默认导入)、java.u、 com. 和当前包中的 Employee。
对这个类路径的所有位置中所列出的每一个类进行逐一查看。如果找到了一个以上的类, 就 会产生编译错误(因为类必须是唯一的,而 import 语句的次序却无关紧要-->因为总是会遍历所有包)。
设置类路径
java -classpath /home/user/dassdir: .:/home/user/archives/arc HyProg
文档注释(略)
类的设计技巧
1.保证数据私有
2.对数据初始化
3.不要在类内使用过多的基本类型, 用其他类代替多个相关的基本类型使用
例如, 用一个称为 Address 的新的类替换一个 Customer 类中以下的实例域:
private String street; private String city; private String state; private int zip;4.并非所有域都需要访问器和修改该区,对象中常常包括不希望设置的域
5.将职责过多的类进行分解
6.类名和方法名要体现他们的职责
7.优先使用不可变类(什么是不可变类? ---就是没有方法可以改变对象的状态,也就是说对象调用一个方法,它会返回一个新的对象,而不是直接修改当前的对象)
1.《如何处理静态域?总结很全面速看!读《Java核心技术》---包package(静态导入、包作用域、类路径)》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《如何处理静态域?总结很全面速看!读《Java核心技术》---包package(静态导入、包作用域、类路径)》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/gl/2238814.html