Java学习(方法和块)

本文主要探讨Java中的方法,包括方法的定义、调用、参数传递、方法的重载和重写。方法作为代码复用的重要手段,其访问类型、返回值及参数列表构成关键要素。Java中只有值传递,无论是基本类型还是引用类型。此外,详细阐述了方法的重载原则,并讲解了方法重写的注意事项。接着,文章提到了Java中的块,如普通代码块、构造代码块和静态代码块。

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

方法

方法一直都是程序设计非常重要的一部分,通过方法可以更好的实现代码的复用。在Java学习中我们最先接触到的就是main方法

public static void main(String args[]){

}

可以看到方法的定义格式是:

[修饰符] 返回值类型 方法名(参数列表){
    执行语句;
    return 返回值;
}

main方法中的public和static都是修饰符,修饰符是可以选择的,它告诉编译器如何调用该方法,并且定义了方法的访问类型。比如static修饰的方法只能通过类名调用,public修饰表示大家都可以访问;返回值类型就是一个数据类型,方法执行最后要返回该数据类型的值,如果没有返回值就需要设成void;方法名和参数列表构成了方法签名,参数可以是任意类型,也可以没有;return关键字用来返回方法结果,如果方法不需要返回值则用return;或不用return。

在Java中,方法的调用是比较简单的,用static修饰的方法用类名调用,没有static修饰的方法用对象名调用。也可以根据方法有没有返回值去判断是否需要声明一个变量去接收方法返回值。

在方法中有一个地方是比较需要注意的,就是它的参数传递。

public class Demo {
    public int test(int a){
        a = a + 1;
        System.out.println("a = " + a);//2
        return a;
    }
    public String test2(String str){
        str = str + 1;
        System.out.println("str = " + str);//11
        return str;
    }
    public static void main(String[] args) {
        Demo demo = new Demo();
        int a = 1;
        String str = "1";
        demo.test(a);
        demo.test2(str);
        System.out.println("a = " + a);//1
        System.out.println("str = " + str);//1
    }
}

在Java只有值传递。对于基本数据类型,方法参数传入的是一个值;对于引用数据类型,它传入的是一个地址值,实际传入的都是值。

方法的重载:方法名相同,参数列表不同。

public class Demo {
    public int test(int a) {
        return a;
    }

    public void test(String str) {
        return;
    }

    public static void main(String[] args) {

    }
}

上例就是一个方法的重载,原因是它们同名并且参数不同,而不是因为返回值类型不同。方法的重载与返回值类型以及修饰符无关。

方法的重写:子类定义了父类方法。

public class Demo {
    public void test() {
        System.out.println("父类方法");
    }
}
public class Demo1 extends Demo {
    @Override
    public void test() {
        System.out.println("子类重写");
    }

    public static void main(String[] args) {
        Demo1 demo1 = new Demo1();
        demo1.test();//子类重写
    }
}

在子类重写父类方法的时候要注意一个问题,子类方法的访问权限不能比父类方法高,比如父类方法用public修饰,子类重写方法不能用private等访问权限比public高的权限修饰符。其实这很容易理解,子类是对父类的一个拓展,,是将父类"发扬光大"的,肯定越多人知道越好。

在Java中块可以分为3种:普通代码块(方法中),构造代码块,静态代码块

public class Demo {
    //构造代码块
    {
        int a = 1;
        System.out.println("a = " + a);
    }
    //静态代码块
    static {
        String name = "李易峰";
        System.out.println("name = " + name);
    }

    //普通代码块
    public static void main(String[] args) {
        
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值