目录
一、封装
(一)封装概述
(二)权限修饰符
(三)封装原则
(四)封装的好处
二、关键字
(一)private关键字
private关键字的使用
(二)this关键字
this调用构造器
(三)package关键字
(四)import关键字
一、封装
(一)封装概述
封装是面向对象三大特征之一(封装,继承,多态),是面向对象编程语言对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界无法直接操作。
(二)权限修饰符
封装的体现,需要权限修饰符来配合
- Java规定的4种权限(从小到大排列):private、缺省、protected、public
- 4种权限可以用来修饰类及类的内部结构:属性、方法、构造器、内部类
- 4种权限都可以用来修饰类的内部结构:属性、方法、构造器、内部类
- 修饰类只能使用:缺省、public
(三)封装原则
getXxx () / setXxx () 方法
(四)封装的好处
- 通过方法来控制成员变量的操作,提高了代码的安全性
- 把代码用方法进行封装,提高了代码的复用性
二、关键字
(一)private关键字
private关键字是一个权限修饰符,可以修饰成员(成员变量和成员方法),作用是保护成员不被别的类使用,被private修饰的成员只有在本类才能访问。
针对private修饰的成员变量,如果需要被其他类使用,提供相应的操作
- 提供 “ get变量名() ” 方法,用于获取成员变量的值,方法用public修饰
- 提供 “ set变量名(参数) ” 方法,用于设置成员变量的值,方法用public修饰
private关键字的使用
一个标准类的编写:
- 把成员变量用private修饰
- 提供对应的getXxx() / setXxx()方法
(二)this关键字
this修饰的变量用于指代成员变量
- 方法的形参如果与成员变量同名,不带this修饰的变量指的是形参,而不是成员变量
- 方法的形参没有与成员变量同名,不带this修饰的变量指的是成员变量
解决局部变量隐藏成员变量的时候使用this
this:代表所在类的对象引用
方法被哪个对象调用,this就代表哪个对象。
public class Student{
private String name;
private String getName() {
return name;
}
public void setName (String name) {
this.name = name;
}
}
public class StudentDemo {
public static void main (String [] arg) {
Student s1 = new Student ();
s1.setName ("学生一");
Stuednt s2 = new Student ();
s2.setName ("学生二");
}
}
this调用构造器
- 在类的构造器中,可以显示的使用 “this(形参列表)” 方式,调用本类中指定的其他的构造器
- 构造器中不能通过 “this(形参列表)” 方式调用自己
- 如果一个类中有 n 个构造器,则最多有 n-1 构造器中使用了 “this(形参列表)”
- 规定 “this(形参列表)” 必须声明在当前构造器的首行
- 构造器内部,最多只能声明一个 “this(形参列表)” ,用来调用其他的构造器
(三)package关键字
包的定义格式:
格式:package 包名; (多级包用 . 分开)
范例:package com.file name;
package关键字的使用:
- 为了更好的实现项目中类的管理,提供包的概念
- 使用 package 声明类或接口所属的包,声明在源文件的首行
- 包属于标识符,遵循标识符的命名规则、规范(xxxxxx),“见名知意”
- 每 " . " 一次,就代表一层文件目录
补充:同一个包下,不能命名同名的类或者接口
不同的包下,可以命名同名的类或者接口
在包下使用其他包的类或者接口,需要导包。而使用其他包中的类或者接口时,需要带上包名。
cn.itcast.Teacher t = new cn.itcast.Teacher();
JDK中主要的包介绍
- java.lang——包含一些Java语言的核心类,如String、Math、Integer、System和Thread提供常用功能
- java.net——包含执行与网络相关的操作的类和接口
- java.io——包含能提供多种输入/输出功能的类
- java.util——包含一些使用工具类,如定义系统特性、接口的集合框架类、使用与日历日期相关的函数
- java.text——包含了一些java格式化相关的类
- java.sql——包含了java进行JDBC格式化相关的类
- java.awt——包含了构成抽象窗口工具集(abstract window toolkits)的多个类,这些类被用来构建和管理应用程序的图形用户界面(GUI)
(四)import关键字
import:导入
1. 在源文件 中显式的使用 import 结构导入指定包下的类、接口
2. 声明位置在包的声明和类的声明之间
3. 如果需要导入多个结构,则并列写出即可
4. 可以使用 " xxx.* " 的方式,表示可以导入xxx包下的所有结构
如:
原: import java.util.ArrayList; import java.util.Array; (三个都是并列写出) import java.util.HashMap; ———————————————————————————— 以上可以化为: import java.util.*;
5. 如果使用的类或接口是 java.lang 包下定义的,则可以省略import结构
6. 如果使用的类或接口是同一个包下定义的,则可以省略import结构
7. 如果在源文件中,使用了不同包下的同名的类,则必须至少有一个类需要以全类名的方式显示
如://全类名的方式显示
com.at.exer3.Account acct1 = new com.at.exer3.Account(1000,2000,0.0123);
8. 使用 " xxx.* " 方式表明可以调用xxx包下的所有结构。
但如果使用的是 xxx 子包下的结构,则仍需要显式导入
9. import static:导入指定类或接口中的静态变量
导包的格式:
格式:import 包名;
例:import java.util.Arrays;