Java学习:十.封装

一.封装的作用

1.保护内部结构的安全
2.屏蔽复杂,暴露简单

二.不封装的缺点

先来看一段程序

public class Person {
    int age;
}

public class PersonTest {
    public static void main(String[] args) {
    	Person p1 = new Person();
    	p1.age = -100;
    	System.out.println(p1.age);
    }
}

运行结果

在这里插入图片描述
从结果中看出,虽然程序顺利通过编译,并且执行过程也没有任何错误,但是年龄应该是个自然数,不能是负数,我们的程序能在外部随意的访问,会造成数据的不安全,所以我们的程序并不好。

三.使用关键字private进行封装

我们将代码块Person类的数据属性设置为private

public class Person {
    private int age;
}

运行结果:
在这里插入图片描述
我们发现对数据进行了封装,但是封装过头了,数据无法访问,更无法修改了,这不是我们想要的,因为我们要对数据进行操作啊,就好比你造一间房屋,却没有了门,那么这个房屋就失去了它的意义,我们应该给它装个门,由此我们想到了也可以给程序设计个类似的门一样的东西。

四.set方法和get方法的封装

考虑到用了private关键字修饰数据后,只能在本类中访问,我们由此想到可以在本类中利用方法访问和修改数据,由此产生了get方法和set方法。
get:
public 返回值类型 get+属性名字字母大写(无参){
return xxx;
}
set:
public void set+属性名字字母大写(有一个无参){
xxx = 参数;
}

(注意:get和set方法的名称要严格按照 set+属性名字字母大写 或者 get+属性名字字母大写 ,不然以后我们的程序是一个不通用的程序)
最终的程序:

public class Person {
    private int age;
    public int getAge() {
    	return age;
    }
    public void setAge(int year) {
    	age = year;
    }
}

public class PersonTest {
    public static void main(String[] args) {
    	/**创建一个对象*/
    	Person p1 = new Person();
    	/**使用get方法获得age的初始值*/
    	System.out.println(p1.getAge());
    	/**使用set方法给age赋初值*/
    	p1.setAge(100);
    	/**使用get方法获取age并且输出age的值*/
    	System.out.println(p1.getAge());
    }
}

在这里插入图片描述
最后,我说一下我本人对于封装的一些见解,封装在我们生活中很常见,比如我们的手机,电脑,电视等等,这些封装使我们可以很方便的去使用它们,而不用去真的了解他们的运行,比如我们操控遥控器就可以对电视进行频道的切换,无论你如何按遥控器,甚至把它放到水里,电视机依然完好无损,这就是黑匣子操作的好处,这就是封装带来的好处。
封装使面向对象程序设计的三大操作之一,也是后面的继承和多态的基础,所以把握好封装具有重要的意义。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值