封装的含义

实现良好的封装,需要从两个方面考虑:
1 将对象的属性和实现细节隐藏起来,不允许外部直接访问。

2 把方法暴露出来,让方法来操作或访问这些属性。




四个访问控制符
1 private访问控制级别:如果类里的一个成员(包括属性和方法)使用private访问控制符来修饰,
则这个成员只能在该类的内部被访问,很显然,这个访问控制符用于修饰属性最合适,使用它来修饰属性就
可以把属性隐藏在类的内部。

2 default访问控制权限:如果类里的一个成员(包括属性和方法)或者一个顶级类不使用任何访问控制
符修饰,我们就称它是默认访问控制,default访问控制的成员或顶级类可以被相同包下其他类访问。

3 protected访问控制权限(子类访问控制权限):如果一个成员(包括属性和方法)使用protected
访问控制符修饰,那么这个成员既可以被同一个包中其他类访问,也可以被不同包中的子类访问,通常情况下,
如果使用protected来修饰一个方法,通常是希望子类来重写这个方法。

4 public访问控制权限(公共访问权限):这个是最宽松的访问控制级别,可以访问任何。

package Agu3th;

public class Person {
	private String name;
	private int age;
	public void setName(String name)
	{
		if(name.length() > 6 || name.length() < 2)
		{
			System.out.println("您设置的人名不符合要求");
			return;
		}
		else
		{
			this.name = name;
		}
	}
	public String getNmae()
	{
		return this.name;
	}
	public void setAge(int age)
	{
		if(age > 100 || age < 0)
		{
			System.out.println("您设置的年龄不合法");
			return;
		}
		else
		{
			this.age = age;
		}
	}
	public int getAge()
	{
		return this.age;
	}
	public static void main(String[] args) {
		
	}

}


定义了上面的Person类之后,该类的name和age属性只能在Person类内才可以操作和访问,在Person类之外只能
通过各自对应的setter和getter方法来操作和访问他们。
java中属性的setter和getter方法有非常重要的意义,如果一个Java类的每个属性都被使用private修饰,并为
每个属性都提供了public修饰setter和getter方法,这个类就是一个符合javaBean规范的类。

关于访问控制符的使用,规则如下:
1 类里的绝大部分属性都应该使用private修饰,除了一些static修饰的,类似全局变量的属性,才可能考虑使用public
修饰,除此之外,有些方法只是用于辅助是吸纳该类的其他方法,这些方法被称为工具方法,工具方法应该使用private修饰。

2 如果某一个类主要用做其他类的父类,该类里包含的大部分方法可能仅仅希望被其子类重新,而不想被外界直接调用,则应该使用
protected修饰这些方法。

3 希望暴露出来给其他类自由调用的方法应该使用public修饰,因此,类的构造器通过使用public修饰,暴露给其他类中创建
的对象,因为顶级类通常都希望被其他类自由使用,所以大部分顶级类都是public修饰。

猜你喜欢

转载自blog.csdn.net/u012989656/article/details/47258737