Java基础整理(三)

本文详细介绍了Java中的静态与非静态方法的区别,包括它们的加载时机和调用方式。探讨了方法调用、重载、可变参数以及递归的概念,并提供了实例。此外,还展示了如何使用switch语句、for循环以及打印三角形的代码示例。
摘要由CSDN通过智能技术生成

方法

1. 静态方法与非静态方法

静态方法:与静态成员变量一样,属于类本身,在类装载的时候被装载到内存中,不自动进行销毁,会一直存在内存中,直到JVM关闭。

非静态方法:又称实例化方法,属于实例对象,实例化之后才会分配内存,必须通过类的实例来引用,当实例对象被JVM回收之后,也跟着消失。

区别:

  • 静态方法是在类中使用static修饰的方法,在类定义的时候已经被装载和分配。

    非静态方法是不加static关键字的方法,在类定义时没有占用内存,只有在类被实例化成对象时,对象调用该方法才被分配内存。

  • 静态方法中只能调用静态成员或者静态方法,不能调用非静态方法或者非静态成员。

    非静态方法既可以调用静态成员或者方法又可以调用其他的非静态成员或者方法。

2. 方法调用

调用方法: 对象名.方法名(实参列表)

Java内部的传递都是值传递,即将实参传递到定义的方法中的形参。

3. 方法重载

重载:在一个类中,有相同的函数名称,但形参不同的函数。

方法重载规则:

  • 方法名称必须相同
  • 参数列表必须不同(个数不同、或类型不同、参数排列顺序不同等)
  • 方法的返回类型可以相同也可以不同
  • 仅仅返回类型不同不足以成为方法的重载

4. 可变参数

**可变参数:**在指定参数类型后加一个省略号(…),即可以传递任意个数的实参。

:一个方法只能指定一个可变参数,它必须是方法的最后一个参数。任何普通的参数必须在它之前声明。

public class Demo{
    public static void main(String[] args){
        Demo demo = new Demo();
        demo.test(1,2,3,45678); 
        demo.test(new int[]{1,2,3,4}); //传数组也行
    }
    
    public void test(int... i){
        System.out.println(i[0]);
    }
}

数组和可变参数相比:(网上资源转载)

在这里插入图片描述

5. 递归

递归结构两个部分:

  • 递归头:什么时候不调用自身方法。如果没有递归头,将陷入死循环。
  • 递归体:什么时候需要调用自身方法。

递归实例:阶乘

public class Demo {
    public static void main(String[] args) {
        System.out.println(f(4));

    }

    public static int f(int n){
        if(n==1){ //递归头
            return 1;
        }else{
           return n*f(n-1); //递归体
        }
    }
}

循环

1. switch语句

switch语句中的变量类型可以是byte、short、int、char或String

2. for语句

for(;;){
    //死循环
}

增强for循环:主要用于数据或集合

for(声明语句:表达式){
    //代码语句
}

示例:

int[] num={10,20,30,40};
for(int x:num){  //增强for循环
    System.out.println(x); //遍历输出数组
}
  • 打印三角形

    public class Demo {
        public static void main(String[] args) {
    
            for(int i=1;i<=5;i++){
                for(int j=5;j>i;j--){
                    System.out.print(" ");
                }
                for(int j=1;j<=i;j++){
                    System.out.print("*");
                }
                for(int j=1;j<i;j++){
                    System.out.print("*");
                }
                System.out.println();
            }
        }
    }
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值