3.1.6 封装

本文探讨了Java中的封装原理,如何通过private修饰属性实现信息隐藏,以及setter和getter方法的作用。通过实例说明了如何在实际开发中运用封装进行权限控制和数据操作。

封装

前面提到过,面向对象的三大特性,是封装、继承、多态,现在来说说封装。
类的封装是指将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象的内部信息,而是通过该类提供的方法实现对内部信息的操作访问。
在Java开发中,在定义一个类时,将类中的属性私有化,即使用private关键字修饰类的属性,被私有化的属性只能在类中被访问。如果外界想要访问私有属性,则必须通过setter和getter方法设置和获取属性值。

class Student{
	private String name;
	private int age;
	private String grade;

	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 String getGrade(){
		return grade;
	}
	public void  setGrade(String grade){
		this.grade=grade;
	}

	public void lesson(){
		System.out.println(name+"正在听课。");
	}
	public void homework(){
		System.out.println(name+"正在做作业");
	}
}

如上面的例子,前面定义了3个属性,全部是private私有级,然后下面为这3个属性分别配置了一对getter、setter方法,注意这些方法的命名方式,都是get/set为前缀,后面跟上对应的属性名,使用小驼峰命名法。
getter方法用于获取该属性值,所以直接将属性值返回。
setter方法用于为属性赋值,新值以参数形式导入,注意参数名与属性名一致,前面有this关键字前缀的表示是属性,没有带this的是参数。
上面这种将所有属性设为private,再配置public级的getter/setter方法,这就是封装。
有了封装之后,再需要访问属性时就只能通过getter/setter方法来访问,需要时可以在方法中添加一些限制。

class Student{
	……
	private int age;

	public int getAge(){
		return age;
	}
	public void setAge(int age){
		if(age>=0)
			this.age=age;
		else
			System.out.println("输入年龄不能为负数。");
	}
	……
}

如上面代码,在年龄age的setter方法中添加限制代码,要求年龄值必须不能为负数。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值