Java(成员)方法

文章详细介绍了Java中成员方法的定义,包括访问修饰符、返回数据类型、参数列表和方法体。讨论了方法命名规则、参数传递机制以及方法调用的不同情况,如在同一类内和跨类调用。还举例说明了如何通过方法提高代码复用性和实现对象克隆。
摘要由CSDN通过智能技术生成

Java成员方法的定义:(定义一个方法指的就是成员方法)

访问修饰符【public/private/... ,如果不写,就是默认访问修饰符】返回数据类型 方法名 (参数列表...){

//方法体语句;

return返回值;

}

方法的命名:驼峰命名法,如getSum

参数列表:表示成员方法输入cal(int n )

数据类型(返回类型):表示成员方法输出,void表示没有返回值

方法主体,表示为了实现某一功能代码块

return语句不是必须的(返回数据类型处写void就不用写了,或者只写return),返回类型可以为任意值,包含基本数据类型和引用类型。

基本数据类型的传参机制和引用类型的传参机制(引用类型传递的是地址(其实也可以说是值,但值是地址),可以通过形参影响/修改实参。)

方法写好后,如果不去调用,就不会输出;需要先创建对象,然后调用方法。(方法调用时,若在同一个类中的方法调用,直接调用即可,不用创建对象,跨类中的方法A类调用B类时,需要通过对象名调用。)

public class Main{
    public static void main(String[] args) {
        A a = new A();
        //a.sayOK();
        a.m1();
    }
}
class A{
    public void print(int n ){
        System.out.println(n);
    }
    public void sayOK(){
        //同一个类中的方法,直接调用即可
        print(10);
        System.out.println("继续执行sayOk()");
    }
    //在A类调用B类的方法,需要通过对象名调用
    public void m1(){
        //创建一个B类的对象,然后再调用方法
        System.out.println("m1方法被调用");
        B b = new B();
        b.hi();
        System.out.println("m1方法继续执行");
    }
}

class B{
    public void hi(){
        System.out.println("B类中的hi()方法被执行");
    }
}

方法中不能再定义方法,即方法不能嵌套定义

public class Method01{
    public static void main(String[] args){
        Person p1 = new Person;
//程序一旦发现你在调用这个方法就会去找这个类里面这个speak方法,找到之后就执行里面的方法体
//把speak返回的值,赋给变量人returnres
       int returnres =  p1.speak(5);
        System.out.println("计算结果"+returnres);
    }
}

class Person{
    String name;
    int age;
//(int n)形参列表,表示当前有一个形参n,可以接收用户输入
//public表示这个方法是公开的,int表示方法执行后返回一个int(此处要是写void就没有返回)
    public int speak(int n){
    int res = 0;
    for(int i = 1; i<=n; i++){
    //该方法可以接收一个数n,计算从1+...+n的结果
            res += i;
        }
    //System.out.println("计算结果"+res);
    return res//把res的值传给接收的变量/对象。
    }
}

方法的调用机制:

利用方法,多次调用可以代替循环使用代码的传统方法,提高代码复用性,还可以将实现的细节封装起来供其他用户来调用即可。

//遍历一个(二维)数组,输出数组的各个元素值
public class Method01{
    public static void main(String[] args){
        int [][]map = {{0,0,1},{1,1,1},{1,2,3}};
        //遍历map数组
    MyTools tool = new MyTools();
    tool.printArr(map);
    tool.printArr(map);
        
}

class MyTools{
    public void printArr(int[][] map){
    for(int i = 0; i<map.length; i++){
            for(int j = 0; j<map[i].length; j++ ){
                //print直接打印,println换行打印
                System.out.print(map[i][j] + “\t ”);
            }
                System.out.println();
        }
    }
}

克隆对象(编写一个方法copyPerson,可以复制一个Person对象,返回复制的对象,即克隆对象,要求得到新对象和原来的对象是两个独立的对象,但只是他们属性相同。)

编写方法的思路:

确定方法的返回类型:Person类

方法的名字:copyPerson

方法的形参(Person p)

方法体:创建一个对象,并复制属性,返回即可

public class ResultDto{
    public static void main(String[] args) {
        Person p = new Person();
        p.age = 100;
        p.name = "jack";
        MyTools tools = new MyTools();
        //将参数p传入进去,然后在这个方法里面产生一个新的对象,然后再返回给p2
        Person p2 = tools.copyPerson(p);
        //到此p和p2是Person对象,但是是两个独立的对象,只是属性相同
        System.out.println(p.age+p.name);
        System.out.println(p2.age+p2.name);
    }

}
class  Person{
    String name;
    int age;
}

class  MyTools{
    public Person copyPerson(Person p){
        //创建一个新对象
        Person p2 = new Person();
        //把原来对象的名字赋给p2.name
        p2.name = p.name;
        //把原来对象的年龄赋给p2.age
        p2.age = p.age;
        return p2;
    }
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值