在同一目录下,计算机不让相同名称的文件存在,java为其提供解决方案,引入包的概念,这样你就可以在不同包下定义相同类了。
包的定义:package加包名
编译包下的class文件与之前有些不同,编辑当前目录下的class文件:javac -d 点源文件名
编辑任意文件下的class文件如果不想切换可以输入set classpath=加文件目录。
运行时:java包名.源文件名。
包的命名规则:一般是公司的域名倒写加项目开发的功能。如百度:com.baidu.功能名。
package one;
public class One {
public void welcom(){
System.out.println("hello 我是one包下的文件");
}
}
package tow;
public class Tow {
public static void main(String[] args) {
// TODO Auto-generated method stub
one.One o=new one.One();
o.welcom();
}
}
包与包之间的访问:上面是两个在不同包下的文件我们之前通过创建对象来调用类中的方法,现在你要在一个类中调用另外一个包中的方法就要在类名前加上包名。并且该包下的类,方法所有的东西都应该是public,public修饰的类要和源文件名保持一致。
package one;
public class One {
protected void welcom() {
System.out.println("hello 我是one包下的文件");
}
}
package tow;
public class Tow extends one.One {
public void show() {
// TODO Auto-generated method stub
welcom();
System.out.println("hello,我是tow包里的方法");
}
}
package test;
public class Tow {
public static void main(String[] args) {
// TODO Auto-generated method stub
tow.Tow t = new tow.Tow();
t.show();
}
}
上面的代码描述了包与包之间的继承,继承的时候要时刻有包的概念,你继承的类前要有包名。
我们之前在同一包下我们可以创建父类对象直接调用父类的方法,但在不同包下,如果在父类方法中写一个访问权限protacted那么你就不能通过创建父类对象调用它的方法,它的方法只向子类提供。
导包的概念:
当我们使用公司域名作为包名时,是不是很无奈,每次创建对象时都要到一长串包,那么java给了一个解决方案,就是导包,import关键字加包名。