Java教程:Java类的封装

开课吧开课吧锤锤2021-03-16 17:10

    在互联网时代,IT行业飞速发展,Java工程师也随之崛起,薪资待遇较高,已成为众多IT学子就业首选,今天就为大家分享一些Java干货。

Java

    Java类的封装

    封装将类的某些信息隐藏在类内部,不允许外部程序直接访问,只能通过该类提供的方法来实现对隐藏信息的操作和访问。例如:一台计算机内部极其复杂,有主板、CPU、硬盘和内存,而一般用户不需要了解它的内部细节,不需要知道主板的型号、CPU主频、硬盘和内存的大小,于是计算机制造商将用机箱把计算机封装起来,对外提供了一些接口,如鼠标、键盘和显示器等,这样当用户使用计算机就非常方便。

    封装的特点:

    只能通过规定的方法访问数据。

    隐藏类的实例细节,方便修改和实现。

    实现封装的具体步骤如下:

    修改属性的可见性来限制对属性的访问,一般设为private。

    为每个属性创建一对赋值(setter)方法和取值(getter)方法,一般设为public,用于属性的读写。

    在赋值和取值方法中,加入属性控制语句(对属性值的合法性进行判断)。

    例1

    下面以一个员工类的封装为例介绍封装过程。一个员工的主要属性有姓名、年龄、联系电话和家庭住址。假设员工类为Employee,示例如下:

    publicclassEmployee{

    privateStringname;//姓名

    privateintage;//年龄

    privateStringphone;//联系电话

    privateStringaddress;//家庭住址

    publicStringgetName(){

    returnname;

    }

    publicvoidsetName(Stringname){

    this.name=name;

    }

    publicintgetAge(){

    returnage;

    }

    publicvoidsetAge(intage){

    //对年龄进行限制

    if(age<18||age>40){

    System.out.println("年龄必须在18到40之间!");

    this.age=20;//默认年龄

    }else{

    this.age=age;

    }

    }

    publicStringgetPhone(){

    returnphone;

    }

    publicvoidsetPhone(Stringphone){

    this.phone=phone;

    }

    publicStringgetAddress(){

    returnaddress;

    }

    publicvoidsetAddress(Stringaddress){

    this.address=address;

    }

    }

    如上述代码所示,使用private关键字修饰属性,这就意味着除了Employee类本身外,其他任何类都不可以访问这些属性。但是,可以通过这些属性的setXxx()方法来对其进行赋值,通过getXxx()方法来访问这些属性。

    在age属性的setAge()方法中,首先对用户传递过来的参数age进行判断,如果age的值不在18到40之间,则将Employee类的age属性值设置为20,否则为传递过来的参数值。

    编写测试类EmployeeTest,在该类的main()方法中调用Employee属性的setXxx()方法对其相应的属性进行赋值,并调用getXxx()方法访问属性,代码如下:

    publicclassEmployeeTest{

    publicstaticvoidmain(String[]args){

    Employeepeople=newEmployee();

    people.setName("王丽丽");

    people.setAge(35);

    people.setPhone("13653835964");

    people.setAddress("河北省石家庄市");

    System.out.println("姓名:"+people.getName());

    System.out.println("年龄:"+people.getAge());

    System.out.println("电话:"+people.getPhone());

    System.out.println("家庭住址:"+people.getAddress());

    }

    }

    运行该示例,输出结果如下:

    姓名:王丽丽

    年龄:35

    电话:13653835964

    家庭住址:河北省石家庄市

    通过封装,实现了对属性的数据访问限制,满足了年龄的条件。在属性的赋值方法中可以对属性进行限制操作,从而给类中的属性赋予合理的值,并通过取值方法获取类中属性的值(也可以直接调用类中的属性名称来获取属性值)。

    以上就是Java类的封装的全部内容,如果你想把技术和面试技巧相结合,不妨点击下方图片,免费领取课程!

Java

    当有捷径的时候,为什么不走捷径,最后到达的地点都是一样,少费点力气何乐而不为呢?

有用
分享