数组
1、数组的复制
System.arraycopy(a,1,b,0,4);
int[] b=Arrays.copyOf(a,6);
2、数组的扩容
int[] a=Arrays.copyOf(a,a.length+1);
3、数组排序
Arrays.sort(arr);
方法:
封装一段特定的业务逻辑功能、只干一件事、可以被反复调用、
减少代码重复,有利于代码的复用、有利于代码的维护
1、定义:修饰词 返回值类型 方法名(参数){方法内容};
2、方法的调用:
无返回值:方法名(有参传参);
有返回值:数据类型 变量=方法名(有参传参);
3、return:
return;结束方法
return 值;1、结束方法2、返回结构给调用方
对象:存在的一个单个个体(人
)
类:代表一类个体(一群人)
类可以包括
1、对象的属性——————————成员变量
2、对象的动作——————————方法
public class Student{
int age;
String name;
String address;
public void study(){
System.out.println("helloWorld");
}
}
public class Test{
public static void main(String[] args){
Student ls=new Student();
ls.name="李四";
ls.study();
}
}
3方法的重载(overload)
定义:1、发生在同一类中,方法名相同,参数列表不同study(int a);study(double b);
结果:2、编译器在编译时会根据方法的参数类型,自动绑定类型相同的方法
public class Aoo{
void show(){}
void show(int age){}
void show(String name){}
void show(int age,String name){}
void show(String name,int age){}
}
引用:数据类型 引用类型变量 指向 对象
Student zs = new Student();
构造方法:构造函数、构造器、构建器---------复用给成员变量赋初值代码
与类同名,没有返回值类型(连void都没有)
在创建(new)对象时被自动调用
若自己不写构造方法,则编译器默认提供一个无参构造方法,若自己写了构造方法,则不再默认提供
构造方法可以重载
this:
指代当前对象
哪个对象调用方法它指的就是哪个对象
只能用在方法中
**方法中访问成员变量之前默认有个this
**
成员变量与局部变量同名时,若想访问成员变量则this不能省略
class Student{
int age;
//构建一个方法,提高成员变量赋值的复用性
Student(int age){
this.age=age//这里的age的this不能省略
}
void study(){
System.out.println(age);//这里的age前面默认有一个this
}
}
this.成员变量名-------------访问成员变量
this.方法名()-----------------调用方法(了解)
this()---------------------------调用构造方法(了解)
若引用类型变量的值为null,则该引用类型变量不能进行任何点操作了,
若操作则发生NullPointerException空指针异常
引用过程:利用 引用类型变量的 栈 调出 堆 中的 成员变量。
引用类型数组与基本类型数组的区别:
给数组元素赋值必须new一下
若想访问对象数据必须通过数组元素打点
继承
作用:代码复用
通过extends来实现
派生类 特有的属性和行为
超类 共有的属性和行为
- 派生类既能访问自己的,也能访问超类,但是超类不能访问派生类的
- 一个超类可以有多个派生类,一个派生类只能有一个超类---------单一继承
- 具有传递性
- java规定:先构造超类,再构造派生类
- 在派生类的构造方法中若没有调用超类的构造方法,则默认super()调用超类的无参构造方法
- 在派生类的构造方法中若自己调用了超类的构造方法,则不再默认提供
> super()调用超类构造方法,必须位于派生类构造方法的第1行
super.成员变量名---------------------访问超类的成员变量
super.方法名()-------------------------调用超类的方法--------------如下下
super()-----------------------------------调用超类的构造方法 如下
class Aoo{
Aoo(int a){
}
}
class Boo extends Aoo{
Boo(){
super(5);
}
}
向上造型
1、超类型 的引用 指向 派生类的 对象
Aoo zs =new Boo();
2、能点出来什么,看引用的类型
重写
1、发生在父子类中,方法名相同,参数列表相同
2、重写方法被调用时,看对象的类型(是Aoo or Boo)
class Student{
void study(){
S.o.p"英语"
}
}
class Aoo extends Student{
void study(){
S.o.p"语文"
}
}
class Aoo extends Student{
void study(){
super.study();S.o.p"语文"
}
}