封装,顾名思义就是把数据包装起来,做到该露的露,该藏的藏。
记住一句话就够了:属性私有,get/set。
它的特点:高内聚,低耦合。
高内聚就是封装起来的内部数据操作细节自己完成,不允许外部干涉。
低耦合就是仅暴露少量的方法给外部使用。
为什么要进行封装?
- 提高程序安全性,保护数据
- 隐藏代码实现的细节
- 统一接口
- 系统可维护性增加
直接看代码:
Main方法:
package com.oop.demo04;
public class demo01 {
public static void main(String[] args) {
Student student = new Student();
student.setName("华子");
System.out.println(student.getName());
}
}
Student类:
package com.oop.demo04;
//封装,记住一句话:属性私有,get/set(特点:高内聚,低耦合)
public class Student {
// 封装第一步,属性私有化 private
private String name;
private int age;
private char sex;
// 第二步,get/set
// get获取属性
public String getName(){
return name;
}
// set获取值
public void setName(String name){
this.name = name;
}
}
通俗易懂。
补充一点:private属性私有化后,就不能直接调用了。
继承:
继承的本质就是对某一批类的抽象,从而实现对现实世界更好的建模。
通俗的来讲就是将老师,学生这些抽象的概念再抽象一次,因为都是人,都分到人这一类中。
继承是类和类之间的一种关系。除此之外,类和类之间的关系还有依赖、组合、聚合等。
继承关系的俩个类,一个为子类(派生类),一个为父类(基类)。子类继承父类,使用关键字extends来表示。
extend:扩展,子类是父类的扩展。
子类和父类之间,从意义上讲应该具有"is a"的关系.
老师 is a 人
学生 is a 人
上代码:
主类:
package com.oop.demo05;
public class Demo {
public static void main(String[] args) {
Student student = new Student();
student.say();
System.out.println(student.money);
}
}
Person类:
package com.oop.demo05;
public class Person {
public int money = 10_0000_0000;
public void say(){
System.out.println("说了一句话");
}
}
Student和Teacher类(继承了Person类) :
package com.oop.demo05;
public class Teacher extends Person {
}
package com.oop.demo05;
public class Student extends Person {
}
如图:学生继承了Person类,当我们实例化Student类时,是可以直接调用父类(也就是Person类) 中的属性和方法的。
这个就是继承
补充:
(1)Java中只有单继承,没有多继承。(一个儿子只能有一个爸爸,一个爸爸可以有多个儿子)
(2)Ctrl+H:看继承关系的
会发现出来一个这个东西:
Student继承了Person没问题,Object是什么勾八?
其实,Java中,所有的类都默认直接或间接的继承了Object类。
它里面有好多方法供我们使用: