java中的包及访问修饰符

包的三大作用:

  1. 区分相同名字的类(就是可以在不同包中写相同名字的类)
  2. 当类很多时,可以很好的管理
  3. 控制访问范围

包基本语法:

package 包名

例如:package com.haikang.类名

说明:

  1. package关键字,表示打包
  2. com.haikang:表示包名

包的本质分析(原理)

包的本质,实际上就是创建不同的文件夹,目录来保存类文件

示意图

在这里插入图片描述

注意:当一个类中引入两个相同名字的类时,一个会带上包名,作为区分

如下图,当在Test类中引入两个Dog类时,一个带上包名,一个不包,作为区分

在这里插入图片描述

包的命名

1.命名规则

只能包含数字,字母,下划线,小圆点,但不能用数字开头,不能关键字或保留字

例如:
demo.class.exercise  //错误有class关键字
demo.12a   //错误有12是数字开头
demo.a12.oa    //正解

2.命名规范

一般是小写字母+小圆点,一般是com.公司名.项目名.业务模块名

例如:
com.haikang.ao.model;
com.haikang.ao.controller;

举例:
com.haikang.crm.user	//用户模块
com.haikang.crm.order	//订单模块
com.haikang.crm.utils	//工具类

如何引入包

语法:import 包名;

比如:
import  java.util.Scaner;  //就是只引入一个类Scanner
import  java.util.*;       //表示将java.util包所有类都引入 

包使用的注意事项和使用细节

  1. package的作用是声明当前类所在的包,需要放在类的最上面,一个类中最多只有一句package语句
  2. import语句位置放在package的下面,在类定义上,可以有多句且没有顺序的要求
package JAVA面向对象中级部分.myImport;
//package的作用是声明当前类所在的包,需要放在类的最上面(也就是第一名),一个类中最多只有一句package


//import java.util.Scanner; //表示只会引入java.util包下的Scanner类
//import java.util.*;  //表示引入java.util包下的所有类
import java.util.Arrays;
//import语句,位置放在package的下面,在类定义前面,可以有多句且没有顺序要求
//意思是import语句是放在package语句和类定义之间并且多个import语句没有顺序要求

//下面就是类定义
public class myPackage {
    public static void main(String[] args) {
        //使用系统提供的Array完成数组排序
        int[] arr = {11,22,33,43,5,66,7,86,99,168};
        Arrays.sort(arr);
        for (int i=0;i<arr.length;i++){
            System.out.print(arr[i]+"\t");
        }
    }
}
访问修饰符

基本介绍:在JAVA中提供四种访问控制修饰符号,用于控制类,方法和属性(全局变量,注意局部变量是不能使用访问修饰符的)

  1. 公开级别:public修饰,对外公开
  2. 受保护级别用:protected修饰,对子类和同一个包中的类公开
  3. 默认级别:没有修饰符号,,向同一个包的类公开
  4. 私有级别:private修饰,只有类本身可以访问,不对外公开

在这里插入图片描述

使用的注意事项(记住)

  1. 修饰符可以用来修饰类中的全局变量,成员方法及类(注意是不能修饰方法中的局部变量)
  2. 成员方法的访问规则和属性完全一样
  3. 只有默认的和public才能修饰类,并且遵循上述访问的权限的特点
package JAVA面向对象中级部分.modifier;

public class myModifier {
    //四个属性,分别使用不同的访问修饰符来修饰
    public int num1 = 100;
    protected int num2 = 200;
    int num3 = 300;
    private int num4 = 400;

    public void print(){
        /**
         * 说明在同一类中,可以访问public protected 默认 private 修饰属性和方法
         */
        System.out.println("num1="+num1);
        System.out.println("num2="+num2);
        System.out.println("num3="+num3);
        System.out.println("num4="+num4);
    }
}

package JAVA面向对象中级部分.modifier;

public class Modifier02 {

    public void say(){
        myModifier myModifier = new myModifier();
        //说明在同一个包下,可以访问public protected 默认修饰的属性,不能访问privat修饰的属性或方法
        //private说明只能在本类中访问
        System.out.println("在Modified中访问myModifier中的num1="+myModifier.num1);
        System.out.println("在Modified中访问myModifier中的num2="+myModifier.num2);
        System.out.println("在Modified中访问myModifier中的num3="+myModifier.num3);
    }
}


package JAVA面向对象中级部分.myImport;

public calss Test{
	public static void main(String[] args){
		  myModifier myModifier = new myModifier();
		  //在不同包下,可以访问public修饰的属性或方法
		  //但是不能访问protected  默认  private修饰的属性或方法
		  System.out.println(myModifier.num1);
	}
}

注意:(记下)

  1. 访问修饰符修饰类时(只能用默认和public修饰),成员方法(包括构造器,构造器本质就是一种特殊的方法),全局变量(注意不能修饰成员方法中局部变量)
  2. 访问修饰符作用在方法和属性(全局变量)的作用一样
  3. 访问修饰符作用在类,只能是默认和public
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值