当前位置: 首页 > news >正文

类和对象—封装

目录

  • 1、封装的概念
  • 2、访问限定符
  • 3、包
    • 3.1、包的概念
    • 3.2、导入包的类

1、封装的概念

封装就是套壳屏蔽细节,比如计算机厂商在出厂时,在外部套上壳子,将内部实现细节隐藏起来,仅仅对外提供开关机、键盘以及 USB 插孔等,用户无需知道主机内部的核心部件、电路走线等,仅仅只需要通过开关机、键盘等与计算机交互即可。
封装:将数据和操作数据的方法有机结合,隐藏对象的属性和实现细节,仅对外公开接口来和对象实现交互。

2、访问限定符

Java中主要通过类和访问权限来实现封装:类可以将数据以及封装数据的方法结合在一起,而访问权限用来控制方法或者字段能否直接在类外使用。Java中提供了四种访问限定符:

在这里插入图片描述
注意:

  • default:什么都不写时的默认权限。
  • 访问权限除了可以限定类成员的可见性,还可以控制类的可见性。
  • 一般情况下成员变量设置为 private,成员方法设置为 public。

3、包

3.1、包的概念

为了更好的管理类,将多个类收集在一起成为一组,称为软件包,类似于目录。在 Java 中也引入了包的概念。

  • 包是对类、接口等的封装机制的体现,是一种对类或者接口等的很好的组织方式。
  • 只要处在不同的包中,在同一个工程中可以有相同名称的类。

3.2、导入包的类

  1. 通过完整包名导入,但是这种方法比较繁琐,不推荐。
public class Test {
	public static void main(String[] args){ 
		java.util.Date date = new java.util.Date(); 				
		System.out.println(date.getTime()); 
	} 
}
  1. 利用 import 语句导入包。
import java.util.Date;
public class Test {
	public static void main(String[] args){ 
		Date date = new Date(); 				
		System.out.println(date.getTime()); 
	} 
}

如果需要使用 java.util 中的其他类,可以使用 java.util.* ,意思是导入该包下的所有类。但是这样使用容易出现问题,例如 java.sql 和 java.util 中都有类 Date,此时使用 Date 就会出现歧义,编译出错,在这种情况下就需要使用完整的类名。

import java.util.*; 
import java.sql.*;

public class Test {
	public static void main(String[] args){ 
		java.util.Date date = new java.util.Date(); 				
		System.out.println(date.getTime()); 
	} 
}

可以使用 import static 导入包中静态的方法和字段。

import static java.lang.Math.*;
public class Test {
	public static void main(String[] args) {
		double x = 30;
		double y = 40; 
		// 静态导入的方式写起来更方便一些
		// double result = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));
		double result = sqrt(pow(x, 2) + pow(y, 2)); 
		System.out.println(result); 
	} 
}

相关文章:

  • 【算法】动态规划:回文子串问题、两个数组的dp
  • RWEQ+集成技术在风蚀模数估算中的全流程增强策略—从数据融合到模型耦合的精细化操作指南
  • 05、Tools
  • OSI模型_TCP/IP模型_五层模型
  • Thales靶场
  • Netty源码—6.ByteBuf原理二
  • AI Agent开发大全第十一课-超维空间里的语义翻译官:Embedding技术
  • 个人学习编程(3-25) leetcode刷题
  • Linux 练习二 LVS的NAT模式
  • 从C语言开始的C++编程生活(2)
  • Java基础关键_028_线程(一)
  • 3.24前端模拟面试
  • C语言基础系列【28】指针进阶1:深入理解指针
  • go test相关命令
  • 医院挂号预约小程序|基于微信小程序的医院挂号预约系统设计与实现(源码+数据库+文档)
  • Tomcat相关的面试题
  • T113-S3-启动报错tee_readfdt:433finenode/firmware/opteefailedwith FDT_ERR_NOTFOUND
  • SpringBoot分布式项目中MyBatis实战技巧:从配置到性能优化
  • 3、孪生网络/连体网络(Siamese Network)
  • 将 PDF 转换为 Word — 固定布局 vs 重排布局?
  • 无代码做网站/四川百度推广排名查询
  • 网站优化人员/小程序平台
  • wordpress建立扁平化/海城seo网站排名优化推广
  • 上海一 网站建设公司/域名信息查询
  • 网站分析百度 代码/seo网站推广如何做
  • 网站开发建设及推广合同/竞价交易规则