标签:访问控制 包 工具库 import classpath
Java编程思想–学习笔记(一)
访问控制(或隐藏具体实现)与“最初的实现并不恰当”有关。
1、包:库单元
我们之所以要导入包,就是要提供一个管理名字的空间机制。
每个java文件只能有一个public类。其他私有类为主public·类提供支持。
1.1 代码组织
与编译型语言不同,java可运行程序是一组可以打包并压缩成java文档文件(JAR,使用Java的jar文档生成器)的.class文件。
使用package和import关键字,使得不会出现名称冲突问题。
注意:java包的命名规则全部使用小写字母,包括中间的字。
1.2 创建独一无二的包命
package名称的独特性一是在于类的创建者的反顺序是Internet的域名,二是在于package名称分解为你机器上的一个目录。
java解释器的运作过程如下:
1)找到环境变量CLASSPATH
2)通过将包名的“.”换做“/”,从CLASSPATH根中产生一个路径名称。
3)解释器根据路径找到与包名相对应的“.class”文件。
CLASSPATH包含一个或多个目录,用来查找.class的根目录。因此java解释器查找的路径包含两部分,第一部分是CLASSPATH下的某一个目录,第二部分是由包名改造而成的路径。
注意:
1)使用jar文件时,CLASSPATH中包含jar文件的实际名称。
2)通过“*”导入类库时可能在使用两个库含有相同名称的类时出现冲突。解决方式是在使用的类前写全它的包,或者使用单个类导入形式。
1.3 定制工具库
创建自己的工具库来减少和消除重复的程序代码。
代码实例:
Print.java
package com.study.until;
import java.io.PrintStream;
/**
*
* @author wom Print method that can be used without
*/
public class Print {
// Print with a newline
public static void print(Object obj) {
System.out.println(obj);
}
// Print only a newline
public static void print() {
System.out.println();
}
// Print without a newline
public static void printnb(Object obj) {
System.out.print(obj);
}
// printf() from Java SE5
public static PrintStream print(String format, Object... args) {
return System.out.printf(format, args);
}
}
PrintTest.java
package com.study.test;
import static com.study.until.Print.*;
public class PrintTest {
public static void main(String[] args) {
print(11111);
print("what!");
print();
printnb("what are you doing?");
printnb(" where are you! ");
}
}
注意:
1)JDK1.5中,String类新增了一个静态方法String.format()。
2)Object… args是指可变参数。即调用时可写多个参数,相当于
public static PrintStream print(String format, Object obj) {
return System.out.printf(format, obj);
}
使用时:
print(format,Object(obj1,obj2,obj3,……))
3) 引用static方法时import语句的写法。
1.4 用import改变行为
可以通过修改被导入的package的方法来实现条件代码。
标签:访问控制 包 工具库 import classpath
原文地址:http://blog.csdn.net/qq_22939165/article/details/43737043