JAVA重载,可变参数和定义域(韩顺平)

目录

一.方法重载

二.可变参数

三.作用域


一.方法重载

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值