java基础04

方法

  public static void main(String[] args) {
     /*   int a=1;实际参数
        int b=2;
       int sum=add(a,b);*/
        int sum = add(1, 2);//快捷方式
        System.out.println(sum);
    }
    //加法   在方法类中调用 所以加了static
    public static  int add(int a,int b){//a,b形式参数
        return a+b;
    }
什么是值传递 什么是引用传递?
引用类型表示你操作的数据是同一个,也就是说当你传一个参数给另一个方法时,你在另一个方法中改变这个变量的值,那么调用这个方法是传入的变量的值也将改变.
值类型表示复制一个当前变量传给方法,当你在这个方法中改变这个变量的值时,最初生命的变量的值不会变.
传值:传递的是值的副本。方法中对副本的修改,不会影响到调用方。
传引用:传递的是引用的副本,共用一个内存,会影响到调用方。此时,形参和实参指向同一个内存地址。对引用副本本身(对象地址)的修改,如设置为null,重新指向其他对象,不会影响到调用方。

方法的重载

规则:

  1. 方法名必须相同。
  2. 参数列表必须不相同(个数不同,或类型不同,或参数排列顺序不同)。
  3. 方法的返回值可以相同可以不相同。
  4. 仅仅返回值不同不能是方法的重载。
 public static void main(String[] args) {
        int max1 = max(11, 22);
        double max2 = max(11.2, 21.3);
        System.out.println(max1);
        System.out.println(max2);
    }
    public  static  int max(int a,int b){
        int result=0;
        if(a>b){
            result=a;
        }
        else {result=b;}
        return result;
    }
    public static double max(double num1,double num2){
        double result=0;
        if(num1>num2){
            result=num1;
        }
        else {result=num2;}
        return result;
    }

命令行传递参数

结合之前的右键项目–>点击show in Explorer ->打开文件夹后输入 cmd 在命令提示符中javc 文件名.java编译下 然后cd… 退回scr路径 然后再java 包名.类名+后面的操作 就ok了

问题 :

截图

原因应该是编译后找不到class类文件的路径

解决方法:我的解决方法就是在环境变量的时候在classpath路径上加入".;"

t

方法转载于:https://www.cnblogs.com/liuhappy/p/10102800.html

可变参数

    public static void main(String[] args) {
        Demo05 demo05=new Demo05();
        demo05.test(1,2,3,4,5);
    }
    //可变参数 可以有任意多个同类型的形参,并且实参也要同类型,但必须放到最后一个
    //public void test(int ...i,double a)这个是不可以的
    public void test(int ...i){
        System.out.println(i[0]);
        System.out.println(i[1]);
        System.out.println(i[2]);
        System.out.println(i[3]);
        System.out.println(i[4]);
    }

递归函数

  //递归求阶乘
    public static int fun(int n){
        if (n==1){return 1;}//终止条件
        else{
            return fun(n-1)*n;//缩小问题规模
        }
    }
1、明确递归终止条件;

2、给出递归终止时的处理办法;

3、提取重复的逻辑,缩小问题规模。

数组

 public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        int[]nums;//1 定义
        nums= new int[10];//创建一个数组
        int sum=0;
     //给数组赋值
        for (int i = 0; i < nums.length; i++) {
            nums[i]=scanner.nextInt();
        }
        System.out.println();
     //求数组的和
        for (int k = 0; k < nums.length; k++) {
            sum+=nums[k];
        }
        System.out.println("总和为"+sum);
     //遍历数组
        for (int j = 0; j < nums.length; j++) {
            //System.out.print(nums[j]+'\t');
            System.out.println(nums[j]+"\t");
        }

    }
'\t'与"\t"的区别:
'\t':1.如果'\t'前所连接内容长度不是8的整数倍,那么'\t'会添加相应的空格数使总长度达到最近的8的整数倍
     2.如果'\t'前所连接内容长度为8的整数倍,那么'\t'会添加8个空格
"\t":制表符,使打印的数据更工整,对齐。

java报错信息:java.langArrayIndexOutOfBoundsException (数组越界)

数组的三种初始化

public static void main(String[] args) {
        //静态初始化:创建+赋值
        int []num={1,2,3,4,5};
        //引用类型
        Demo01[] demo={new Demo01(),new Demo01()};
        //动态初始化
        int []num1=new int[10];
    }

数组是引用类型,它的元素相当于类的实例化数据,因此数组一经分配空间,其中每个元素也会被按照实例变量的方式分配隐式初始化

数组的四个基本特点

  1. 长度确定,数组一旦创建,大小是不可以改变的。
  2. 元素的类型必须相同,不允许程序混合类型。
  3. 数组的元素可以为任何数据类型,包括基本类型和引用类型
  4. 数组变量属于引用类型,可以把数组看成对象,数组的每个元素相当于该对象的成员变量,数组本身就是对象,java中的对象是在堆中的,因此数组无论保存原始类型还是其它对象类型,数组对象本身是在堆中的。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值