黑马程序员-day05-面向对象(封装 Encapsulation)

本文详细阐述了封装的概念及其在编程中的重要性,通过实例展示了如何利用封装和私有化特性来保护数据和简化代码。重点讨论了封装带来的好处,如隔离变化、提高代码复用性和安全性,并提供了具体实现方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

------- android培训java培训、期待与您交流! ----------

封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
假如:
1.买电脑:你去买电脑,为了方便找一个具有硬件参数方法和讲价方法的对象帮你去买电脑,至于这个对象怎么去和销售员讲价,怎么去和销售员说硬件信息,这个你没有必要知道;你只要知道你找他能买到一个合适的电脑,至于这些细节你没有必要知道,这些细节相对你来说就是隐藏的,这就是封装。

2.面试:我招聘一些具有专业能力的人,然后给他们一个项目,至于怎么开发的我不需要管,我只要结果,开发发再多时间跟我没关系,不要和老板说你流了多少血多少汗,就看结果OK不OK。

3.电脑:机箱里面怎么构造的你不需要知道,机箱里面的内部构造相对你来说就是封装的。

好处:
(1)将变化隔离。机箱里面改了显卡,改了主板,是不是对于你来说都无所谓,机箱里面怎么变化跟你没关系,你直接拿来用就可以了。
(2)便于使用。你不需要了解内部构造就能完成应用。
(3)提高重用性。
(4)提高安全性。

封装原则:
(1)将不需要对外提供的内容都隐藏起来。
(2)把属性都隐藏,提供公共方法对其访问。

函数是最小的封装块。

private关键字:
(1)是一个权限修饰符。
(2)用于修饰成员(成员变量和成员函数)
(3)被私有化的成员只在本类中有效。

注意:私有仅仅是封装的一种表现形式。

如何进行具体的封装,如何把内容隐藏,同时又怎么通过公共方式来访问,通过一个实例来说明。

/**
 * 需求:
 * 1. Person类。对Person的属性进行私有化,让外界不能直接访问,对外提供公  
 * 共的访问方式。
 * 2. 对访问的数据进行逻辑判断等操作,提高代码健壮性。
 */

//Person类
class Person{
	private String name;
	private int age;

	//对外提供公共设置姓名的方式
	public void setName(String name){
			this.name = name;
	}
	
	//对外提供公共得到姓名的方式
	public String getName(){
		return name;
	}
	
	//对外提供公共设置年龄的方式
	public void setAge(int age){
		if(age > 0 && age < 120){
			this.age = age;
		}
		else{
			System.out.println("非法年龄");
		}
	}
	
	//对外提供公共得到年龄的方式
	public int getAge(){
		return age;
	}
	
	//speak方法
	public void speak(){
		System.out.println("name:" + name + ",age:" + age);
	}
}

//测试类
public class PersonDemo {
	public static void main(String[] args) {
		Person p = new Person();
		
		p.setName("zhangsan");
		p.setAge(30);
		p.speak();
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值