软件包
软件包解决了两个类名字一样的问题。软件包就是一个"文件夹"。
包名的命名规范:
1、要求所有字母都小写;
2、包名一般情况下,是你的域名倒过来写。比如baidu.com,package com.baidu;
编写Test.java:
package mings; //将类防止到一个包当中
public class Test{
public static void main(String[] args){
System.out.println("Hello,package!");
}
}
编译包命令,点代表当前目录:
javac -d . Test.java
编译后会自动生成mings文件夹:
java当中的访问权限
public 公共权限 修饰类、成员函数、成员变量。修饰类的话,文件名和类名必须一致。 作用在于两个类在不同包中,但是想要调用的另一个类或者类的构造函数、成员变量的话,加上public后可以任意调用。
private 私有权限 修饰成员变量、成员函数; 就算在同一个包中,也只能在当前类中调用变量和函数。
default 包级别访问权限(默认) 修饰类、成员函数、成员变量。如果在同一个包中,可以任意调用。
protected 受保护权限。修饰成员函数、成员变量。拥有default相同的权限。特殊:跨包继承。
public > protected > default > private
下面就是一个public权限的代码。
Person.java:
package com.mings;
public class Person{
public String name;
public int age;
public void introduce(){
System.out.println(name);
}
}
Test.java:
package com.cn.mings;
class Test{
public static void main(String[] args){
com.mings.Person p = new com.mings.Person;
}
}
编译没有问题。但是存在一个问题就是com.mings.Person太长了。
因此可以使用导入包的方式,简化代码。
import 类名
修改Test.java:
package com.cn.mings;
import com.mings.Person;
class Test{
public static void main(String[] args){
Person p = new Person();
p.name = "liming";
p.introduce();
}
}
运行后的结果:
D:\Java\code\练习九>java com.cn.mings.Test
liming