Encapsulation[JAVA]

1.什么是封装性

1.1封装核心

  1. 是指隐藏对象的属性和实现细节,仅对外提供公共访问方式
  2. 打个比喻来说,一个手电筒,用户只需要知道开关和充电的功能即可
  3. 内部的电路板,元器件需要进行封装隐藏起来

1.2封装原则

  1. 将不需要对外提供的内容都隐藏起来
  2. 把属性隐藏,提供公共方法对其访问

1.3封装的好处

  1. 隐藏实现细节,提供公共的访问方式
  2. 提高了代码的复用性,提高安全性
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    class test{
    private int age; //修饰属性
    private String name;

    public test(){ //修饰构造器

    }
    public void eat(){ //修饰方法

    }
    }

1.4高内聚 低耦合

高内聚:类的内部数据操作细节自己完成,不允许外部干涉
低耦合:仅对外暴漏少量的方法用于使用

1.5属性的获取

在对一个属性私有化的同时,除了提供公共的设置方法外,还需要提供获取方法
即 set方法与get方法
两种方法共同构成了属性的获取
注:这只是封装性的一种体现,并不能完全代表封装性

1
2
3
4
5
6
7
8
9
10
11
class test{
private int age;

public void setage(int age){
this.age = age;
}

public int getage(){
return age;
}
}

2.权限修饰符

| 类型 | 本类 | 同一个包下 | 不同包下 | 同一个工程下 |
| —- | —- | —- | —- | —- | —- |
| private | √ | x | x | x |
| 缺省 | √ | √ | x | x |
| protected | √ | √ | √ | x |
| public | √ | √ | √ | √ |

2.1用法

  • 封装的体现需要权限修饰符配合
  • 四种权限修饰符都可以修饰类及类的内部结构:属性、方法、构造器、内部类
  • 修饰类的话只能用:pulibc或者缺省

3.再谈封装性

Java提供了四种不同的权限修饰符来修饰类及其类的内部结构
体现了类和类的内部结构在被调用时候的可见性大小

4.构造器

4.1构造器核心

  1. 就是用来造对象的,就是在你创建对象时候new后面就是
  2. 若我们没有去定义类的构造器,系统会默认创造一个空参的构造器
  3. 若我们给出了构造方法,系统将不再提供默认的无参构造器
  4. 如果我们还想使用无参构造方法,就必须自己给出,建议永远自己给出无参构造方法
  5. 一个类中可以定于多个构造器,就构成了构造器的重载

4.1.1作用

  • 创建对象
  • 初始化对象信息

4.2格式特点

  1. 方法名和类名相等
  2. 没有返回值类型
  3. 没有具体的返回值,但是可以写return\也可以不写
1
2
3
4
5
6
7
8
9
10
11
主类:
Person c = new Person();//new后面的就是构造器
//c.Person(); 构造方法不能用对象调用

class Person{
public Person(){
name="小明";
age=21;
//有return语句,但可不写
}
}

4.3属性赋值

属性赋值的先后顺序:
默认初始化>显示初始化>构造器初始化>开发常用的

通过对象.方法或对象.属性的方式赋值
开发常用比较灵活

4.3JavaBean了解

符合如下标准的Java类:

  1. 类是pulic的
  2. 有一个空参的public构造器
  3. 有属性,且对应的get、set方法

5.this关键词

5.1this的作用

  1. this可以修饰或调用 属性 方法 构造器
  2. this修饰属性和方法时 this可以理解为当前对象 或当前正在创建的对象
  3. 主要是为了区分属性和局部变量,当两者相同时候属性前加上this即可
1
2
3
4
5
6
7
8
9
class thistest{
private String name;
public void setName (String name){
this.name = name; //this区分属性和形参
}
public String getName() {
return name;
}
}

5.2this调用构造器

  1. 类的构造器中,可以以this(形参列表)的方式,调用本类中指定的其他构造器
  2. 构造器不可以以this(形参列表)方式去调用自己
  3. this(形参列表)必须写在构造器的第一行
  4. 最多只能声明一个this(形参列表),用来调用其他构造器
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class test{
private int age;

public thistest() {
this.info(); //方法调用方法 this可不写
}
public thistest(String name){
this(); //this调用构造器
this.name = name;
}
public thistest(int age){
this();
this.age = age;
}

public void setAge ( int age){
this.age = age;
}
public int getAge ( ){
return age;
}
public vod info(){}
}

Encapsulation[JAVA]
http://example.com/2022/03/28/Java初级部分/OOP/Encapsulation/
Author
John Doe
Posted on
March 28, 2022
Licensed under