封装:
属性私有(private),get/set。 即:如果将属性设置为private,则不能直接调用到该属性,需要设置get/set方法
package com.oop.demo3;
public class Student {
//私有属性 private
private String name;//名字
private int id;//学号
private char sex;//性别
private int age;//年龄
//提供一些获取private属性的方法
//set get 方法
//get方法:获取
public String getName() {
return name;
}
//set方法:设置
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public char getSex() {
return sex;
}
public void setSex(char sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
set/get方法快捷键:alt+insert
封装的意义:
- 提高程序的安全性,保护数据。
- 隐藏代码的实现细节。
- 统一接口。
- 系统可维护性增加了。
继承:extends
- 继承是类和类之间的一种关系。
- 继承关系的两个类,一个是父类,一个是子类。
- JAVA类只要单继承,没有多继承。
- 子类继承父类的话,正常属性和方法都是public。如果属性是private,可以通过封装的思想来解决。
- Java中,所有类默认继承Object这个类。
如: 父类:
子类:
运行调试:
结果:
查看继承关系快捷键:ctrl+H
super
注意点:
- super调用父类的构造方法,必须在构造方法的第一行
- super必须只能出现在子类的方法或者构造方法中
- super和this不能同时调用构造方法
super vs this:
代表的对象不同:1.super:代表父类对象的应用 2.this:本身调用这个对象
前提:1.super:只有在继承条件下才可以使用 2.this:没有继承也可以使用
构造方法:1.父类构造:super(); 2.本类构造this();
代码举例:
结果:
方法重写:需要有继承关系,子类重写父类的方法!
- 方法名必须相同
- 参数列表必须相同
- 修饰符:范围可以扩大但不能缩小:public>protected>default>private
- 抛出的异常:范围可以被缩小但不能被扩大:ClassNotFoundException --> Exception(大)
- 子类的方法和父类必要一致,方法体不同!!!
- 重写快捷键:alt+insert
- 重写适用的方法:非静态方法。如果是静态方法,方法的调用只和左边定义的数据类型有关。
代码举例:
结果: