Java——包、访问修饰符

包的作用

1.区分相同名字的类。

2.当类很多时,可以很好的管理类。

3.控制访问范围.

包的基本语法

package com.hspedu

1.package 关键字,表示打包

2.com.hspedu: 表示包名

包的本质

实际上就是创建不同的文件夹或者是目录,来保存类文件。

包的命名

命名规则:

只能包含数字、字母、下划线、小圆点,但是不能以数字开头、不可以是关键字或者是保留字。

例如:

dema.ab12.oa

命名规范:

一般是小写字母+小圆点

com.公司名.项目名.业务模块名

例如:

com.sina.crm.user——用户模块

com.sina.crm.order——订单模块

com.sina.crm.utils——工具类

常用的包

一个包下有很多类,Java当中常用的包:

java.lang.*——lang包是基础包,默认引入,不需要再引入

java.util.*——util包是系统提供的工具包,工具类

java.net.*——net包是网络包,应用网络开发

java.awt.*——awt包是Java页面开发,GUI

引入包

例如:

声明xiaoming这个包,创建Dog类

package com.xiaoming;

public class Dog {


}

声明xiaoqiang这个包,创建Dog类

package com.xiaoqiang;

public class Dog {


}

声明xiaomei这个包,创建Hello类

package com.xiaomei;

public class Hello {


}

创建一个我们的主函数,进行测试

package com.use;

//import引入xiaoming这个包的Dog这个类
import com.xiaoming.Dog;

public class Test {

	public static void main(String[] args) {
		
         //这里的Dog便是xiaoming这个包下的类
		 Dog dog = new Dog();
		 System.out.println(dog);
    }
}

当我们需要多个包中的类的时候

package com.use;

public class Test {

	public static void main(String[] args) {
         //com.包名.类名
         com.xiaoming.Dog dog1 = new com.xiaoming.Dog ();
		 System.out.println(dog1);
		 
		 com.xiaoqiang.Dog dog2 = new com.xiaoqiang.Dog();
		 System.out.println(dog2);

         //不引用头文件,在创建时直接使用包的名字来引用类
		 com.xiaomei.Hello hello = new com.xiaomei.Hello();	 

	}

}

引入包的方法

语法:import   包;

我们之所以引入包,起原因是我们需要其包当中的类,以便给我们提供方法或者是属性等。

例如:在main函数当中使用scanner方法

package com.zlqedu.pkg;
//引入scanner类
import java.util.Scanner;

public class PkgDetail {

	public static void main(String[] args) {
		//使用scanner方法,使控制台输入
		Scanner myscanner = new Scanner(System.in);
	}

}
package com.zlqedu.pkg;
//引入util包的所有,其中包含scanner,当引用util所以得时候,只要其包含都可以使用
import java.util.*;
public class PkgDetail {

	public static void main(String[] args) {
		//使用scanner方法,使控制台输入
		Scanner myscanner = new Scanner(System.in);

	}

}

注意细节

1.package的作用是声明当前类所在的包,需要放在类的最上面,一个类当中只有一句package。

2.import指令位置放在package的下面,在类的定义前面,可以有多句,而且是无顺序的的要求。

//package的作用是声明当前类所在的包,需要放在类的最上面
//一个类中最多只有一句package
package com.zlqedu.pkg;

//import指令,位置放在package的下面,在类的定义前面,可以有多句,没有顺序
import java.util.Scanner;

import java.util.*;

//放在下面会报错:Syntax error on token "package", import expected
//package com.zlqedu.pkg;

public class PkgDetail {

	public static void main(String[] args) {
		//使用scanner方法,使控制台输入
		Scanner myscanner = new Scanner(System.in);

	}

}

建议:当我们在使用包时,如果我们需要用到其导入的类时,需要哪个就导入哪一个,尽可能的不要将所有的都导入。

例如:我们需要用scanner

//建议使用这个形式
import java.util.Scanner;
//这个形式没有错,但是不建议使用
import java.util.*;

访问修饰符

访问修饰符的种类

Java提供了四种访问控制修饰符号,控制方法和属性(成员变量)的访问权限(范围)。

1.公开级别:public——对外公开的

2.受保护级别:protected——对子类和同一个包中的类公开

3.默认级别:没有修饰符号——对同一个包的类公开

4.私有级别:private——只对类本身可以访问,不对外公开

四种访问修饰符的访问范围

级别访问修饰符同类同包子类不同包
公有public
受保护protected×
默认没有修饰符××
私有private×××

注意事项

1.访问修饰符可以用来修饰类中的属性,成员方法以及类。

2.只有默认和public才能修饰类,并且遵循上述访问权限的特点。

3.成员方法的访问规则和属性完全一样。

例如:属性

package com.zlqedu.modifier;

public class A {

	//四个属性,用四个不同的访问修饰符来修饰
	public int n1 = 100;
	protected int n2 = 200;
	int n3 = 300;
	private int n4 = 400;
	
	public void m1() {
		//该方法可以访问该四个属性
		System.out.println("n1=" + n1 + "n2="+ n2 + "n3=" + n3 + "n4=" + n4);
	}
package com.zlqedu.modifier;

public class B {
	public void m2() {
		A a = new A();
		//在同一个包下可以访问public,protected和默认,不能访问private
		//报错n4访问不到
		//System.out.println("n1=" + a.n1 + "n2="+ a.n2 + "n3=" + a.n3 + "n4=" + a.n4);
		System.out.println("n1=" + a.n1 + "n2="+ a.n2 + "n3=" + a.n3);
    }
}
package com.zlqedu.pkg;

import com.zlqedu.modifier.A;

public class Test {
	public static void main(String[] args) {
		A a = new A();
		//在不同的包下只有public可以访问其他的不能访问到
		System.out.println(a.n1);
    }
}

方法与属性同理。

个人笔记,如有错误,还望指正。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值