Java类的封装

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_43587055/article/details/90813998

Java中访问修饰符有四种分别是public、private、protect、default

区别它们的访问范围不同:

同一个类 同一个包 不同包的子类 不同包的非子类
Private
Default
Protected
Public

其中我们最为常用的是范围最大的public和范围最小的private,在接下来类的封装中我们将会用到这两个修饰符;
类的封装定义:
就是将类的属性私有化,如果外界要访问私有属性,要通过public设置的获取属性值getXxx的方法和设置属性值setXxx的方法;

public class Student {
	String name;
	int age;
	public void introduce() {
		//方法中打印属性name和age的值
		System.out.println("大家好,我叫"+name+",我今年"+age+"岁!");
	}
}

public class Example01 {
	public static void main(String[] args) {
		Student stu=new Student();	//创建学生对象
		stu.name="李华";			//为对象的name属性赋值
		stu.age=-30;				//为对象的age属性赋值
		stu.introduce();			//调用对象的方法
	}
}

运行结果
年龄被赋值为一个负数-30,这不符合我们现实生活中的逻辑。为解决年龄不能为负数这个问题,设计一个类并对成员变量的访问做一些限定,不予许外界的随意访问,这就是类的封装

public class Student {
	private String name; 	//将name私有化
	private int age;		//将age私有化
	//下面是公有的getXxx和setXxx法
	public String getName() {
		return name;
	}
	public void setName(String stuName) { 
		name=stuName;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int stuAge) { 
		//下面是对传入参数进行检查
		if(stuAge<=0) {
			System.out.println("对不起,你输入的年龄不合法,错误...");
		}
		else
		age=stuAge;
	}
	public void introduce() {
		System.out.println("大家好,我叫"+name+",我今年"+age+"岁!");
	}
}

public class Example01 {
	public static void main(String[] args) {
		Student stu=new Student();
		stu.setAge(-30);
		stu.setName("李华");
		stu.introduce();
	}
}

运行结果
在main方法中创建student对象,并调用setAge()方法传入一个负数-30,在setAge()方法中会对参数stuAge的值进行检查,小于0是输出“对不起,你输入的年龄不合法,错误…”,age属性没有赋值,初始值为0“大家好,我叫李华,我今年0岁!”;

猜你喜欢

转载自blog.csdn.net/weixin_43587055/article/details/90813998
今日推荐