您的当前位置:首页正文

Java-封装

2024-11-07 来源:个人技术集锦

Java基础整理--------封装


先介绍下访问修饰符:

  • public

公共的,用public修饰的类、属性、方法,在同项目工程下的所以类均可以访问

  • private

私有的,用private修饰的类、属性、方法,只能在本类中可以访问,工程其他地方均不能访问。

  • protected

受保护的,用protected修饰的类、属性、方法,同包内的类以及继承了该类的子类(其他包也包括)能访问。

  • 缺省的(默认)

什么都不写,如果一个类、属性、方法没有写以上任何修饰符,则表示默认缺省。只能同包下的类才能访问。重点突出包的概念。


封装

面向对象的三大特征:封装、继承、多态

封装是指将对象的状态信息(属性)隐藏在对象内部,通过对象提供的方法对其属性进行操作和访问

将一些实现细节包装,隐藏起来,只留一些接口使之与外界联系。

封装的好处

在创建一个对象的时候,可以通过修改对象中属性的访问修饰符,来达到信息隐藏。

public class Person {

	/**
	 * 	姓名
	 */
	private String name;
	
	/**
	 * 	年龄
	 */
	private int age;
	
	/**
	 * 	爱好
	 */
	private String hobby;
}

在上面person对象中,name、age、hobby属性的访问级别设置为的是private(私有的),只能本类访问,在其他地方获取属性值不能使用对象.属性的方式了,这就对person的信息进行了初步的隐藏。


需要提供一些接口(公共的方法来使之于外界联系),对Person对象中的每个属性值提供对外的公共方法访问,使其通过访问方法从而获取属性的值和对属性赋值。

	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 getHobby() {
		return hobby;
	}

	public void setHobby(String hobby) {
		this.hobby = hobby;
	}

这些修饰符为public的方法被称之为getter、setter方法,这样其他类想要访问Person中的属性就只能通过访问这些方法。

如果有其他类调用Person方法中的属性,你想对属性的赋值做一些限制,那么就可以在该属性的setter方法中添加代码。如Person的age必须是一个大于零的数。那么:

	public void setAge(int age) {
		if(age<0) {
			System.out.println("年龄必须是大于零的");
		}else {
			this.age = age;
		}
	}

 

显示全文