阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

分类存储-包

102次阅读
没有评论

共计 2250 个字符,预计需要花费 6 分钟才能阅读完成。

1、包概述

1.1、什么是包

java 的包,其实就是我们电脑系统中的文件夹,包里存放的是程序生成的.class 文件。

当.class 文件很多的时候,通常我们会采用多个包进行存放管理他们,这种方式称为分包管理,分包管理是组织软件项目结构的基本方式。

在项目中,我们将相同功能的类放到一个包中,方便管理。并且日常项目的分工也是以包作为边界。

类中声明的包必须与实际 class 文件所在的文件夹情况相一致,即类声明在 a 包下,则生成的.class 文件必须在 a 文件夹下,否则,程序运行时会找不到类。

1.2、包的定义格式

通常使用公司网址反写,可以有多层包,包名采用全部小写字母,多层包之间用”.”连接

** 类中包的声明格式:**package 包名. 包名. 包名…;

如:

组团学:官网网址 zutuanxue.com,那么网址反写就为 com.zutuanxue

** 注意:** 声明包的语句,必须写在程序有效代码的第一行(注释不算)

package com.zutuanxue; // 包的声明,必须在有效代码的第一行 import java.util.Scanner; import java.util.Random; public class Demo {}

1.3、包的访问

在访问类时,为了能够找到该类,必须使用含有包名的类全名(包名. 类名)。

** 格式:** 包名. 包名…. 类名

java.util.Scanner java.util.Random com.zutuanxue.Demo

带有包的类,

创建对象格式:包名. 类名 变量名 = new 包名. 类名();

com.zutuanxue.Demo d = new com.zutuanxue.Demo(); 前提:包的访问与访问权限密切相关,这里以一般情况来说,即类用 public 修饰的情况。

2、包应用

2.1、导包

我们每次使用类时,都需要写很长的包名。很麻烦,我们可以通过 import 导包的方式来简化。

可以通过导包的方式使用该类,可以避免使用全类名编写(即,包名. 类名)。

导包的格式:

import 包名. 类名;

// 导入包前的方式 // 创建对象 java.util.Random r1 = new java.util.Random(); java.util.Random r2 = new java.util.Random(); java.util.Scanner sc1 = new java.util.Scanner(System.in); java.util.Scanner sc2 = new java.util.Scanner(System.in); // 导入包后的方式 import java.util.Random; import java.util.Scanner; // 创建对象 Random r1 = new Random(); Random r2 = new Random(); Scanner sc1 = new Scanner(System.in); Scanner sc2 = new Scanner(System.in);

2.2、访问权限

回顾:在 Java 中提供了四种访问权限,使用不同的访问权限时,被修饰的内容会有不同的访问权限

分类存储 - 包

(1)要想仅能在本类中访问使用 private 修饰;

package com.zutuanxue.demo; public class A{private int x; public void a(){System.out.println(x); } } package com.zutuanxue.demo; public class B{public void b(){System.out.println(new A().x);// 不能进行访问,x 为 private } }

(2)要想本包中的类都可以访问不加修饰符即可;

package com.zutuanxue.demo; public class A{int x; public void a(){System.out.println(x); } } package com.zutuanxue.demo1; public class B extends A{public void b(){System.out.println(new A().x);// 不可进行访问,x 为 default } } package com.zutuanxue.demo1; public class B{public void b(){System.out.println(new A().x);// 不可进行访问,x 为 default } }

(3)要想本包中的类与其他包中的子类可以访问使用 protected 修饰

package com.zutuanxue.demo; public class A{protected int x; public void a(){System.out.println(x); } } package com.zutuanxue.demo01; public class B{public void b(){System.out.println(new A().x);// 不能进行访问,x 为 protected } }

(4)要想所有包中的所有类都可以访问使用 public 修饰。

package com.zutuanxue.demo; public class A{public int x; public void a(){System.out.println(x); } } package com.zutuanxue.demo01; public class B{public void b(){System.out.println(new A().x);// 能进行访问,x 为 public } }

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-06-06发表,共计2250字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中