Java>面向对象和封装>>面向对象三大特征之封装性

封装性在Java中的体现:

  • 方法就是一种封装
  • 关键字private也是一种封装

封装就是将一些细节信息隐藏起来,对于外界不可见。

让我们来看一个java 方法 封装类的例子:

package fengzhuang;

public class demo01 {
    public static void main(String[] args) {
        int[] array = {5, 10, 15, 20, 25, 30};
        int max = getMax(array);//就是面向对象,调用getMax()方法来求出array数组的最大值
        System.out.println("最大值:" + max);
    }
//  定义一个求最大值的方法,传递进来数组参数,直接求出最大值
//  简单的来说getMax()方法就是一个 封装 
//  封装就是将一些细节信息隐藏起来,对于外界不可见
    public static int getMax(int[] qiuzhi){
        int max = qiuzhi[0];
        for (int i = 0; i < qiuzhi.length; i++) {
            if(qiuzhi[i] > max){
                max = qiuzhi[i];
            }
        }
        return max;
    }
}

以上代码运行结果如下:

最大值:30

以上实例中gettMax()方法是内部类访问该类成员变量的入口。

通常情况下,直接调用封装的方法,就可以运行。

接下来看 private关键字 的作用以及使用

定义一个Student类

package fengzhuang;
/*
问题描述:定义Student的年龄时,无法阻止不合理的数值被设置进来。
解决方案:用private关键字将需要保护的成员变量进行修饰

一旦使用了private进行修饰,那么本类中仍然可以随意访问。
但是!超出了本类范围之外就不能再直接访问了
间接访问private成员变量,就定义一对Getter/Setter方法

注意事项:
    命名规则:必须叫setXxx或者是getXxx
    对于Setter来说,不能有返回值,参数类型和成员变量对应
    对于Getter来说,不能有参数,返回值类型和成员变量对应

private好处:
    一旦使用private外边无法直接访问,只能间接访问,这样用间接的方式写点代码,阻止不合理数据设置进来,提高了代码的安全性
*/
public class Student {
    String name; // 姓名
    private int age; // 年龄
    public void show(){
        System.out.println("我叫:" + name + ", 年龄:" + age);
    }
    //这个成员方法、专门用于向age设置数据
    public void setAge(int num){
        if(0 < num && num < 1000){
            age = num;
        } else{
            System.out.println("数据不合理");
        }
    }
    //这个成员方法、专门用于获取age数据
    public int getAge(){
        return age;
    }
}

以上实例中public方法是外部类访问该类成员变量的入口。

通常情况下,这些方法被称为getter和setter方法。

因此,任何要访问类中私有成员变量的类都要通过这些getter和setter方法。

通过如下的例子说明Student类的变量怎样被访问:

package fengzhuang;

public class StudentOne {
    public static void main(String[] args) {
        Student one = new Student();
        one.show();
        System.out.println("==========================");
        one.name = "修仙者";
//        one.age = -20; //直接访问private内容,是一种错误的写法
        one.setAge(-20); //这就是private关键字的作用,能对数据进行设置
        one.show();
        System.out.println("==========================");
        one.setAge(20);
        one.show();
    }
}

以上代码运行结果如下:

我叫:null, 年龄:0
==========================
数据不合理
我叫:修仙者, 年龄:0
==========================
我叫:修仙者, 年龄:20

private关键字的作用:

一旦使用private外边无法直接访问,只能间接访问,这样就可以用间接的方式写点代码,阻止不合理数据设置进来,提高了代码的安全性 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值