Java封装——包(package)

简介: Java封装——包(package)

一、打包的意义

Package——声明包
可以编写属于自己的java包,为了保证包名的唯一性,要求唯一的前缀,推荐使用互联网上的域名倒置作为唯一前缀

标准Java库是由一系列包组成,包括java.lang java.util等等

标准包就是层次型包结构,就如同硬盘上嵌套的子目录一样,我们可以使用嵌套层次结构来组织包
为了更好的规范代码,防止命名冲突和混乱,所以java出现了打包机制
当把类组织起来放进一个包内时,也就给包中的成员赋予了相互访问的权限,就拥有了该包内的程序代码
包访问权限把类聚集在一个包中这一做法提供了意义和理由

二、使用

一个类可以使用同一个包中的所有类
一个类可以使用其他包中的公开类
怎么使用公开类
1、在每个类前面加上完整包名,例如:
java.util.Scanner sc = new java.util.Scanner(System.in);

2、更简洁的方式:使用import语句来导包(快捷键ctrl+shift+o)

import java.util.Scanner; //文件顶部导包,快捷键ctrl+shift+o

Scanner sc = new Scanner(System.in);

3、可以import特定类,也可以导入整个包,通过在源代码文件顶部(import java.util.*)

import com.xiaowei.use.*;//文件顶部导包

Demo2 d = new Demo2();

三、代码演示

2个包,并且有同名类

//learn包demo1
package com.xiaowei.learn;
public class Demo1 {

public static void main(String[] args) {
    Demo2 dm = new Demo2();//同一个包里的类,直接访问
    dm.age =213;
    dm.printfdata();
    
    com.xiaowei.use.Demo2 d = new com.xiaowei.use.Demo2();//不同包,前面加包名访问
    d.name = "xiaowei";
    d.printda();
    
}

}
//learn包demo2
package com.xiaowei.learn;
public class Demo2 {

int age;
void printfdata(){
    System.out.println("age="+age);
}

}
//use包demo2
package com.xiaowei.use;
public class Demo2 {

public String name;    //public不同包也可以访问
public void printda(){
    System.out.println("name="+name);
}

}

实际编程尽量不这样写(不同包有相同类名),不然只执行同包里的类(可以用,在每个类前面加上完整包名,来访问另一个包里的相同类)

//learn包demo1
package com.xiaowei.learn;
import com.xiaowei.use.*;

public class Demo1 {

public static void main(String[] args) {
    Demo2 dm = new Demo2();
    dm.name = "xw";
    dm.printda();
    //2个都是访问同包里的类,想访问不同包的只能
    //com.xiaowei.use.Demo2 d = new com.xiaowei.use.Demo2();/
    Demo2 d = new Demo2();
    d.name = "xiaowei";
    d.printda();        
}

}

//learn包demo2
package com.xiaowei.learn;
public class Demo2 {

String name;
void printda(){
    System.out.println("同包name="+name);
}

}

//use包demo2
package com.xiaowei.use;
public class Demo2 {

public String name;
public void printda(){
    System.out.println("name="+name);
}

}
/*
同包name=xw
同包name=xiaowei
*/

