java的封装思想_java面向对象思想之封装

一、什么是封装

菜鸟教程对封装的解释是“在面向对象程式设计方法中,封装(英语:Encapsulation)是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法。”。简单来说就是对公用的java代码装到一个盒子中。当需要使用这部分代码的是时候,通过调用这个打包好的盒子就可以对这个功能进行实现。

二、为什么要进行封装

减少耦合。程序设计要追求“低耦合,高内聚”。 高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;低耦合是仅暴露少量的方法给外部使用,尽量方便外部调用。封装就满足了低耦合的需求。

隐藏信息,提高可靠性。封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。

提高代码的复用性。相同的功能代码不需要第二次书写,直接调用就可以,极大的提高了代码的复用性,降低了代码量。

方便修改和实现。当需要对其某部分进行修改时,做到一改全改。

三、封装的实现(属性私有,get/set)

Student.java,是一个学生类。有私有属性,这些属性只有在本类里面才有效。在Student类里面针对各个属性有get和set方法,这些方法是共有属性,当产生一个Student对象时,就可以通过这些共有属性来访问这些私有变量。这就是这个类提供对外的接口。

public class Person {

private String name;

private int age;

private int id;

private char sex;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public char getSex() {

return sex;

}

public void setSex(char sex) {

this.sex = sex;

}

}

Application.java通过创建一个对象来使用Student类中的私有属性:

public class Application {

public static void main(String[] args) {

Person person=new Person();

System.out.println(person.getName());

person.setName("ThreePure");

System.out.println(person.getName());

person.setAge(21);

System.out.println(person.getAge());

person.setId(512);

System.out.println(person.getId());

person.setSex('男');

System.out.println(person.getSex());

}

}

输出结果为:

null

ThreePure

21

512

由运算结果可知,当变量被定义而没有被初始化时,是会有一个默认值的。

封装还一个好处就是可以提高代码的安全性,这里年龄可以随意输入,但是现实生活中,年龄的范围是0-120岁,这就需要使用封装对年龄进行限制。当输入非法的数据时能够自行判断。对setAge方法进行修改。

public void setAge(int age) {

if (age>120 || age<0){

System.out.println("输入的年龄非法");

}else {

this.age = age;

}

}

person.setAge(121);

System.out.println(person.getAge());

运算结果:

输入的年龄非法

0 //使用默认值输出。

以上实例中public方法是外部类访问该类成员变量的入口。因此,任何要访问类中私有成员变量的类都要通过这些getter和setter方法。

四、IDEA快速创建get/set方法。

在需要创建get/set方法处按Alt+insert组合键打开Generate菜单,选择Getter and Setter。

1a6ec4f50c87dbd08d0dfadda134c7c8.png

在弹出来的菜单中选中要创建get/set方法的变量:

37c9d94b14380bf10f1f14603b44b19f.png

到此,get/set方法的创建就完成了。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值