一,构造方法:
1.无返回值
2.必须和类名一致
3.不能像方法那样调用
4.New对象的过程就是调用构造方法的过程
Preson preson=new Preson();//即调用了构造方法Preson()
5.如果我们没有写一个构造方法,系统自动创建,如果写了一个系统便不会再给创建。
例如:仅创造了一个有参的构造方法,便无法Preson preson=new Preson();,因为系统不会在自己创造无参的构造方法,若需要New对象时,需要自己写一个构造方法。
二,方法的重载
构造方法可以重载,普通的方法也可以重载。
1.方法名必须相同
2,参数个数和类型不同,参数列表不同
3,与返回值类型无关,与修饰符无关
三,封装
对数据和对数据的操作绑定在一个类中的方法
1,修饰符设置为private,
2,创建公有的setter和gette方法
四,继承
1,当没有自己写继承时,默认继承Object类
2,子类继承父类,可以得到父类非私有的全部属性和方法,也可以重写父类的属性和方法,还可以增加自己的属性和方法。
3,java中只有单继承
4,子类不能继承父类的所有方法和属性,只能继承父类所有的非private(私有)的属性和方法,而private成员是不能被继承的。
五,重写(override,方法覆盖)
1,重写一般用于继承上。
2,重写的方法和被重写的方法必须具有相同的方法名称,参数列表和返回类型。
3,当既需要调用父类方法,又需要重写父类方法,使用super关键字,super指的是父类。
六,super关键字
1,super关键字来访问父类的成员
2,super关键字只能出现在子类方法与构造方法中
3,super用于构造方法是只能是第一句,即使不写,系统自动写好。
(1)在不继承的情况下:
public class pet{
public pet(String name){
super(); **//即使不写,系统自动添加**
this.name=name;
}
}
(2)在继承的情况下
public class dog extends pet{
public dog(){
super() **//父类的构造方法**
}
}
4,super不能访问父类的private变量
5,静态方法中不能使用super和this关键字(this是当前类,super是父类)
6,super的运用(子类访问父类成员)
(1)访问父类构造方法(子类不能直接继承父类的构造方法,只能用super)
super();
super(name);
(2)访问父类属性
super.name;
(3)访问父类方法
super.print();
七,抽象
1,类中有抽象方法的类必须为抽象类,即普通类中不能定义抽象方法
2,抽象类中的抽象方法没有方法体
3,抽象类不能New对象
4,抽象类可以创建构造方法
5,抽象类中的所有方法必须被子类实现,即抽象类为子类提供了一个规范。抽象类的目的就是被继承的,否则定义没有任何意义。
八,接口(interfase)
1,接口不能被实例化,即接口不能new对象。
2,接口中只有抽象方法,没有普通方法。
3,在接口中定义方法,即使不写系统也会自动加上public abstract.
接口中必须是public修饰。
4,接口中可以有多继承。
5,子类必须实现父类所有的方法。
6,接口中所有属性都是静态属性,也就是常量。
接口中系统默认属性为public static final (如果定义常量时不写,系统自动加上)
九,异常( try ,catch,finally,throw,throws)
1,
try:执行可能产生的异常代码;
catch:捕获异常;
finally:无论是否发生异常,代码总能执行;
throw:声明方法可能要抛出的各种异常;
throws:手动抛出异常;
2,使用 try catch捕获异常分为三种情况:
(1)正常
public void method(){
try{
//代码段(此处不会产生异常)
}catch(异常类型ex){
//对异常进行处理的代码段
}
//代码段
}
十,集合
集合与数组对比:
数组:1,长度固定,2,类型固定,3,方法单一,4,删除或者增加元素麻烦。
集合:1,长度可变,2,类型不固定,3,因为是一个类,所以由很多方法可供使用,4,删除或者增加一个元素只需要一个方法即可。
Collection:接口储存一组不唯一,无序的对象。
List接口储存一组不唯一,有序(顺序插入)的对象。
ArrayList实现了长度可变的数组,在内存中分配连续的空间。遍历元素和随机访问元素的效率比较高。
LinkedList采用链表储存方式,插入,删除元素的效率比较高。
Set接口储存一组唯一(不可重复),无序的对象。
Map接口储存一组键值对象,提供key到value的映射。Key(键)不可以重复,value(值)可以重复。如果存储键相同,值不同的两组数,则俩组数储存后一组数。
Map maps=new HashMap();
mpas.put(“xl”,“江苏人”);
mpas.put(“xl”,“上海人”);
//上述代码mpas只保存一组数据,为 mpas.put(“xl”,“上海人”);
十一,泛型
https://www.cnblogs.com/coprince/p/8603492.html
十二,线程
https://www.cnblogs.com/java1024/archive/2019/11/28/11950129.html
十三,枚举
https://blog.csdn.net/hellojoy/article/details/79883671