java参数传值

参数传值

        在方法中很重要的一部分就是方法的参数,在方法里面的参数属于局部变量,当对象调用方法的时候,参数就被分配了存储空间,如果是含参数的方法,在调用的时候要有参数的传递值,没有参数的方法另说
传参的机制

        在JAVA中.方法中的参数都是被传入值的,也会是说,方法调用者想传递什么样的数值(A)就传递什么数值给这个参数(B),在方法中无论这个传入的参数(B)怎么变,都不影响数值A,

基本数据类型的参数的传递

        一般来讲,如果方法中定义传入参数的数据类型,那么调用方法的时候,就要传递什么类型的参数,(但是在出传递的时候也有例外,对于基本类型的数据参数,在传递的时候,传递的参数的级别不可以高于规定的参数的级别,首先是要同种类型)

比方说:

public class example(int a){
    //省略
}
​

这时候我们规定的是int 就不能传递这个以外的,可以传递short,

基本数据类型(四类八种)

可要参考下表

名称范围字节大小
byte-2^7~2^7-11字节
short-2^15~2^15-12字节
int-2^31~2^31-14字节
long-2^63~2^63-18字节
char字符型2字节
float单精度4字节
double双精度8字节
boolean布尔型1字节

数值型大小排序:byte<short<int<long<float<double

        注意:不是说如果规定的是double ,那么前面低于double的都可以作为传入的参数,要看数据类型

字符型可以自动转化为int型,即char<int<long<float<double

每一位的二进制位称之为一个比特位,记作bit

每八位二进制位称之为一个比特,记作byte。1byte = 8 bit

byte型底层实现:左边第一位代表符号位,此外1000 0000 不代表-0而代表-128,所以范围-128~127

float底层实现:左边第一位代表符号位,左边第二位代表整数位,后面七位代表幂次,后面23位代表小数位

引用数据类型的参数的传值

首先说一下什么引用数据类型,包括数组,对象,以及还没有学习到的接口,当参数时引用数据类型的时候,传值传递的是变量的"引用"(按照我的理解就是变量存放的物理地址)Ps:欢迎批评指正

也就是说,声明两个对象都用了相同的引用,其中一个改变,另外一个也随着改变

举比方打个例子

类
public class Radio {
    void Radio(Battery battery){
        battery.ElectricityLevel=battery.ElectricityLevel-10;
    }
}
类
package com.day08;
​
public class Battery {
    int ElectricityLevel;
    Battery(int a){
        ElectricityLevel=a;
    }
}
测试类
package com.day08;
​
public class testTheRadio {
    public static void main(String[] args) {
        //创建南孚对象并且赋初值
        Battery nanfu = new Battery(100);
        System.out.println("当前南孚的电量:"+nanfu.ElectricityLevel);
        Radio radio=new Radio();
        System.out.println("收音机使用南孚电池");
        radio.Radio(nanfu);
        System.out.println("现在的电量:"+nanfu.ElectricityLevel);
    }
}
​
可变参数------>底层是数组

        什么是可变参数呐,我们之前见过的含参数的方法的构造,传递参数是一般参数的类型和个数都是已知的,但是可变参数就不是,再声明方法的时候时候不给出参数的个数,只知道参数的类型。

举比方打个例子

public void A(int ...x){}
上面的意思就是在A的参数的列表中,从第一个到最后一个都是int类型
public void B(float k,int...x)
意思就是在参数列表里面第一个是float,然后从第二个开始到最后一个都是int
注意:
x是一个代表,它代表参数列表的最后一个元素,所以在使用时的时候...x的后面没有任何参数
​
值的注意的是,在JAVA里面提供增强的for语句来遍历参数代表X代表的参数
for(声明的循环变量:代表参数){
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值