栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/774697.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号