封装
封装是面向对象基本特征之一 其他两个特征:继承和多态是面向对象编程语言对客观世界的模拟,把客观世界的成员变量隐藏在对象的内部,外界无法直接操作和访问或修改。
封装原则
将不需要对外界提供的内容都隐藏起来,隐藏属性,提供公共的方法对其访问,例如 private String name;提供public修饰的getName()和setName()方法取值和赋值
封装好处
通过公共的方法来控制外界对成员变量的操作,提高了代码的安全性,把代码用方法进行封装,提高了代码的复用性。为什么要用this呢?封装的设计 把局部变量赋值给隐藏的成员变量this.name(成员变量) = name(局部变量)
包和导入包
package关键字
package 语句作为 Java 源文件的第一条语句,指明该文件中定义的类所在的包(如果缺省该语句,则指定为无名包)。
语法:
package 顶层包名.子包名;
包对应于文件系统的目录,package 语句中,用 . 来指明包(目录)的层次。
包通常用小写单词标识。通常使用所在公司域名的倒置,比如: com.github.xxx
包的作用
-
包帮助管理大型软件系统:将功能相近的类划分到同一个包中,比如: MVC设计模式
-
包可以包含类和子包,划分项目层次,便于管理。
-
解决类命名冲突的问题。
-
控制访问权限。
MVC 设计模式
-
MVC 是常用的设计模式之一,将整个程序分为三个层次: 视图模型层 、 控制器层 和 数据模型层 。这种将程序输入输出、数据处理以及数据的展示分离开来的设计模式,使得程序结构变得灵活而且清晰,同时也描述了程序各个对象间的通信方式,降低了程序的耦合性。
-
模型层( model ):主要处理数据。
-
控制层( controller ):处理业务逻辑。
-
视图层( view ):显示数据
jdk 中的主要包
-
java.lang :包含一些 Java 语言的核心类,如 String 、Math 、Integer 、System 和 Thread ,提供常用功能。此包下的类可以不用导包
-
java.net :包含执行和网络相关的操作的类和接口。
-
java.io :包含能提供多种输入、输出的功能的类。
-
java.util :包含一些实用工具类,如定义系统特性、接口的集合框架类、使用和日期日历相关的函数。
-
java.text :包含了一些 java 格式化相关的类。
-
java.sql :包含了 java 进行 JDBC 数据库编程的相关类/接口。
-
java.awt :包含了构成抽象窗口工具集的多个类,这些类被用来构建和管理应用程序的图形用户界面。
import关键字
为了使用定义在不同包中的 Java 类,需要使用 import 语句来引入指定包层次下所需要的类或全部类( * )。
import语句告诉编译器到哪里去寻找类 。
语法:
import 包名.类名;
注意事项:
-
在源文件中使用 import 显示的导入指定包下的类或接口。
-
import 声明在 package 声明和 class 声明之间。
-
如果需要导入多个类或接口,那么就并列的显示多个 import语句即可。
-
import java.util.*;
-
如果导入的类或接口是 java.lang 包下的,或者是当前包下的,则可以省略此 import 语句。
-
如果在代码中使用不同包下的同名的类,那么就需要使用类的全类名(包名.类名)的方式指定调用的是哪个类。
import 包名.类名;
import java.util.*; -
如果已经导入 java.a 包下的类,那么如果需要使用 a 包的子包下的类,仍然需要导入。
-
import static 组合的使用:调用指定类或接口下的静态的属性或方法
API
查看JDK1.8的API,可以查看类的源码,属性和方法的解释。
API(Application Programming Interface)即应用程序接口,是一些预先定义的函数,或指软件系统不同组成部分衔接的约定。
应用程序接口又称为应用编程接口,是一组定义、程序及协议的集合,通过 API接口实现计算机软件之间的相互通信。API 的一个主要功能是提供通用功能集。API同时也是一种中间件,为各种不同平台提供数据共享。
程序设计的实践中,编程接口的设计首先要使软件系统的职责得到合理划分。良好的接口设计可以降低系统各部分的相互依