包及访问控制权限
包的定义
在Java中使用package关键字来定义包,此语句必须写在xxx.java文件的首行。
例:定义包
package com.study.Demo; //定义程序所在包,此语句必须放在首行
public class Hello {
public static void main(String args[]){
System.out.println("Hello World");
}
}
包的导入
例:定义一个类
package com.study.A;
public class Message {
public void print(){
System.out.println("666");
}
}
例:定义另一个类,这个类要使用先前定义的那个类
package com.study.test;
import com.study.A.Message; //导入所需要的类
public class TestMessage {
public static void main(String args[]){
Message msg=new Message(); //实例化对象
msg.print(); //调用方法
}
}
//结果
//666
例:导入一个包中的多个类
package com.study.test;
import com.study.A.*; //自动导入指定包中所需的类
public class TestMessage {
public static void main(String args[]){
Message msg=new Message();
msg.print();
}
}
如果使用不同的包中出现了同名类冲突的情况,必须在使用类时加上包名称。
如:
com.study.test.Message msg=new com.study.A.Message();
系统常见包
访问控制权限
对于上表可以简单理解为
private只能在一个类中访问;
default只能在一个包中访问;
protected在不同包的子类中访问;
public为所有都可以。
对于初学者,把握访问权限以下两个基本原则即可:
属性声明主要使用private声明
方法声明主要使用public声明
例:
package com.study.A;
public class A {
protected String info="Hello"; //使用protected权限定义
}
package com.study.Demo;
import com.study.A.A;
public class B extends A { //是A不同包的类
public void print(){
System.out.println("A类的info="+super.info); //直接访问父类中的protected属性
}
}
package com.study.Demo;
import com.study.Demo.B;
public class Test {
public static void main(String args[]){
new B().print();
}
}
//结果
//A类的info=Hello
命名规范(虽然我也不是很注意)
类名称:每一个单词的开头大写,例如:TestDemo;
变量名称:第一个单词的首字母小写,之后的每个单词的首字母大写,例如:studetName;
方法名称:第一个单词的首字母小写,之后的每个单词的首字母大写,例如:printInfo();
常量名称:每个字母大写,例如:FLAG;
包名称:所有字母小写,例如:com.study