java编程面向对象的三大特性
**
## 封装
**
封装 , 隐藏对象实现的属性和细节,只展示我们想展示的东西,隐藏一些不想让人知道的东西,就是封装。举个例子:(他就像是我们要创建一个阿拉伯的神灯。 我们将神放在罐子里,赐予他实现愿望的能力,并限制3个愿望。拿到灯的人只知道能实现愿望,而不知道具体的实现细节)
关于封装有俩个关键字: private 和this
private 可以修饰成员变量和成员方法 被修饰的变量和方法就只能在本类中使用。
举个例子:例如:我们创建一个Student的实体类 ,类里边设置俩个属性,name age
class Student{
String name;
int age;
}
clss Test{
public static void main (String[] ags){
Student s= new Student()
s.name="张三";
s.age=18;
}
}
我们在main方法中new 一个Student类,那么此时是可以为name 和age赋值的。
但是如果加上了prviate 就会出现下边的编译错误
class Student{
String name;
private int age;
}
}
但是如果我们想要调用被private修饰的成员变量,要怎么做呢?
public class Student {
String name;
private int age;
// 通过下边的get/set方法来访问
public int getAge() {
return age;
}
public void setAge(int n) {
age = n;
}
}
这样就可以访问被private修饰的成员变量了。
关于this关键字
this关键字可以调用本类的成员变量和成员方法,解决局部变量和成员变量的重名问题(java调用的时候是采用就近原则所以,在没有用this关键字的时候,并且成员变量和局部变量重名时,会调用局部变量给局部变量赋值 )
This:代表所在类的对象引用。(方法被那个对象调用,this就代表那个对象)
this调用的内存·图
1.方法调用将main方法放入栈内存
2.将对象引用String s 放入栈内存,并生成地址在堆内存中开劈空间
3.对象里边的set方法执行放入栈内存方法的局部变量接收到传过来的数据
4.this代表被调用的对象 this地址就等于String s的地址 s在堆中开劈的空间原本为null 将局部变量赋值 也就是修改堆内存的值。
## 继承
继承我想大家只看字面意思就可以理解,就是子承父业。
更简单的说就是,你爸行的,你也行,你爸不行的你还是行。就是行
子类的继承父类,就拥有了父类的全部能力,并且可以在子类中继续扩充一些功能
## 多态
多态 就是指一个对象的多种形态,例如:你创建了一个女朋友,他什么都不会,只会睡觉。做饭都是你来做,于是你觉得这样不行,就将做饭的手艺交给了女票。后来你觉得做饭是没问题了,但是又觉得每天打扫卫生太累,于是,你女票学会了打扫卫生,这个过程就是继承。
你没有重新创建一个会做饭的女票,创建一个会做卫生的女票,而是通过继承将女票变的多才多艺,于是女朋友就成了多态。多重的形态