封装和隐藏
封装性的体现
- 将类的属私有化(private),同时,提供公共的(public)方法来获取(getXxx)和设置(setXxx)此属性的值;
- 不对外暴露私有的方法;
- 单例模式
封装性的体现,需要权限修饰符来配合
- Java规定的4种权限(从小到大排列):private、缺省、protected 、public ;
- 4种权限可以用来修饰类和类的内部结构(属性、方法、构造器、内部类);
- 修饰类的话,可以使用:缺省、public
- 4种权限都可以用来修饰类的内部结构:属性、方法、构造器、内部类
四种访问权限修饰符
修饰符 | 类内部 | 同一个包 | 不同包的子类 | 同一个工程 |
---|
private | yes | | | |
缺省 | yes | yes | | |
protected | yes | yes | yes | |
public | yes | yes | yes | yes |
构造器
构造器的作用
- 创建对象
Student student=new Student();
- 初始化对象信息
Student student1=new Student("refine",34);
- 构造器的特点
- 如果没有显式的定义类的构造器的话,则系统默认提供一个空参的构造器
- 定义构造器的格式:权限修饰符 类名(形参列表){}
- 一个类中定义的多个构造器,彼此构成重载
- 一旦我们显式的定义了类的构造器之后,系统就不再提供默认的空参构造器
- 一个类中,至少会有一个构造器
属性赋值的先后顺序
- 默认初始化
- 显示初始化
- 构造器中赋值
- 对象.属性、对象.方法的方式赋值
this关键字
- this关键字可以用来修饰、调用:属性、方法、构造器
- this关键字修饰属性和方法
- this理解为:当前对象或者当前正在创建的对象
- 在类的方法中,使用“this.属性”或“this.方法”的方式,调用当前对象属性、方法;
- 在类的构造器中,使用“this.属性”或“this.方法”方式,调用当前对象属性、方法;
public Student(int age) {
this.major();
this.age = age;
}
public void major(){
System.out.println("This students major in chinese...");
}
- this调用构造器
- 显式的使用"this(形参列表)"方式,调用本类中指定的其他构造器;
- 不能通过"this(形参列表)"方式调用自己
- "this(形参列表)"必须声明在当前构造器的首行
- 构造器内部,最多只能声明一个"this(形参列表)"
public Student() {
System.out.println("创建对象信息......");
}
public Student(int age) {
this();
this.age = age;
}
public Student(String name, int age) {
this(age);
this.name = name;
}
package关键字
package com.refine.javasenior.day03;
Import关键字
import java.util.*;