Java中的包以及权限修饰符

10 篇文章 0 订阅
5 篇文章 0 订阅

什么是包?

包从电脑文件系统的角度来讲就是文件夹
从java的角度来讲,包是类的路径(或者说是地址)。
严格意思上的类名:全类名=包类+类的简称

Java中包的作用:

1、避免类的重名
2、按照不同功能管理类
3、可以控制访问权限

包(package)的命名规范

在包名中,可以使用 . 号来区分包的级别;包名在一般情况下都是小写的
第一级:指该项目的类别,如: com,org,gov等。
第二级:指项目所开发或者运行的公司名称,如: oracle,sun,huawei等。
第三级:值项目的名称,如: bcms,oa,era,cms等。
第四级:值该项目模块化的名称,如: bean,action,exception等。

import关键字是用来导入外部包的类
Java.lang包中的类在使用时是可以不用导入

访问权限修饰符

Java语言有四大权限修饰符,权限从大到小依次排布:
public > protected > default > private

public

公共权限修饰符,可以修饰类、属性、方法。
所修饰的是可以被任意类访问到的

protected

受保护的权限修饰符。 用来修饰属性、方法
所修饰的是可以被同包中的类访问到的,如果不是同包类的,则必须是该类的子类才可以被访问到。

default

同包权限的修饰符。 用来修饰类、属性、方法、
所修饰的只能被同包中的类访问到。
是默认的权限修饰符(意思也就是可以不用写的)

private

私有权限修饰符。 用来修饰属性、方法、内部类。
只能在本类中被访问到

请添加图片描述

同类访问

package com.functorone;

public class Demo {

    public String pubName = "张三";
    protected String proName = "李四";
    String defName = "王五";    //default String defName = "王五";
    private String priName = "马六";

    public static void main(String[] args) {
        Demo demo = new Demo();
        System.out.println(demo.pubName);   //公共权限修饰符(任何位置)
        System.out.println(demo.proName);   //受保护权限修饰符(同包,或者不同包的子类)
        System.out.println(demo.defName);   //同包权限修饰符(同包)
        System.out.println(demo.priName);   //私有权限修饰符(本类)
        //在同包同类中都是可以被访问到的
    }
}

在这里插入图片描述

同包不同类访问

package com.functorone;

public class Demo1 {
    //同包不同类
    public static void main(String[] args) {
        Demo demo = new Demo();
        System.out.println(demo.pubName);   //公共权限修饰符(任何位置)
        System.out.println(demo.proName);   //受保护权限修饰符(同包,或者不同包的子类)
        System.out.println(demo.defName);   //同包权限修饰符(同包)
//        System.out.println(demo.priName);//访问不到   //私有权限修饰符(本类)
    }
}

在这里插入图片描述
不同包

package com.functortwo;

import com.functorone.Demo;

public class Demo2 {
    //不同包
    public static void main(String[] args) {
        Demo demo = new Demo();
        System.out.println(demo.pubName);   //公共权限修饰符(任何位置)
//        System.out.println(demo.proName);   //受保护权限修饰符(同包,或者不同包的子类)
//        System.out.println(demo.defName);   //同包权限修饰符(同包)
//        System.out.println(demo.priName);   //私有权限修饰符(本类)
    }
}

在这里插入图片描述
不同包但继承了Demo类

package com.functortwo;

import com.functorone.Demo;

public class Demo4 extends Demo {
    //继承了Demo这个类
    public static void main(String[] args) {
        Demo demo = new Demo();
        System.out.println(demo.pubName);   //公共权限修饰符(任何位置)
//        System.out.println(demo.proName);   //受保护权限修饰符(同包,或者不同包的子类)
//        System.out.println(demo.defName);   //同包权限修饰符(同包)
//        System.out.println(demo.priName);   //私有权限修饰符(本类)
        Demo4 demo4 = new Demo4();
        System.out.println(demo4.proName);
        //通过子类继承父类被protected所修饰的就可以被访问到
    }
}

在这里插入图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值