方法的重载和数组

方法的重载是:多个参数名称一样但是参数列表不一样

好处:只需记住唯一一个方法名称,就可以实现类似的多个功能。

与方法重载有关的因素:

1.参数个数

2.参数类型

3.参数多类型顺序不同

方法重载与下列因素无关:

1,与参数名称无关

2.与方法返回值类型无关

package cn.itcast.day04.demo02.demo04;
    /*
   比较两个参数是否相同。
   参数类型分别为两个byte类型,两个shore类型,两个int类型,两个long类型。

    */
public class Demo02MethodOverloadSame {
        public static void main(String[] args) {
            byte a =10;
            byte b =20;
            System.out.println(isSame(a,b));
            System.out.println(isSame((short)10,(short)20));
            System.out.println(isSame(100,159));
            System.out.println(isSame(15L,20L));
        }

        public static boolean isSame(byte a,byte b) {
            System.out.println("两个byte类型的方法执行了");
            boolean same;
            if (a==b){
                same =true;
            }else{
                same=false;
            }
            return same;
        }
        public static boolean isSame(short a,short b){
            System.out.println("两个short类型的方法执行了");
            boolean same = a == b ? true:false;
            return same ;
        }
        public static boolean isSame(int a, int b){
            System.out.println("两个int类型的方法执行了");
            return a==b;
        }
        public static boolean isSame(long a,long b){
            System.out.println("两个long类型的方法执行了");
            if (a==b){
                return true;
            }else{
                return false;
            }
        }

}

数组:数组是一种可以储存放多个数字的容器

数组的特点:

1.数组是一种引用数据类型

2.数组中的多个数据,类型必须一致。

3.数组的长度在运行期间不可变。,

package cn.itcast.day05.demo01.demo01.demo01;
/*
数组的初始化;在内存中创建一个数组,并向其中放入默认值;
数组的初始化
1.静态初始化(指定长度)
2.动态初始化(指定内容)
动态初始化数组的格式:
数据类型[] 数组名称 = new 数据类型[数组长度]
数据类型是指该数组存储的数据是什么类型
数组名称就是数组的名字
new是指创建一个新的对象
数组长度是指数组里可以存储多少个数据
 */
public class Demo01Array {
    public static void main(String[] args) {
        //创建一个可以存储150个int类型数据的数组
        int[] array1 = new int [150];
        //创建一个数组可以存储十个double类型的数据
        double[] array2 = new double[10];
        //创建一个可以存储50个字符串的数据类型

    }

}
    

静态数组初始化举例:

package cn.itcast.day05;
/*
静态初始化:指定数据内容
动态初始化:指定数据个数
静态初始化基本格式
数据类型[] 数组名称 = new 数据类型[]{元素1,元素2 ,元素3,.....}
 */
//虽然静态初始化无明确指定数组长度,但是元素个数就是长度,
//数组长度是确定的。
public class Demo02Array {
    public static void main(String[] args) {
        //创建一个int类型数组,里面存储5 .15.20
        int[] arrayA = new int[]{5,15,20};
        //创建一个数组,用来存储String字符串,存储内容为Hello,World!我爱这个世界。
        // 世界以痛吻我,要我回报以歌。
        String[] arrayB = new String[]{"Hello,World!" ,"我爱这个世界"};

    }
}

静态初始化简写举例:

package cn.itcast.day05;
/*
静态初始化基本格式:
数据类型[] 数组名称 = new 数据类型[]{元素1,元素2 ,元素3,.....}
静态初始化简易格式
数据类型[] 数组名称 ={元素1,元素2 ,元素3,.....}
注意事项:
1,虽然静态初始化未明确指定长度,但仍会自动推送的到长度。
2.静态初始化格式可与拆分为两个步骤
3.动态初始化也可以拆分为两个步骤。
4,静态初始化的缩略格式不可以进行拆分。

使用建议:
如果已经明确知道数组中具体内容则选择静态初始化,否则,选用动态初始化。
 */

public class Demo03Array  {
    public static void main(String[] args) {
        int[ ] arrayA={10,20,30};
        //2.静态初始化格式可与拆分为两个步骤
        int[] arrayB;
        arrayB = new int[]{11,22,33};
        //动态初始化也可以拆分为两个步骤
        int[] arrayC;
        arrayC= new int[5];

    }
}

静态初始化访问数组元素。

package cn.itcast.day05;
/*
[I@6956de9:内存地址哈希值
[:数组 I:int类型
访问数组元素的格式
数组名称[索引值];
索引值从0开始
 */

public class Demo04ArrayUse {
    public static void main(String[] args) {
        int[] arrayA = new int[]{10,20,30};
        System.out.println(arrayA);

        //直接打印输出
        System.out.println(arrayA[0]);
        System.out.println(arrayA[1]);
        System.out.println(arrayA[2]);
        //将数组中单个元素赋值给变量,对变量进行打印输出。
        int num = arrayA[1];
        System.out.println(num);



    }
}

动态初始化访问元素

 

package cn.itcast.day05;
/*
使用初始化动态数组时候,其中元素会自动拥有一个默认值,规则如下:
如果是整数类型默认为0;
如果是小数类型默认为0.0;
如果是字符类型默认为'/u0000';
如果是布尔类型,默认为false值;
如果是引用类型,默认为是null值。

注意事项;
静态初始化也有默认值,只不过系统立即将默认值替换为大括号中的具体数值
 */
public class Demo05ArrayUse {
    public static void main(String[] args) {
        int[] arrayA =new int[3];

        System.out.println(arrayA);
        System.out.println(arrayA[0]);
        System.out.println(arrayA[1]);
        System.out.println(arrayA[2]);
        arrayA[0]=123;
        arrayA[1]=123;
        arrayA[2]=123;
    }
}

 |Java的内存需要划分成为5个部分:
1.栈(Stack) :存放的都是方法中的局部变量。方法的运行一 定要在栈当中运行。
局部变量:方法的参数,或者是方法(}内部的变量作用域:一旦超出作用域,立刻从栈内存当中消失。:2.堆(Heap) :凡是new出来的东西,都在堆当中。
堆内存里面的东西都有一个地址值: 16进制堆内存里面的数据,都有默认值。规则:
如果是整数  默认为0如果是浮点数  默认为0.0
如果是字符  默认为"\u0000如果是布尔  默认为false如果是引用类型  默认为null
3.方法区(Method Area) :存储class相关信息,包含方法的信息。
4,本地方法栈(Native Method Stack) :与操作系统相关。5.寄存器(pc Register) :与CPU相关。


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值