知识点总结
面向对象的三个特点
封装:隐藏实现的细节,将属性私有化,提供公有的方法访问私有属性
继承:从已有的类中派生出新的类,新的类具有被继承类的所有属性和方法,并能为其扩展功能
多态:指的是同一个行为具有多个不同的表现形式或形态的能力
封装
作用:隐藏代码实现的细节
使用简单方便
维护的数据的安全性,维护程序的健壮性
实现:修改属性的可见性,即属性的修饰词来限制对属性的访问
为每一个私有属性创建一对(setter)方法和(getter)方法,用于对这些属性进行访问或者修改
可在setter和getter方法中加入对属性取值的限制
继承
使用extends关键字实现继承
继承所派生出的子类用有父类的所有属性和方法(当然这边不考虑一些(private)私有属性)
继承只支持单一继承,一个类不能同时继承多个父类,但是可以多重继承(此处可理解为继承为单细胞生物,所谓的父母都是一个)
多态
java中多态的体现:
类的继承
方法的重写
方法的重载
接口的实现
构造方法
构造方法的名字和类名必须相同
构造方法没有返回值
构造方法可以被重载
构造方法在实例化对象时被调用
当程序员没有自己编写构造方法时,JVM会自动生成一个无参的构造方法
反之,程序员编写了自己的构造方法时,那么JVM将不会提供无参的构造方法
方法的重载 overload
重载的方法名称要相同
两个同名方法能否构成重载,只与两个方法的形参列表有关,当两个方法形参列表一模一样时,无法构成重载,反之则构成重载!
与返回值类型无关
重载和重写时两个完全不同的概念
//重载的例子
public void run (String name,int age){
}
public int run (String name){
}
public void run (String name){
}
方法的重写 override
方法的重写又称为覆盖,例如接口中方法的实现,子类中与父类方法名一致的方法
形成重写的条件
方法名称一致
参数一致
返回值类型一致,或者返回值是其子类(概括的说就是返回值的为同一类)
super用法
super可用于继承的子类中调用父类的方法以及属性
super可.出父类的方法,这样可以简化代码,增加代码的复用
public class Animal{
private String name;
private int age;
public Animal(String name,int age){
this.name = name;
thia.ge = age;
}
public void test(){
System.out.println("父类的test方法")
}
}
public Dog extends Animal{
public Dog(String name,int age){
super(name,age);
}
// 重写父类的test方法
public void test(){
super.test(); // 在子类中调用父类的方法
System.out.println("子类的test方法")
}
}
Dog dog = new Dog
dog.test();
修饰词
修饰符 本类 同包 包外子类 包外其他类 private 是 默认 是 是 preotected 是 是 是 public 是 是 是 是
debug测试
设置断点(双击代码前面的空白处)
打开debug模式(运行旁边的小虫子)
调试过程中可看见属性值的变化(在Variables窗口中)没有找到的话可以在 Windows–>show View---->Variables下找到