|
目录
1. 封装
1.1 概念
面向对象程序三大特性:封装、继承、多态。何为封装呢?简单来说就是套壳屏蔽细节。
封装:将数据和操作数据的方法进行有机结合,隐藏对象的属性和实现细节,仅对外公开接口来和对象进行 交互
比如:说我们平常使用手机,我们只需要知道,如何开机,如何使用。并不关心手机内部的核心部件,不需要知道主板的线路布局,不需要知道CPU是如何设计的。厂商在出厂时,在外部套上壳,将内部隐藏起来,让用户可以与手机交互即可。
1.2 访问限定符
封装的实现需要我们先了解访问修饰限定符
Java中提供了四种访问限定符:
#
public:在任何地方,都可以访问它修饰的成员或方法,或者类。
#
protected:在继承会学到。
#
dafault:指默认。在同一个包中进行访问。
例如: 此时的year前面什么都不加,就是默认权限。
#
private:私有的。只能在当前类中访问。
我们现在建一个Date类:
public class Date {
public int year;
public int month;
public int day;
public Date() {
}
public Date(int year, int month, int day) {
this.year = year;
this.month = month;
this.day = day;
}
public void printDate() {
System.out.println(year+" "+month+" "+day+" ");
}
public static void main(String[] args) {
}
}
我们新建一个类TestDemo,在TestDemo中用Date类,因为是public
修饰的,我们可以看到没有报错。year,month,day也都可以访问。
这时我们把year改成private
修饰,year的访问权限就变小了。只能在当前类中访问。这时我们的TestDemo中报错了,无法访问year
。
此时我们对year进行了封装,类外就不能访问这个被封装的year。
我们来思考一个 问题 ,如果外部想要使用year,应该怎么办呢?
答:这时我们需要对这个year,提供一个公开的接口
public int getYear() {
return year