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
*/

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