目录
一.方法重载
1.基本介绍:java中允许同一个类中,多个同名方法的存在,但要求形参列表不一致
2.使用细节:
a.方法名:必须相同
b.形参列表:必须不同(形参类型或个数或顺序,至少有一样不同,参数名无要求)
c.返回类型无要求
3.判断题:与void show(int a,char b ,double c){}构成重载的有(答案放在最后)
a.void show(int x,char y ,double z){}
b.int show (int a ,double c,char b ){}
c.void show (int a ,double c,char b){}
d.boolean show (int c , char , b){}
e.void show (double c){}
f.double show (int x , char y , double z){}
g.void shows(){}
二.可变参数
1.基本概念:java允许将同一个类中多个同名同功能但参数不同的方法,封装成一个方法,
就可以通过可变参数实现。
2.基本语法:访问修饰符 返回类型 方法名(数据类型... 形参名){
}
3.举例:求多个数的和
T t = new T();
int res = t.sum(4,3,2);
System.out.println(res);
//可变参数
//1.int...表示接受的可变参数,类型是int,即可以接受多个int
//2.使用可变参数时,可以当做数组来使用
//3.遍历nums求和即可
//class T{
public int sum(int... nums){
System.out.println("接受的可变参数的数量=" + nums.length);
int res = 0;
for (int i = 0; i < nums.length; i++) {
res += nums[i];
}
return res;
}
}
细节:可变参数可以和普通参数一起放在形参列表,但必须保证可变参数在最后
T t = new T();
int res = t.sum(4,3,2);
System.out.println(res);
//可变参数的实参可以为数组
//细节可变参数可以和普通参数一起放在形参列表,但必须保证可变参数在最后
//一个形参列表中只能出现一个可变参数
class T{
public void f2(String str,int... nums){
}
}
三.作用域
细节使用:
1.全局变量:也就是属性,作用域为整个类体
2.属性在定义时,可以直接赋值
3.全局变量可以不赋值,因为有默认值
4.局部变量必须初始化
5.属性和局部变量可以重名,访问时遵循就近原则
6.属性生命周期较长,伴随对象的创建而创建,伴随对象的销毁而销毁
7.局部变量生命周期较短,伴随它的代码块的执行而创建,伴随代码块的结束而销毁
Person p = new Person();
p.say();//当执行say方法时,say方法的局部变量比如name,会创建,当say执行完毕后
//name的局部变量就销毁,但是属性(全局变量)仍然可以使用
//作用域
class Cat {
//全局变量:也就是属性,作用域为整个类体
//属性在定义时,可以直接赋值
//全局变量可以不赋值,因为有默认值
//局部变量必须初始化
int age = 10;
{
int age1 = 2;//相当于局部变量,只能在大括号中起作用
}
public void cry() {
//1.局部变量一般是指在成员方法中定义的变量
//2.n和name就是局部变量,作用域在cry中
String name = "jack";
int n = 10;
}
public void eat(){
System.out.println(age);//调用全局变量
}
}
//属性和局部变量可以重名,访问时遵循就近原则
class Person{
String name = "jack";
public void say(){
String name = "king";
System.out.println(name);
}
public void hi(){
String address = "北京";
//String address = "上海";//错误重复定义变量
}
}
//属性生命周期较长,伴随对象的创建而创建,伴随对象的销毁而销毁
//局部变量生命周期较短,伴随它的代码块的执行而创建,伴随代码块的结束而销毁
判断题答案:bcde