目录
相关文章
|
3月前
|
安全 Java API
JAVA并发编程JUC包之CAS原理
在JDK 1.5之后,Java API引入了`java.util.concurrent`包(简称JUC包),提供了多种并发工具类,如原子类`AtomicXX`、线程池`Executors`、信号量`Semaphore`、阻塞队列等。这些工具类简化了并发编程的复杂度。原子类`Atomic`尤其重要,它提供了线程安全的变量更新方法,支持整型、长整型、布尔型、数组及对象属性的原子修改。结合`volatile`关键字,可以实现多线程环境下共享变量的安全修改。
|
1月前
|
Java Android开发
Eclipse 创建 Java 包
Eclipse 创建 Java 包
33 1
|
3月前
|
Java 编译器
封装,继承,多态【Java面向对象知识回顾①】
本文回顾了Java面向对象编程的三大特性:封装、继承和多态。封装通过将数据和方法结合在类中并隐藏实现细节来保护对象状态,继承允许新类扩展现有类的功能,而多态则允许对象在不同情况下表现出不同的行为,这些特性共同提高了代码的复用性、扩展性和灵活性。
封装,继承,多态【Java面向对象知识回顾①】
|
2月前
|
Java Apache Maven
Java/Spring项目的包开头为什么是com?
本文介绍了 Maven 项目的初始结构,并详细解释了 Java 包命名惯例中的域名反转规则。通过域名反转(如 `com.example`),可以确保包名的唯一性,避免命名冲突,提高代码的可读性和逻辑分层。文章还讨论了域名反转的好处,包括避免命名冲突、全球唯一性、提高代码可读性和逻辑分层。最后,作者提出了一个关于包名的问题,引发读者思考。
Java/Spring项目的包开头为什么是com?
|
3月前
|
安全 Java 数据安全/隐私保护
Java 封装怎么理解
封装是Java中的一种重要机制,它将对象的状态(数据)和行为(方法)打包在一起并控制外部访问权限,以保护数据不被随意修改。封装的主要目的包括数据保护、接口设计和增强模块性。通过使用`private`、`protected`及`public`等访问控制修饰符,结合getter和setter方法,可以有效隐藏对象内部实现细节。下面是一个简单的`BankAccount`类示例,展示了如何通过封装保护类的内部状态,确保数据安全和一致性,简化类的使用。理解封装有助于编写高质量代码和设计优秀程序架构。
42 9
|
3月前
|
Java API 数据处理
Java 包(package)的作用详解
在 Java 中,包(package)用于组织和管理类与接口,具有多项关键作用:1)系统化组织代码,便于理解和维护;2)提供命名空间,避免类名冲突;3)支持访问控制,如 public、protected、默认和 private,增强封装性;4)提升代码可维护性,实现模块化开发;5)简化导入机制,使代码更简洁;6)促进模块化编程,提高代码重用率;7)管理第三方库,避免命名冲突;8)支持 API 设计,便于功能调用;9)配合自动化构建工具,优化项目管理;10)促进团队协作,明确模块归属。合理运用包能显著提升代码质量和开发效率。
216 4
|
3月前
|
Java 数据安全/隐私保护
Java 封装详解
在 Java 中,封装是面向对象编程的关键特性,通过将对象的状态(数据)和行为(方法)结合并利用访问控制保护数据,防止外部随意访问和修改。主要特点包括访问控制(如 `private` 和 `protected`)、数据隐藏及方法暴露(如 getter 和 setter)。封装的优点在于保护数据、隐藏实现细节、易于维护以及提高代码可读性。下面是一个简单的 `Person` 类封装示例,展示了如何通过 getter 和 setter 控制对类内部状态的访问,并进行合法性检查。总结而言,封装有助于构建清晰、易用且可维护的代码结构,是编写高质量 Java 程序的重要原则。
59 7
|
3月前
|
Java 数据安全/隐私保护
Java 包(package)的使用详解
Java中的包(`package`)用于组织类和接口,避免类名冲突并控制访问权限,提升代码的可维护性和可重用性。通过`package`关键字定义包,创建相应目录结构即可实现。包可通过`import`语句导入,支持导入具体类或整个包。Java提供多种访问权限修饰符(`public`、`protected`、`default`、`private`),以及丰富的标准库包(如`java.lang`、`java.util`等)。合理的包命名和使用对大型项目的开发至关重要。
188 2
|
3月前
|
安全 Java 开发者
Java修饰符与封装:理解访问权限、行为控制与数据隐藏的重要性
Java中的修饰符和封装概念是构建健壯、易维护和扩展的Java应用程序的基石。通过合理利用访问权限修饰符和非访问修饰符,开发者能够设计出更加安全、灵活且高效的代码结构。封装不仅是面向对象编程的核心原则之一,也是提高软件项目质量和可维护性的关键策略。
36 1
|
7月前
|
Java
java面向对象——包+继承+多态(一)-2
java面向对象——包+继承+多态(一)
47 3