面向对象的基础_08封装

封装

封装的具体优点:

  1. 提高代码的安全性
  2. 提高代码的复用性
  3. “高内聚”:封装细节,便于修改内部代码,提高可维护性
  4. “低耦合”:简化外部使用,便于调用者使用,便于扩展和协作

封装的实现——访问控制符

用访问控制符来控制哪些细节需要封装,哪些细节需要暴露
修饰属性和方法以及类

修饰符同一个类同一个包子类所有类
private
default
protected
public
  1. private表示私有,只有自己类可以访问
  2. default表示没有修饰符修饰,只有同一个包的类可以访问
  3. protected表示可以被同一个包的类以及其他包中的子类访问
  4. public表示可以被该项目的所有包中的所有类访问
package text;


public class text01 {
	public static void main(String[] args) {
		Human  h = new Human();

	}
}

class Human{
	//私有的,被封装了——只能自己可见
	private int age;
	//什么都不加,相当于default——同一个包可以用
	String name;
	//同一个包的类以及不同包的子类
	protected int height;
	//所有的类都能用它
	public int some;
	void sayAge() {
		System.out.println(age);
	}
}
class   Boy  extends Human {
	public  void  sayHello(){
		//子类无法使用父类的私有属性和方法
		//System.out.println(age);		
	}
}

封装的使用细节

类的属性的处理:

  1. 一般使用private访问权限
  2. 提供相应的get/set方法来访问相关属性,这些方法通常是public修饰的,提供对属性的赋值与读取操作
    其中:boolean变量的get方法是is开头
  3. 一些只用于本类的辅助性方法可以用private修饰,帮助其他类调用的方法用public修饰
 package text;
 public class text01 { 
		private  int id;
		private String  name;
		private  int  age;
		private  boolean  man;  
		//对于属性,提供相应的set/get方法来访问私有变量
		public   void  setName(String  name){//设置name的值
			 this.name = name;
		}
		
		public  String  getName(){//获取name的值
			return  this.name;
		}
		//不光是可以设置age的值,也可以对age进行相应的处理
		public  void setAge(int age) {
			if(age>=1&&age<=130){
				this.age = age;
			}else{
				System.out.println("请输入正常的年龄!");
			}
		}
		
		public  int  getAge(){
			return this.age;
		}

		public int getId() {
			return id;
		}

		public void setId(int id) {
			this.id = id;
		}

		public boolean isMan() {
			return man;
		}

		public void setMan(boolean man) {
			this.man = man;
		}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值