面向对象之封装性
构造器
this关键字
package与import
一.封装性
面向对象的特征一: 封装与隐藏
问题: 当创建了类的对象以后, 如果直接通过"对象.属性"的方式对相应的对象属性赋值的话, 可能会出现不满足实际情况的意外, 我们考虑不让对象来直接作用属性, 而是通过"对象.方法"的形式, 来控制对象对属性的访问. 实际情况中, 对属性的要求就可以通过方法来体现.
封装性的思想:
-
①将类的属性私有化;
-
②提供公共的方法(setter&getter)来实现调用.
A.四种权限修饰符
1.权限从大到小为:public protected 缺省 private
2.四种权限都可以用来修饰属性、方法、构造器
3.修饰类的话:public 缺省(default)类只能被同一个包中的类访问
二.构造器
类的第三个成员: 构造器(constructor 构造方法)
A.构造器的作用
①创建对象 ②给创建的对象的属性赋值
B.构造器的特征
①与类名一致②没有返回值类型③无return与语句
④不能被static|final|abstract|native本地的|synchronized同步的
- 1.设计类时, 若不显式声明类的构造器的话, 程序会默认提供一个空参的构造器..
- 2.一旦显式的定义类的构造器, 那么默认的构造器就不再提供.
- 3.如何声明类的构造器. 格式: 权限修饰符 类名(形参){ }
- 4.类的多个构造器之间构成重载
类对象的属性赋值的先后顺序: ①属性的默认初始化 ②属性的显式初始化 ③通过构造器给属性初始化
④通过"对象.方法"的方式给属性赋值
三.this
this:
1.使用在类中, 可以用来修饰属性、方法、构造器
2.表示当前对象或者是当前正在创建的对象
3.当形参与成员变量重名时, 如果在方法内部需要使用成员变量, 必须添加this来表明该变量时类成员
4.在任意方法内, 如果使用当前类的成员变量或成员方法可以在其前面添加this, 增强程序的阅读性
5.在构造器中使用“this(形参列表)”显式的调用本类中重载的其它的构造器
①要求“this(形参列表)”要声明在构造器的首行!
②类中若存在n个构造器, 那么最多有n-1构造器中使用了this.
6.静态方法中不能使用this和super关键字
例子:
One More Thing 👇
1 | public class TestPerson{ |
四.package与import
package: 声明源文件(即当前文件)所在的包(即文件夹), 必须写在程序的第一行.
每“.”一次, 表示一层文件目录; 包名都要小写.
import:
- 1)显式导入指定包下的类或接口
- 2)写在包的声明和源文件之间
- 3)如果需要引入多个类或接口, 那么并列写出
- 4)如果导入的类是java.lang包下的, 如: System String Math等, 就不需要显式的声明.
- 5)理解.*的概念.比如java.util.*;
- 6)如何处理同名类的导入. 如: 在util包和sql包下同时存在Date类.
- 7)import static 表示导入指定类的static的属性或方法
- 8)导入java.lang.*只能导入lang包下的所有类或接口, 不能导入lang的子包下的类或接口