封装

1、生活中封装:
快递,外卖,电脑机箱…
2、java中封装:
隐藏类内部的细节,对外部提供一些访问细节的方法。
3、封装例子:
方法,类,属性。
4、封装好处:
提高代码复用性,提高代码安全性,提高代码易用性
5、实现步骤:
1)、隐藏内部细节(属性)
2)、提供一些可以访问方法(getter/setter方法)
6、getter:
读方法语法

public 数据类型 get属性名(){
return 属性;
}
public:getter方法必须要由public修饰
数据类型:要与封装属性的属性类型要一致
get属性名:命名规则是get属性名,属性名首字母要大写。

7、setter:
写方法语法

public void set属性名(参数类型 参数名){
属性名 = 参数名;
}
void:该方法用于给属性赋值,所以没有返回值。
set属性名:命名规则是set属性名,属性名首字母要大写。
参数类型 参数名:参数类型要与封装属性的类型一致,参数名可以与属性名一致也可以不一致。
属性名 = 参数名:将传入参数中值赋给属性空间。

class Person {
     

    private String name = "刘备";//显式赋值
    private int age = 18;

    public void show() {
     
        System.out.println(name + "..." + age);//刘备...18
    }

    //getter
    public int getAge() {
     
        return age;
    }

    public String getName() {
     
        return name;
    }

    //setter
    public void setAge(int newAge) {
     
        if (newAge > 0 && newAge <= 120) {
     //如果年龄在0~120,则录入成功。
            age = newAge;
        }
    }

    public void setName(String newName) {
     
        name = newName;
    }
}

public class Demo5_封装 {
     

    public static void main(String[] args) {
     
        Person p = new Person();
        //问题:18和刘备的数据是由用户提供,这时出现用户误操作问题。
        //解决:使用封装
        //步骤:1、隐藏内部细节(使用private修饰属性,该属性只能在本类中使用,其他类不能使用)。
        //     2、提供一些可以访问细节的方法(getter/setter,读方法/写方法,可以只有读/写方法)
        //p.age = 180;
        //p.name = "刘备";
        //System.out.println(p.age + "..." + p.name);//180...刘备
        p.setName("曹操");
        p.setAge(200);

        p.show();//曹操...200
    }
}

你可能感兴趣的:(Java,SE,java,封装)