您的位置 首页 java

初识Java—(十六)隐藏与封装

5.5 隐藏与封装

封装引入

在程序中经常出现通过某个对象的直接访问其Field的情况,这会存在一系列的问题,比如定义一个Person的对象,其中有age这样一个属性,如果将属性值赋值为1000,虽然程序不会出错,但是逻辑是错误的,人不可能活1000岁,那怎么来解决这个事情呢?

这个时候我们引入一个新的概念,封装。

我们将成员变量定义使用 private 关键字进行修饰,这样外部所有类将无法直接访问当前类中的变量,然后通过方法的方式向外提供服务,在方法中提供控制条件来进行变量的赋值操作。

举例1:

 package com.langsin.test;
publicclass Test {
private int age = 0;
public int getAge() {
return age;
}
public  void  setAge(int age) {
if(age>100){
this.age = 100;
}else{
this.age = age;
}
}
public  static  void main(String[] args) {
Test test = new Test();
test.setAge(125);
System.out.println(test.getAge());
}
}  

5.5.1 理解封装

封装是面向对象的三大特征之一,它指的是将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象的内部信息,而是通过该类所提供的方法来实现对内部信息的操作和访问。

封装可以实现以下目的:

1、 隐藏类的实现细节

2、 使用者只能通过提供的方法来访问数据,从而可以在方法中加入控制逻辑,限制对变量的不合理的访问。

3、 可进行数据检查,从而有利于保证对象信息的完整性。

4、 便于修改,提高代码的可维护性。

封装的实际含义就是该隐藏的隐藏,该暴漏的暴漏。

5.5.2 package、import

Oracle公司 提供的 JDK 、各种软件厂商、众多的开发商,会提供成千上万、具有各种用途的类,那么类名肯定会出现同名的这种情况,为了处理重名问题, Java 引入了包(package)机制,提供了类的多层命名空间,用于解决类的命名冲突、类文件管理问题。

Java源文件中使用了pageckage语句,就意味着该源文件里定义的所有类属于这个包下。位于包中的每个类的完整类名都应该是包名和类名的组合。

举例1:

 public class Test {
public static void main(String[] args) {
com.langsin.vo.Page page1 = new com.langsin.vo.Page();
}
}  

为了简化编程,Java引入了 import 关键字,import可以向某个Java文件中导入指定包层次下的某个类或全部类,import语句出现在 package 语句之后,类定义之前。

举例2:

 package com.langsin.test;
import com.langsin.vo.Page;
public class Test {
public static void main(String[] args) {
Page page = new Page();
System.out.println(page.getLineNum());
}
}  

Import语句可以简化编程,可以导入包下某个类或者全部类,导入全部类的方式用*表示,

举例3:

 import com.langsin.vo.*;  

表示导入com.langsin.vo包下的所有类。

5.5.3 Java的常用包

Java的核心类都放在java这个包以及其子包下,Java扩展的许多类都放在 javax 包以及其子包下,这些实用类也就是前面所说的API。

java.lang :这个包下包含了Java语言的核心类,如 String 、Math、System、和 Thread 类等,使用这个包下的类无须使用import语句导入,系统会自动导入这个包下的所有类。

java.util :这个包下包含了Java的大量工具类/接口和集合框架类/接口,例如Arrays和List、Set等。

java.net:这个包下包含了一些Java网络编程相关的类和接口。

java.io :这个包下包含了一些Java输入/输出编程相关的类和接口。

java.text:这个包下包含了一些Java格式化相关的类。

java.sql:这个包下包含了Java进行 JDBC 数据库编程的相关类和接口。

java.awt:这个包下包含了抽象窗口工具集的相关类和接口,这些类主要用于构建图形用户界面(GUI)程序。

java. Swing :这个包下包含了Swing图形用户界面编程的相关类和接口,这些类可用于构建平台无关的GUI程序。

文章来源:智云一二三科技

文章标题:初识Java—(十六)隐藏与封装

文章地址:https://www.zhihuclub.com/180152.shtml

关于作者: 智云科技

热门文章

网站地图