Java研学-封装

一 封装 – 面向对象三大特征之一

1 封装

Java中提出将某些指定的代码”保护“起来,不被外人轻易访问

2 封装的是什么

1 成员字段:全部私有,即被private修饰,防止其他外部人随意访问,如果需要访问,则必须授权

2 成员方法:将功能代码定指定的方法中,从而简化主函数的代码编写,提高执行效率;在主函数中只需要做两步操作

3 使用封装的好处

1 提高的代码的安全性

2 简化主函数代码的编写

3 降低类与类之间的耦合度(解耦合)

4 值传递

根据不同的场景给类中指定的成员字段进行赋值

1 无论是否封装 --直接赋值;在定义成员字段的时候,就直接赋值;好处直接,适用于所有场景;后期维护起来麻烦,实际开发中多用于常量的操作

public class Test {
    private String name="小明";
    private int num=1;
    private char ch='A';
}

2 封装前:可以通过对象.调用属性赋值,这种方式受访问修饰符的影响较大,而且不符合面向对象封装的思想,基本不用

// 定义
public class Animal {
	// 姓名
    public String name="大黄";
    // 年龄
    public int age=12;
    public Animal(){};
    public Animal(String name, int age) {
        this.name = name;
        this.age = age;
    }
}
// 调用
public class Test {
    public static void main(String[] args) {
        Animal dog=new Animal();
        dog.name="大白";
    }
}

3 封装之后通过构造器赋值 – (最多使用)

public class Animal {
    // 姓名
    public String name;
    // 年龄
    public int age;
    public Animal(){};
    // 通过有参构造器进行赋值
    public Animal(String name, int age) {
        this.name = name;
        this.age = age;
    }
}

二 构造器的梳理

1 作用 – 实例化对象 (最主要作用);进行值传递

2 特点 – 构造器方法名必须与类名一致;构造器方法没有返回值部分

3 注意事项

① 当类中没有明确定义构造器的时候,jvm虚拟机会为当前类配置一个默认的无参构造器,供用户使用

② 当类中明确定义了构造器,jvm虚拟机不会提供任何的构造器

③ 开发过程中,建议定义类的时候,无参有参构造器都要编写以满足用户的不同需求

④ 展构造器方法能够被重载

public class Animal {
    // 姓名
    public String name;
    // 年龄
    public int age;
    // 身高
    public int high;
    public Animal(){};
    // 通过有参构造器进行赋值
    public Animal(String name, int age,int high) {
        this.name = name;
        this.age = age;
        this.high = high;
    }
    // 重载构造方法
    public Animal(String name, int age) {
        this.name = name;
        this.age = age;
    }
}

⑤ 使用get/set 方法操作,这是指定定义格式的方法,完成对私有属性的赋值

public class Animal {
    // 姓名
    public String name;
    // 年龄
    public int age;
    // 身高
    public int high;
    public Animal(){};
    // 通过有参构造器进行赋值
    public Animal(String name, int age,int high) {
        this.name = name;
        this.age = age;
        this.high = high;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

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

    public int getHigh() {
        return high;
    }

    public void setHigh(int high) {
        this.high = high;
    }
    // 生成tostring方法
    @Override
    public String toString() {
        return "Animal{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", high=" + high +
                '}';
    }
}

三 JavaBean规范

1 含义:符合定义规则(或者规范)的java类的统称;编写代码时看到bean就代表需要配置java类

2 在JavaBean中能够定义什么内容:

属性(Property)、字段(Field)、方法(Method)、事件(Event)

3 如何区分属性和字段

①字段(Field):Java类中被访问权限修饰符修饰的变量-- 一定是成员变量

②属性(Property):java中指定的字段的get、set方法,去掉get、set之后,单词首字母小写,与成员字段名一致称之为属性

当成员变量数据类型为boolean时,其对应的get方法会变成:isXxx()(有些版本)

4 JavaBean定义规范

①定义的java类必须用public访问权限修饰符修饰

②定义的成员字段必须用private访问权限修饰符修饰

③必须提供公有的无参构造器

④必须提供所有字段的公有的get/set方法

  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

泰勒疯狂展开

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值