封装和继承

什么是封装

封装的作用(为什么需要封装):

1.如果没有封装,那么一个类中属性,可能会出现不合理赋值。

2.便于使用者正确使用系统,防止错误修改属性

3.有助于系统之间的松耦合,提高系统独立性

4.提高软件的可重用性

5.降低了构建大型系统的风险

**封装的定义:**将类的信息隐藏在类的内部,不允许外部程序直接访问,而是通过类提供的公开的便捷的接口来进行访问赋值等。

原则:尽可能多的隐藏信息提供公开的接口来访问。

如何使用封装


public class Monkey {

	// 1.属性私有化-隐藏类信息 除了自己这个类 其他的外部类都无法直接访问
	private String name;
	private int health;
	private int love;
	
	// 2.提供公共的getter/setter方法-用于外部访问操作(便捷的接口)
	// name的setter方法
	public void setName(String name) {
		this.name = name;
	}
	// name的getter方法
	public String getName() {
		return this.name;
	}
	
	public int getHealth() {
		return health;
	}
	
	// 3.根据你的【实际需求】  去在对应的getter/setter方法中添加控制语句
	public void setHealth(int health) {
		if(health < 0 || health > 100) {
			System.out.println("健康值不正确!已经设置为默认值60!");
			this.health = 60;
		}else {
			this.health = health;
		}
	}
	
	public int getLove() {
		return love;
	}
	public void setLove(int love) {
		this.love = love;
	}
}

访问修饰符的使用

**private:**最严格的访问级别,只能在本类中使用。

**什么都不写(默认):**同包之间可以随意访问。

**protected:**本包和所有子类都可见

**public:**在整个项目都能使用

作用域 修饰符同一个类中同一个包中子类中任何地方
private
默认修饰符
protected
public

**访问修饰符:**可以用来修饰类、修饰属性、修饰方法。

**作用:**为了隐藏某些细节,或者公开某些内容,控制访问权限。

static关键字

**static可以修饰变量:**静态变量/类变量

**static也可以修饰方法:**静态方法/类方法

**static也可以修饰代码块:**静态代码块

static修饰的类信息等和普通的成员(实例/对象)信息等的区别:

  1. 生命周期不同

    类信息随着类加载而创建

    实例信息随着对象产生而创建

  2. "作用域"不同

    类信息被该类的所有的对象共享,只要有一个对象更改,所有的对象获取的结果都会变化。

    实例信息仅仅被自身对象所使用,不同对象之间的实例信息相互独立存在。

  3. 调用上有所不同

    实例信息必须通过先创建对象,然后才能使用

    类信息,直接可以用类名.的形式调用(当然也可以用对象来调用)

注意:

  1. 如果在多个对象之间,有共享的数据,且这个数据不会发生变动,最好定义为静态常量,可以有效提升效率。
static final修饰...

继承

继承 是面向对象中的一个概念,与多态、封装共为面向对象的三个基本特征。 继承可以使得子类具有父类的属性和方法或者重新定义、追加属性和方法等。

继承要通过关键字extends来实现,语法:
权限修饰符 class 子类名 extends 父类名{

}
1.子类中要通过super关键字来调用父构造方法
2.在子类中可以继承父类中public,protected修饰的属性、方法可以继承,private修饰的属性和方法不能被继承
3.如果父类的属性均为private修饰,则可以通过共有的getter,setter方法来调用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值