java从头开始--包和访问权限修饰符

包的概念

可以看做是文件夹

包的作用

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();*/
    }
}

总结:
java从头开始--包和访问权限修饰符

上一篇:Docker:三、深入Docker容器&Asp.net发版


下一篇:初学 Python 笔记【十三】变量 局部和全局