要使用ArrayList,必须导入import java.util.*; 这是一个管理命名空间的机制。一个java源文件称为编译单元,后缀名为.java,每个编译单元只能有一个public类,该类名必须与文件名一致,非public类只要用来为public类提供支持。
Java的可运行程序是一组.class文件。
类库library是一组类文件,每一个文件只有一个public类和若干非public类。
package rtrt; 意思该.java文件在名为rtrt的类库的一部分,想要使用该类,必须用全名或使用import.
java解释器:找到环境变量CLASSPATH,在其中的一个或多个目录中查找.class文件。
类库创建者:使用package。
我们可以创建自己的类库(工具库)来减少代码量,例如用print()代替System.out.print()。
源代码:
/**
* @(#)print.java
*http://blog.csdn.net/a542214712/article/details/8206192
*
* @author
* @version 1.00 2014/6/27
*/
package net.kimown.util;
import java.io.*;
public class print {
public static void print(Object obj){
System.out.print(obj);
}
public static void println(Object obj){
System.out.println(obj);
}
public static void println(){
System.out.println();
}
}
生成的文件夹net放入D:\Program Files\Java中,在环境变量CLASSPATH里添加D:\Program Files\Java;。
在D:\Program Files\Java中建立文件print.java;
/**
* @(#)print.java
*http://blog.csdn.net/a542214712/article/details/8206192
*
* @author
* @version 1.00 2014/6/27
*/
package net.kimown.util;
import java.io.*;
public class print {
public static void print(Object obj){
System.out.print(obj);
}
public static void println(Object obj){
System.out.println(obj);
}
public static void println(){
System.out.println();
}
}
运行,生成print.class文件。
注意:在相同目录下新建文件hello.java测试,
/**
* @(#)hello.java
*
*
* @author
* @version 1.00 2014/6/27
*/
import static net.kimown.util.print.*;
public class hello {
public static void main(String[] args){
print("111");
println("1");
print("22");
print("hello");
}
}
结果:
1111
22hello
注意:如果,如果不是在D:\Program Files\Java目录下建立hello.java文件,那么恭喜你:
错误: 程序包net.kimown.util不存在
天坑,浪费我半天时间啊。。
参考:http://blog.csdn.net/yjjm1990/article/details/7968517
重写range()方法。
package net.kimown.util;
public class range{
public static int[] range(int n){
int[] result=new int[n];
for(int i=0;i<n;i++)
result[i]=i;
return result;
}
public static int[] range(int start,int end){
int size=end-start;
int[] result=new int[size];
for(int i=0;i<size;i++)
result[i]=start+i;
return result;
}
public static int[] range(int start,int end,int step){
int size=(end-start)/step;
int[] result=new int[size];
for(int i=0;i<size;i++)
result[i]=start+i*step;
return result;
}
}
测试:
import static net.kimown.util.range.*;
public class rangedemo{
public static void main(String[] args){
int[] a=range(5);
int[] b=range(5,9);
for(int i:a)
System.out.print(i+" ");
System.out.println();
for(int i:b)
System.out.print(i+" ");
System.out.println();
for(int i:range(0,10,2))
System.out.print(i+" ");
}
}
结果:
0 1 2 3 4
5 6 7 8
0 2 4 6 8
创建一个cookie对象,
package net.kimown.util;
public class cookie{
public cookie(){
System.out.println("1111");
}
void bite(){
System.out.println("bite()");
}
}
在另一个对象中3使用它。
import net.kimown.util.cookie;
public class dinner{
public static void main(String[] args){
System.out.println("dinner");
cookie c=new cookie();
}
}
结果:
dinner
1111
分析:不能使用bite(),错误: bite()在cookie中不是公共的; 无法从外部程序包中对其进行访问.。如果想进行访问请加入public void bite() .执行结果:
dinner
1111
bite()
参考:
http://www.
blogjava.net/cjren/archive/2006/07/06/56888.aspx
http://blog.
sina.com.cn/s/blog_65ad838e0100hlto.html
private的用法:
class sundae{
private sundae(){}
static sundae makeasundae(){
return new sundae();
}
}
public class icecream{
public static void main(String[] args){
sundae s=new sundae();
// sundae s=sundae.makeasundae();
}
}
结果:
icecream.java:9: 错误: sundae()可以在sundae中访问private
sundae s=new sundae();
^
1 个错误
分析:在这里,由于sundae()的构造器为private,那么,别的类就不能直接通过构造器创建sundae对象,必须调用makeasundae()方法 来产生sundae的对象。
protected的用法:
import net.kimown.util.cookie;
public class chocolate extends cookie{
public chocolate(){
System.out.println("chocolate constructor ");
}
public void chomp(){
//bite();
}
public static void main(String[] args){
chocolate c=new chocolate();
c.chomp();
}
}
结果:
1111
chocolate constructor
将cookie的bite()方法权限改为protected,同时将chocolate的bite()的注释取消。
结果:
1111
chocolate constructor
bite()
6.3 接口和实现
注意:类的权限大都不能设为private,或protected。
class soup1{
private soup1(){ //构造器设置为private阻止直接创建类的实例
}
public static soup1 makesoup(){
return new soup1(); //这里返回了一个soup1对象的引用。这里可以添加代码,记录创建了多少个soup1对象。
}
}
class soup2{
private soup2(){ 构造器设置为private阻止直接创建类的实例
}
private static soup2 sp2=new soup2();
public static soup2 access(){
return sp2; //单例模式。一个类只能创建一个对象。
}
public void f(){
}
}
public class lunch{
void testprivate(){
}
void teststatic(){
Soup1 sp1=soup1.makesoup();
}
void testsingleton(){
sp2.sccess().f();
}
}