java入门(十五) | OOP(二)之封装和private

java入门(十五) | OOP(二)之封装和private

封装

1.1 概述

封装是指隐藏对象的属性和实现细节
仅仅对外提供公共的访问路径/方式。
优点:

  • 提高安全性
  • 提高重用性

1.2 private关键字

private关键字是一个权限修饰符,用于修饰成员变量和成员函数。
被私有化的成员只能在本类中访问。

1.3 练习:封装学生类

Student类

package cn.qile.oop;

//创建学生类--描述学生事物 属性+行为
public class Student {

//    属性   -- 成员变量
    private String name;//被私有化的资源无法访问

    //提供公共的访问方式 --setXxx()进行设置值
    public void setName(String n) {
        name = n;//给成员变量name赋值
    }

    //提供公共的访问方式 --getXxx()进行获取值
    public String getName(){
        return name;//把name属性的值,返回调用位置
    }


    //TODO  封装以下属性,并提供公共的set()/get()
    int sno;//学号
    String subject;//学科
    double score;//成绩
    int age;
    String addr;


//    行为  -- 成员方法
    //通过private关键字,实现封装,私有化资源
    private void study() {
        System.out.println("正在学习");
    }

    public void eat() {
        System.out.println("正在吃饭");
    }

}

测试学生类 Test2_Student

package cn.qile.oop;

//测试学生类的使用
public class Test2_Student {
    public static void main(String[] args) {

        //创建学生对象测试
        Student s = new Student();

        //设置属性值
//      s.name="其乐";//被私有化的资源无法访问
        s.setName("其乐");//私有化后可以访问公共的set()设置值
        s.age=20;
        s.subject="java";
        s.sno=1;
        s.score=20;
        s.addr="北京";

        //打印属性值
//      System.out.println(s.name);//被私有化的资源无法访问
        //私有化后可以访问公共的get()获取值
        System.out.println(s.getName()+"=========");//其乐 =========
        System.out.println(s.age);    //20
        System.out.println(s.subject);//java
        System.out.println(s.sno);    //1
        System.out.println(s.score);  //20.0
        System.out.println(s.addr);   //北京

        //调用功能
        s.eat();  //正在吃饭
//      s.study();//被私有化的资源,本类之外的类都无法访问

    }
}

在测试中name成员变量被private修饰后,不能够被s.name所调用,而是通过所提供的get/set方法去调用;这就可以去提高数据的安全性;而当成员方法被private关键字所封装之后,就成为了私有化资源,不能够被本类之外的类访问。

在这给大家一个案例,你们可以自行去做:

老师事物:设置特性和功能
特征:姓名、年龄、住址
功能:授课  育人
 
测试:
1、创建Teacher对象
2、调用老师的属性和功能
3、修改老师的属性测试
4、封装Teacher类并测试
hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » java入门(十五) | OOP(二)之封装和private