Java静态方法

该博客围绕Java展开,先复习字符串拼接,重点讲解静态方法。介绍了方法语法机制、调用形式,阐述方法重载需满足在同一类、方法名相同、参数列表不同等条件,还提及方法递归即方法自己调用自己,递归若无结束条件会引发异常,且耗内存。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.字符串拼接(复习)

仅对于下面理解输出有帮助
内容来自Java核心卷1 P45
与绝大多数的程序设计语言一样,Java语言允许使用 + 号连接(拼接)两个字符串。 当将一个字符串与一个非字符串的值进行拼接时,后者被转换成字符串

3.6.2 拼接
与绝大多数的程序设计语言一样,Java语言允许使用 + 号连接(拼接)两个字符串。
String expletive = "Expletive";
String PC13 = "deleted";
String message = expletive + PC13;
上述代码将“ Expletivedeleted” 赋给变量 message (注意, 单词之间没有空格, + 号按照
给定的次序将两个字符串拼接起来)。
当将一个字符串与一个非字符串的值进行拼接时,后者被转换成字符串(在第 5 章中可
以看到,任何一个 Java 对象都可以转换成字符串)。例如:
int age = 13;
String rating = "PC" + age;
rating 设置为“ PG13”。
这种特性通常用在输出语句中。例如:
System.out.println("The answer is " + answer);
这是一条合法的语句, 并且将会打印出所希望的结果(因为单词 is 后面加了一个空格, 输出
时也会加上这个空格)。

2.静态方法(好理解)

复习完方法再解面向对象的

一.体验程序

public class MethodTest01 {
    public static void main(String[] args) {
        int x=100;
        int y=100;
        int z=x+y;
        System.out.println(x+"+"+y+"="+z);
        add(10,20);
        add(39,20);
        MethodTest01.add(20,60);
    }
    public static void add(int a,int b)
    {
        int c=a+b;
        System.out.println(c);
    }
}

100+100=200
30
59
80
方法是可以完成某个特定功能并且可以被重复利用的代码片段

二.方法语法机制

[修饰符列表] 返回值类型 方法名(形式参数列表){
	方法体
}

① [修饰符列表],此项是可选项,不是必须的,目前大家统一写成 public static,后面的 博客再说
② 返回值类型,此项可以是 java 语言当中任何一种数据类型,包括基本数据类型,也包括所有的引用数据类型,当然,如果一个方法执行结束之后不准备返回任何数据,则返回值类型必须写 void。返回值类型例如:byte,short,int,long,float,double,boolean,char,String,void 等
只要有“return”关键字的语句执行,当前方法必然结束,但不是整个程序结束
不能利用return返回多个值,以后用数组实现
区别
break 用来终止switch和离他最近的循环
return 用来终止离它最近的一个方法

调用方法语法形式

.那个点表示调用的意思

  MethodTest01.add(20,60);

如果在本类中,MethodTest01可以省略
类名.方法名(实际参数列表);

三.方法重载

方法重载(overload)是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数。

public class OverloadTest01 {
    public static void main(String[] args) {

        System.out.println(sum(10,20));

        System.out.println(sum(20.0,30.0));
        System.out.println(sum(20L,50L));
    }

    public static int sum(int a,int b) {
        return a+b;
    }
    public static double sum(double a,double b){
        return  a+b;
    }
    public static long sum(Long a,Long b){
        return a+b;
    }
}

代码满足以下三个条件的时候构成方法重载
① 在同一个类当中。
② 方法名相同。
③ 参数列表不同:个数不同算不同,顺序不同算不同,类型不同也算不同。

public class OverloadTest02 {
    public static void main(String[] args) {
        m1();
        m1(10,20.0);
        m2(20.0,10);
        //m5();
        //m6();
    }
    public static void m1(){

    }
    public static void m1(int a,double b){
        System.out.println("int a,double b");
    }
    public static void m2(double a,int b){
        System.out.println("double a,int b");
    }
    /*

    public static int m5(){
        return 1;
    }
    public static double m5(){
        return 1.0;
    }
    public static void m6(){

    }
    static void m6(){
        
    }*/
}


int a,double b
double a,int b
从m5,m6可知方法重载与返回值类型修饰符列表无关
引申:我们从System.out.println()中可以体会到println其实也是一种方法重载

四.方法递归

通俗理解:方法自己调用自己
当递归无结束条件,程序一定会发生StackOverflowError等异常
方法递归耗费空间内存比较大,能用for、while循环尽量代替,但在极少情况,不用递归,程序无法实现

public class RecursionTest02{
    public static void main(String[] args){
        int value1=sum(3);
        System.out.println(value1);
    }
    int result1=0;
    public static int sum(int n){
        if(n ==1)
            return 1;

        return n+sum(n-1);
    }

}

6
内存图分析
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值