面向对象特征之一:封装

面向对象特征之一:封装:

有时候我们需要对用户输入的属性进行限制,加入一些限制条件,不能直接给属性赋值,需要通过方法来给属性赋值,比如(setxxx).同时我们需要避免用户再使用对象.属性的方式对属性进行赋值,则需要将属性声明为“private",这就体现了封装性。

封装性的体现:

不对外暴露私有的属性:我们将类的属性”private"同时提供方法去限制赋值操作(setxxx),然后再提供方法去查看 (getxxx) 。不对外暴露私有的方法。不对外暴露的构造器(单例模式)如果不希望类在包外被调用,可以设置成缺省。

拓展:

不仅有上述属性的封装,还有方法的封装(供类内部使用),单例模式…

在这里插入图片描述

封装的具体体现:

1.权限修饰符:

从小到大排列: private, 缺省, protected, public.

2.4种权限可以用来类的内部结构:属性、方法、构造器、内部类

3.具体的,4种都可以用来修饰类的内部结构:属性、方法、构造器、内部类

但是修饰类 的话只能使用缺省、public
在这里插入图片描述

package com.myobjectoriented.nonworking;

public class Encapsulation {

	private int ages;//隐藏属性
	private String names;//隐藏属性
	private char sexs;//隐藏属性
	
	public void setAges(int num) {//获取年龄
		if(num>0&&num<130) {ages=num;}
		else{System.out.println("请输入正确的年龄:");}
	}
	
	public int getAges() {//返回年龄
		return ages;
	}
	
	public void setNames(String name) {
		
			names=name;
		}
	
	public String getnames() {
	return names;}
	
	public void setSex(char sex) {
		if(sex=='男'||sex=='女') {sexs=sex;}
		else {System.out.println("请输入正确的性别:");}
	}
	
	public char getSexs(){
		return sexs;
	}

	
}


package com.myobjectoriented.nonworking;

public class EncapsulationText {

public static void main(String[] args) {
	Encapsulation enca= new Encapsulation();
	enca.setAges(53);
	enca.setNames("Abraham");
	enca.setSex('男');
	
	System.out.println(enca.getAges());
	System.out.println(enca.getnames());
	System.out.println(enca.getSexs());

}
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值