包
包的概念
可以看做是文件夹
包的作用
1.避免类重名
全类名:包名+类名的简称(唯一的名称)
2.按照不同的功能管理类
3.控制访问权限
包(package)的命名规范:
在包名中,可以使用“.”来区分包的级别;包名一般情况下是小写。
第一级 指该项目的类型,如com,org,gov等。
第二级 指项目所开发或者运行的公司名称,如:oracle,sun,huawei等。
第三级 指项目的名称,如:bcms,oa,erp,cms等。
第四级 指项目模块的名称,如:bean,action,exception等。
注意:
1.导入外部包的类需要使用关键字“import”。
2.java.lang 包中的类在使用时不需要导入。
访问权限修饰符
访问权限修饰符:public,protected,(default)和private
Java语言有四个权限访问修饰符
1)public :公共权限 修饰类、属性、方法。可以被任意类访问
2)protected:受保护的权限 修饰属性、方法。可以被同包类访问,如果不是同包类,必须是该类的子类才可以访问。
3)default:同包权限(包权限) 修饰类、属性、方法。只能被同包的类访问。
4)private:私有权限 修饰属性、方法。 只能在本类中访问。
实例:
/*
package 包 com.ff.javaoop.day3;路径名,java中不同层级之间用.隔开,在一般的文件目录中用"/"隔开
包就是文件夹
作用 1.避免类重名
2.按照不同的功能管理类
3.控制访问权限
*/
package com.ff.javaoop.day3;
/*
import 类的地址,在一个类中使用另一个包中的类需要用import关键字将类的地址导入
java.lang 包中的类在使用时候不需要导入,如String s = "jds";的使用
不允许导入两个类名相同的类,在实际中如果必须要导入则需要将其中一个用全类名表示
*/
import java.util.Date;
/*
类名平常用的都是简写,全类名 = 包名+类名的简称
*/
public class Demo {
public static void main(String[] args) {
Date date = new Date();
String s = "jds";
java.sql.Date date1 = new java.sql.Date(2);
}
}
package com.ff.javaoop.day3;
/*
访问权限修饰符(public,protected,default和private)
pubilc 可修饰类,方法,属性 可以被任意类访问
protected 可修饰方法和属性 包中访问,若不是同包类,则必需是该类的子类才可以访问
default 修饰类、属性、方法 默认的 只能在同一个包中访问
private私有的 可修饰属性,方法,内部类 只能在本类中访问
*/
public class Demo1 {
public int pub;
public int pro;
int def;
private int pri;
public void pub() {
}
protected void pro(){
}
void def(){
}
private void pri(){
}
public void test() {
Demo1 d = new Demo1();
System.out.println(d.pub);
d.pub();
System.out.println(d.pro);
d.pro();
System.out.println(d.def);
d.def();
System.out.println(d.pri);
d.pri();
}
}
package com.ff.javaoop.day3;
/*
在同一个包的不同类中
private不能被访问,private只能在自己所在类中被访问
其余均可以被访问
*/
public class Demo3 {
public void test() {
Demo1 d = new Demo1();
System.out.println(d.pub);
d.pub();
System.out.println(d.pro);
d.pro();
System.out.println(d.def);
d.def();
/*System.out.println(d.pri);
d.pri(); */
}
}
package com.ff.javaoop.day4;
import com.ff.javaoop.day3.Demo1;
//在不同包中只有public可以被访问
public class Demo {
public static void main(String[] args) {
Demo1 d = new Demo1();
System.out.println(d.pub);
d.pub();
/* System.out.println(d.pro);
d.pro();
System.out.println(d.def);
d.def(); */
}
}
package com.ff.javaoop.day4;
//在不同包的不同子类中可以访问父类中受保护的成员,用extends导入
public class Demo1 extends com.ff.javaoop.day3.Demo1{
public static void main(String[] args) {
Demo1 d = new Demo1();
System.out.println(d.pub);
d.pub();
System.out.println(d.pro);
d.pro();
/*
System.out.println(d.def);
d.def();
System.out.println(d.pri);
d.pri();*/
}
}
总结: