由浅到深认识Java语言(11):封装

该文章Github地址:https://github.com/AntonyCheng/java-notes【有条件的情况下推荐直接访问GitHub以获取最新的代码更新】

在此介绍一下作者开源的SpringBoot项目初始化模板(Github仓库地址:https://github.com/AntonyCheng/spring-boot-init-template【有条件的情况下推荐直接访问GitHub以获取最新的代码更新】& CSDN文章地址:https://blog.csdn.net/AntonyCheng/article/details/136555245),该模板集成了最常见的开发组件,同时基于修改配置文件实现组件的装载,除了这些,模板中还有非常丰富的整合示例,同时单体架构也非常适合SpringBoot框架入门,如果觉得有意义或者有帮助,欢迎Star & Issues & PR!

上一章:由浅到深认识Java语言(10):面向对象

19.封装(面向对象第一大特性)

概念定义

问题的出现:封装就是让 Java 中的代码尽量完全还原现实世界,而不会造成与现实世界有冲突,这种冲突往往出现在直接对属性进行赋值的场景,也就是说,如果直接对属性进行赋值,而没有任何的约束条件,那么就很容易造成与现实世界不相符的冲突;

问题的解决:因此,通过封装来对属性赋值,对这一行为添加约束条件。换句话说,把对属性的操作放在一个方法里,那么这个过程就称为封装,此后属性不能直接访问,而必须通过方法来访问,此时就要用到private关键字;

封装的步骤:

  1. 私有化属性;
  2. 提供公共的方法来操作私有化属性;
  3. 在公共的方法里设置约束条件;

示例一:

为了解决用户输入的数字而造成误解,世界上基本没有奇数腿的动物,我们要消除该误解;

Animal 类:

package top.sharehome.BagOne;

public class Animal {
	private int legs; // private ==> 私有的
	// 再提供一个公共的方法来操作私有的属性 ==> 封装的第一步

	public void setLeg(int legs) {
		if (legs % 2 != 0) {
			System.out.println("赋值失败,世界上没有奇数腿的动物!");
		} else {
			this.legs = legs;
		}
	}

	// 提供一个公共的方法来获取私有的属性
	public int getLeg() {
		return this.legs;
	}
}

demo 类:

package top.sharehome.BagOne;

public class demo {
	public static void main(String[] args) {
		Animal a1 = new Animal();
		a1.setLeg(5);
		System.out.println("这只动物腿的数量是"+a1.getLeg());
	}
}

打印效果如下:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

示例二:

世界上的人,年龄是有限的,用封装解决如下;

Person 类:

package top.sharehome.BagOne;

public class Person {
	private int age;
	public void setAge(int age) {
		if(age>130||age<0) {
			System.out.println("世界上不存在这样的人!");
		}else {
			this.age = age;
		}
	}
	public int getAge() {
		return this.age;
	}
}

demo 类:

package top.sharehome.BagOne;

public class demo {
	public static void main(String[] args) {
		Person p = new Person();
		p.setAge(-9);
		System.out.println("你的年龄是"+p.getAge());
	}
}

打印效果如下:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在实际开发中的封装:

在做具体开发时,设计一个类,类中的属性往往要设置成私有的,并且提供公共的方法来操作属性,在公共的方法里封装具体的约束条件,这些公共的方法就是以后经常会提到的 getter 和 setter,比如:getXXX(){} setXXX(){}可以用快捷键

下一章:由浅到深认识Java语言(12):代码块&静态

  • 15
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值