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

JAVA·类和对象③封装及包

一、封装

        1.概念

        面向对象程序三大特性:封装、继承、多态。而类和对象阶段,主要研究的就是封装特性。何为封装呢?简单来说,就是套壳屏蔽细节

        2.访问限定符

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

  • public:可以理解为一个人的外貌特征,谁都可以看得到
  • default: 对于自己家族中(同一个包中)不是什么秘密,对于其他人来说就是隐私了
  • private:只有自己知道,其他人都不知道

说明:

  • protected主要是用在继承中
  • default权限指:什么都不写时的默认权限
  • 访问权限除了可以限定类中成员的可见性,也可以控制类的可见性

二、包

        在面向对象体系中,提出了一个软件包的概念,即:为了更好的管理类,把多个类收集在一起成为一组,称为软件包。有点类似于目录。

        在Java中,包是对类、接口等的封装机制的体现,是一种对类或者接口等的很好的组织方式,比如:一个包中的类不想被其他包中的类使用。包还有一个重要的作用:在同一个工程中允许存在相同名称的类,只要处在不同的包中即可。

        1.导入包中的类

        Java 中已经提供了很多现成的类供我们使用。例如Date类:可以使用 java.util.Date 导入   java.util 这个包中的 Date 类。

public class Test {public static void main(String[] args) {java.util.Date date = new java.util.Date();// 得到一个毫秒级别的时间戳System.out.println(date.getTime());}
}

但是这种写法比较麻烦一些, 可以使用 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 中的其他类, 可以使用 import java.util.* 

import java.util.*;
public class Test {public static void main(String[] args) {Date date = new Date();// 得到一个毫秒级别的时间戳System.out.println(date.getTime());}
}

但是我们更建议显式的指定要导入的类名,否则还是容易出现冲突的情况。

import java.util.*;
import java.sql.*;
public class Test {public static void main(String[] args) {// util 和 sql 中都存在一个 Date 这样的类, 此时就会出现歧义, 编译出错Date date = new Date();System.out.println(date.getTime());}
}// 编译出错
Error:(5, 9) java: 对Date的引用不明确java.sql 中的类 java.sql.Date 和 java.util 中的类 java.util.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);}
}

  注意:  import 和 C++ 的 #include 差别很大。C++ 必须 #include 来引入其他文件内容, 但是 Java 不需要。 import 只是为了写代码的时候更方便。 import 更类似于 C++ 的 namespace 和   using 

2.自定义包

基本规则:

  • 在文件的最上方加上一个 package 语句指定该代码在哪个包中。
  • 包名需要尽量指定成唯一的名字,通常会用公司的域名的颠倒形式(例如 com.bit.demo1 )。
  • 包名要和代码路径相匹配。例如创建 com.bit.demo1 的包, 那么会存在一个对应的路径   com/bit/demo1 来存储代码。
  • 如果一个类没有 package 语句,则该类被放到一个默认包中。

操作步骤:

1. 在 IDEA 中先新建一个包: 找到 src  右键NEW新建 

2. 在弹出的对话框中输入包名, 例如 com.bit.demo1 

3. 在包中创建类,右键包名  新建  类,然后输入类名即可。

4. 此时可以看到我们的磁盘上的目录结构已经被 IDEA 自动创建出来了。

5. 同时我们也看到了, 在新创建的 Test.java 文件的最上方, 就出现了一个 package 语句

3.常见的包

  1. java.lang:系统常用基础类(String、Object),此包从JDK1.1后自动导入。
  2. java.lang.reflect:java 反射编程包;
  3. java.net:进行网络编程开发包。
  4. java.sql:进行数据库开发的支持包。
  5. java.util:是java提供的工具程序包。(集合类等) 非常重要
  6. java.io:I/O编程开发包。
http://www.dtcms.com/a/483792.html

相关文章:

  • 使用libhv创建客户端并推送图片到MinIo文件服务器 范例
  • 北京做彩右影影视公司网站网络推广经验交流
  • 甘肃省住房和建设厅官方网站网站建设初衷
  • 规模化电池运维的效率突破口:DSS-5000 电池诊断服务系统技术解析与应用场景
  • 新版EasyDSS视频点播直播视频会议平台,为智慧教育注入全新活力
  • 云服务器和网站空间黄骗免费网站
  • 中国黄金集团建设有限公司官方网站工作纪律和生活纪律研讨发言材料
  • 【Python】.sort()与sorted()的区别与用法
  • 商丘家居网站建设做网页制作的价格
  • 微信辅助做单网站seo属于什么职业部门
  • JMeter下载及安装配置完整版
  • GISBox与SAGA GIS对比:从安装到服务发布的全维度解析
  • 【开发者导航】专注无人机集群通信的 Python 仿真平台:UavNetSim-v1
  • 杨中市网站建设品牌seo公司
  • 建设网站需要分析什么快速建设网站
  • 网站建设属于技术活吗长沙网站排名推广
  • VulnHub打靶记录 —— EvilBox_one
  • 阳光家园广州网站网址我想给网站网站做代理
  • 双桥区网站制作深圳网页设计教程
  • 咸阳网站制作网站广告下悬浮代码怎么做
  • 合肥网站推广公司哪家好精通网站建设 百度云
  • Jemeter 属性说明
  • 建设银行网站不能登录密码多个链接的网站怎么做
  • 商贸有限公司网站案例wordpress做超链接
  • 商丘市网站建设公司什么平台发广告最有效
  • 济南网站营销怎么做关不掉的网站
  • 四川省建设厅官方网站三内人员深圳营销策划公司
  • MySQL中的“事务”
  • 上海做网站公司有哪些seo发布网站
  • 湖北长安建设集团股份有限公司网站深圳企业注销流程