封装(encampsulation)

1.封装的意思:

封装是面向对象三大特征之一。对于程序合理的封装让外部调用更加方便,更加利于写 作。同时,对于实现者来说也更加容易修正和改版代码。

2.编程中封装的具体优点:

(1)提高代码的安全性。

 (2)提高代码的复用性。

(3) “高内聚”:封装细节,便于修改内部代码,提高可维护性。

 (4)“低耦合”:简化外部调用,便于调用者使用,便于扩展和协作。

3.封装的实现——使用访问控制符

Java 是使用“访问控制符”来控制哪些细节需要封装,哪些细节需要暴露的。 Java 中 4 种“访问控制符”分别为 private、default、protected、public,它们说明了面向对 象的封装性,所以我们要利用它们尽可能的让访问权限降到最低,从而提高安全性。

4.封装的使用细节

开发中封装的简单规则:

(1) 属性一般使用 private 访问权限。(2) 属性私有后, 提供相应的 get/set 方法来访问相关属性,这些方法通常是 public 修饰的,以提供对属性的赋值与读取操作(注意:boolean 变量的 get 方法是 is 开头!)。

(3) 方法:一些只用于本类的辅助性方法可以用 private 修饰,希望其他类调用的方法 用 public 修饰。

5.封装的使用

class Person {

private String name; private int age; public Person() {

 

}

public Person(String name, int age) {

this.name = name;

// this.age = age;//构造方法中不能直接赋值,应该调用 setAge 方法 setAge(age);

}

 

public void setName(String name) {

this.name = name;

}

public String getName() {

return name;

}

public void setAge(int age) {

//在赋值之前先判断年龄是否合法

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

this.age = 18;//不合法赋默认值 18

} else {

this.age = age;//合法才能赋值给属性 age

}

}

public int getAge() {

return age;

}

@Override

public String toString() {

return "Person [name=" + name + ", age=" + age + "]";

}

}

 

public class Test2 {

public static void main(String[ ] args) { Person p1 = new Person();

//p1.name = "小红"; //编译错误

//p1.age = -45; //编译错误 p1.setName("小红");

p1.setAge(-45); System.out.println(p1);

 

Person p2 = new Person("小白", 300); System.out.println(p2);

}

}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值