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

目录
相关文章
|
10天前
|
安全 Java 编译器
Java的封装详解
封装和多态是面向对象编程(OOP)的重要概念。封装通过私有属性和公共方法实现数据隐藏和保护,使类的内部细节对外部不可见;多态则通过方法重载和重写实现同一方法在不同对象上的不同表现形式,增强了代码的灵活性和可维护性。两者结合使用,可以使Java程序更加安全、灵活且易于维护。
|
10天前
|
Java
Java的封装详解
封装是Java中实现数据隐藏和保护的核心机制。它通过将对象的状态和行为结合并限制外部直接访问,确保类的内部细节对外不可见,仅能通过公共方法访问和修改对象状态。封装带来了数据隐藏、提高代码可维护性和增强安全性等好处。在Java中,封装主要通过将属性设为私有并提供getter和setter方法来实现。这种方式不仅保护了数据完整性,还允许在修改类内部实现时不影响外部代码,从而提升程序的健壮性和可读性。
|
6天前
|
SQL Java 编译器
Java——类与对象(封装)
封装是面向对象编程中的概念,指将数据(属性)和相关操作(方法)组合成独立单元(类),使外部无法直接访问对象的内部状态,只能通过提供的方法进行交互,从而保护数据安全。例如,手机将各种组件封装起来,只暴露必要的接口供外部使用。实现封装时,使用`private`关键字修饰成员变量,并提供`get`和`set`方法进行访问和修改。此外,介绍了包的概念、导入包的方式及其注意事项,以及`static`关键字的使用,包括静态变量和方法的初始化与代码块的加载顺序。
18 10
Java——类与对象(封装)
|
2天前
|
安全 Java API
JAVA并发编程JUC包之CAS原理
在JDK 1.5之后,Java API引入了`java.util.concurrent`包(简称JUC包),提供了多种并发工具类,如原子类`AtomicXX`、线程池`Executors`、信号量`Semaphore`、阻塞队列等。这些工具类简化了并发编程的复杂度。原子类`Atomic`尤其重要,它提供了线程安全的变量更新方法,支持整型、长整型、布尔型、数组及对象属性的原子修改。结合`volatile`关键字,可以实现多线程环境下共享变量的安全修改。
|
1月前
|
安全 Java
Java基础面试十四】、 封装的目的是什么,为什么要有封装?
这篇文章讨论了封装在面向对象编程中的目的,强调封装可以隐藏类的实现细节,通过方法控制对数据的访问,保证数据完整性,并提高代码的可维护性。
Java基础面试十四】、 封装的目的是什么,为什么要有封装?
|
1月前
|
缓存 前端开发 Java
【前端学java】java基础巩固复习巩固语法练习-工具类的封装(14)
【8月更文挑战第10天】java基础巩固,工具类的封装
18 1
【前端学java】java基础巩固复习巩固语法练习-工具类的封装(14)
|
23天前
|
Java Maven 数据库
Java 包(package)
Java 包(package)
22 1
|
23天前
|
存储 Java 数据库
Java封装
Java封装
17 1
|
25天前
|
Java
Java应用结构规范问题之在biz层的convert包实现转换的问题如何解决
Java应用结构规范问题之在biz层的convert包实现转换的问题如何解决
|
1月前
|
Java
Java 新手入门:Java 封装、继承、多态详解
Java 新手入门:Java 封装、继承、多态详解
31 1