JAVA学习笔记 day4
1.面向对象
以类的方式组织代码,以对象的组织(封装)数据。
static方法和类一起加载
2.构造器
一个类即使什么都不写,它也会存在一个构造方法。
构造方法:
必须跟类的名字相同,必须没有返回类型
作用:
实例化初始值
使用new 关键字创建新对象,本质是在调用构造器
注意:
一旦定义了有参构造,默认的无参构造就没有了。
3.封装
高内聚,低耦合。
属性私有,privite
通过get方法获取,set方法设置值
封装的用法:
1.可以保护数据,提高程序的安全性,规避掉不合法数据的传入
2.隐藏代码细节
3.统一接口
4.增加系统可维护性
4.继承
继承只是实现的一种办法,组合也可以实现跟继承一样的效果
私有属性是无法继承的,属性默认值为default
在java中所有的类都默认直接或者间接继承Object类
java中只有单继承,没有多继承。
this 调用当下类中属性方法,super调用父类中的属性方法。
super调用不了私有的方法或属性,因为私有的继承不了
在创建子类时,会默认调用父类的构造器。
5.重写
注意点:
1.方法名必须相同
2.参数列表必须相同
3.修饰符:范围可以扩大但不能缩小,父类的方法权限不能比子类大 public >protected>default>private
4.抛出的异常:范围可以被缩小,但不能被扩大。
重写的意义:
父类的功能子类不一定需要
里氏替换
6.多态
一个对象的实际类型时确定的,但是它指向的引用类型时不确定的。父类的引用指向子类,子类重写了父类的方法,就调用子类重写的方法,否则调用父类的方法。
instanceof关键字
instanceof是Java中的二元运算符,左边是对象,右边是类;当对象是右边类或子类所创建对象时,返回true;否则,返回false。
类型转换
父类引用指向子类对象,我们称这个过程为向上转型,属于自动类型转换。
向上转型后的父类引用变量只能调用它编译类型的方法,不能调用它运行时类型的方法。这时,我们就需要进行类型的强制转换,我们称之为向下转型。
子类转父类,会丢失自己的独特方法,父类转子类会引用子类的方法
7.static
静态变量存放在静态方法区里面。
静态代码块:
static{
//初始数据时使用
}
最先执行静态代码块,因为它和类一起加载,类存在的时候就存在了。且只执行一次。
静态导入包:
import static java.lang.Math.random;
8.抽象类
abstract
继承抽象类的所有子类必须实现抽象类中的抽象方法
抽象类只起到约束作用。
抽象类中可以写普通方法,抽象方法必须在抽象类中
9.接口(面向接口编程)
接口中所有定义的方法都是抽象的 默认为public abstract
定义的常量都是 public static final
只用写 返回值类型+ 方法名 (参数);
eg: void add(int a,int b);
接口都需要实现类。实现接口的类,必须要重写接口中的方法。
关键字:interface implements
接口可以多继承。
接口作用是约束,提高开发效率,定义一些方法,让不同的人实现;接口不能被实例化,里面没有构造方法,必须要重写接口定义的方法。