java学习-3
方法重载
重载就是在一个类中,有相同的函数名称,但是形参不同的函数
方法重载的规则
- 方法名相同
- 参数列表必须不同(编译器以此来选择相对应的方法)
- 方法的返回类型没有要求
理论: 方法名相同时,编译器会根据调用方法的参数个数、参数类型等去逐个匹配,以选择对应的方法。
可变参数(不定项参数)
jdk1.5开始,Java支持传递同类型的可变参数
在方法声明中,在特定参数类型后加上一个省略号(...)
在一个方法中只能指定一个可变参数,他必须是方法的最后一个参数。任何普通参数必须在他之前声明
public class Main {
public static void main(String[] args) {
//this.test(1,2,3,4);静态方法中没有this关键字
Main main = new Main();
main.test(1,2,3,4);
}
public void test(int... i){
System.out.println(i[0]);
System.out.println(i[1]);
System.out.println(i[2]);
System.out.println(i[3]);
}
}
数组
相同类型数据的有序集合
数组的创建
dataType[] arrayRefVar; //首选方法
dataType arrayRefVar[]; //效果相同,但不是首选方法,类似C语言
Java语言使用new操作符来创建数组
dataType[] arrayRefVar=new dataType[arraySize];
数组长度
arrayRefVar.length
三种初始化
静态初始化
int[] a={1,2,3};
Man[] mans={new Man(1,1),new Man(2,2)};
动态初始化
int[] a=new int[2];
a[0]=1;
a[1]=2;
数组的默认初始化
数组是引用类型,他的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式被隐式初始化
数组工具类——Arrays
Arrays.toString(a);//打印数组元素
Arrays.sort(a);//升序排序
Arrays.fill(a,0)//数组赋值为0
...
面向对象
构造器
相当于C++的构造函数,没有返回值,也不能写void,一个类不写也会存在一个构造方法
定义了有参构造,如果还需要使用无参构造就需要显示无参构造
继承
java中类只有单继承,没有多继承
继承是类和类之间的一种关系,除此之外,类和类之间的关系还有依赖、组合、聚合等。
super
子类通过super访问父类
调用父类的构造器必须在子类的第一行
//父类
public class person(){
public person(){
}
}
//子类
public class man(){
public man(){
super();//必须在子类构造器的第一行
}
}
注意点
- super调用父类的构造方法,必须在构造方法的第一个
- super必须只能出现在子类的方法或者构造方法中
- super和this不能同时调用构造方法
Vs this:
代表的对象不同:
- this:本身调用者这个对象
- super:代表父类对象的应用
前提
- this:没有继承也可以使用
- super:只能在继承条件下才可以使用
构造方法
- this(): 本类的构造
- super():父类的构造
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理