Java get和set方法提高代码封装性

一、get()方法

get方法用于获取对象的私有属性值,并返回该值。通常,get方法的名称以"get"开头,后面跟着属性名的首字母大写的形式。例如,如果属性名为"name",那么get方法的名称为"getName"。get方法的实现通常很简单,只需返回对象的属性值即可。

二、set()方法

set方法用于设置对象的私有属性值。通常,set方法的名称以"set"开头,后面跟着属性名的首字母大写的形式,并接受一个参数,即要设置的属性值。例如,如果属性名为"name",那么set方法的名称为"setName",并接受一个字符串类型的参数,即要设置的名称。set方法的实现通常也很简单,只需将传递进来的参数赋值给对象的属性即可。

示例:


public class Person1 {
    //用private来修饰属性
    private int num;
    private String name;
    private int price;

    public Person1(){}

  //给属性增加get、set方法
    public int getNum(){
        return num;
    }

    public void setNum(int num){
        this.num = num;
    }

    public String getName(){
        return name;
    }

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

    public int getPrice(){
        return price;
    }

    public void setPrice(int price){
        this.price = price;
    }
}



public class Person2 {
    public static void main(String[] args){
        //创建Person1对象
        Person1 p1 = new Person1();

        //给Person1的对象属性赋值
        p1.setNum(2);
        // p1.num = 2;//不能这样赋值,因为Person1里面的修饰符是private
        p1.setName("张三");
        p1.setPrice(23);

        //输出Person1的对象属性
        // System.out.println("num:" + p1.num + "name:" + p1.name + "price:" + p1.price());//这样拿不到值,会报错。
        System.out.println("num:" + p1.getNum() + "\nname:" + p1.getName() + "\nprice:" + p1.getPrice());
    }
}

运行结果:

 使用get和set方法的好处有:

封装性:get和set方法可以将对象的属性设置为私有,从而提高代码的封装性,避免外部代码直接访问对象的属性。

可控性:get和set方法可以控制属性的访问方式,从而使对象更加可控。

可扩展性:如果需要对属性进行修改或增加其他逻辑,可以通过修改get和set方法来实现,而不必改变其他代码。

使用get和set方法要注意:

命名规范:get和set方法的名称必须符合Java的命名规范,以“get”或“set”开头,属性名称的首字母要大写。
参数类型:set方法必须接受一个
与属性相同类型的参数,用于设置属性的值。
返回值类型:get方法必须返回与属性相同类型的值,用于获取属性的值。
访问权限:为了提高封装性,属性通常应该被声明为私有的,而get和set方法应该具有public访问权限,以便其他代码可以访问它们。
不一定需要get和set方法:并非所有属性都需要get和set方法。如果属性不需要在类的外部访问或修改,可以将其声明为私有的,而不提供get和set方法。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值