31 java面向对象_2 _方法的回顾与加深

java面向对象_2 _方法的回顾与加深

方法的定义

  1. 修饰符

  2. 返回类型

  3. break与return的区别:

    1. break,跳出switch,结束整个循环;
    2. return,结束方法,返回一个结果(可以为空,看返回值类型)
  4. 方法名:注意规范就ok,见名知意

  5. 参数列表:(参数类型,参数名)( 可变参数:(参数类型… 参数名))

  6. 异常抛出 : ArrayIndexOutOfBoundsException: 数组下标越界异常,

    ​ 之后还要学

代码:

package com.wlw.oop;

import java.io.IOException;

// Demo01 就是一个类
public class Demo01 {

    // main方法
    public static void main(String[] args) {

    }

    /*
    修饰符 返回值类型  方法名(..参数..){
        //方法体
        return  返回值;
    }
     */
    public String hello(){
        return "Hello,World!";
    }

    public void print(){
        return;
    }

    public int max(int a, int b){
        return a>b ? a : b; //三元运算符
    }

    public static void readFile(String file) throws IOException {

    }
}

方法的调用

  1. 静态方法

  2. 非静态方法

    package com.wlw.oop;
    
    public class Student {
    
        //静态方法 加修饰符static
        public static void say(){
            System.out.println("学生说话了");
        }
    
        //非静态方法  没有加修饰符static
        public void read(){
            System.out.println("学生在读书");
        }
    
    }
    
    package com.wlw.oop;
    
    public class Demo02 {
    
        public static void main(String[] args) {
    
            //静态方法的调用
            System.out.println("静态方法的调用");
            Student.say();
    
    
            //非静态方法的调用
            //先实例化这个类,用 new
            System.out.println("\n"+"非静态方法的调用");
            //对象类型 对象名 = 对象值
            Student student = new Student();
            student.read();
        }
        
        /*
            static
            1. a和b两个方法,如果都没有加修饰符static,他们之间可以互相调用
            2. a和b两个方法,如果都加了修饰符static,他们之间也可以互相调用
            3. a和b两个方法,有一个没加,另一个加了,他们之间就不能直接互相调用了
    
            因为static 是和类一起加载的,当类存在时,加static的方法也就存在了
            没有加static的方法,需要 类实例化 之后,才能存在
         */
        public static void a(){
           // b();  这样就会报错
        }
        public void b(){
    
        }
    }
    
  3. 形参与实参

    package com.wlw.oop;
    
    public class Demo03 {
    
        public static void main(String[] args) {
    
            //这里的(1,2)就是实参(实际参数)
            int i = Demo03.add(1, 2);
            // int i1 = add(1, 2); 因为add这个静态方法就是写在当前类下,可以直接调用方法名
    
            System.out.println(i);
        }
    
        //(int a,int b) ,这是形式参数,确定类型就好,名字可以随意
        public static int add(int a,int b){
            return a+b;
        }
    }
    
  4. 值传递与引用传递 (18 Java方法_1 _方法的定义与调用 _值传递与引用传递 ,这里面也写了)

    package com.wlw.oop;
    
    //值传递
    /*
        在方法的调用过程中,实参把它的实际值传递给形参,
        此传递过程就是将实参的值复制一份传递到函数中,
        这样如果在函数中对该值(形参的值)进行了操作将不会影响实参的值。
        因为是直接复制,所以这种方式在传递大量数据时,运行效率会特别低下。
     */
    public class Demo04 {
        public static void main(String[] args) {
            int a = 1;
    
            //change(a);
            Demo04.change(a);
    
            System.out.println(a);  //输出为 1
        }
    
        public static void change(int a){
            a = 10;
        }
    }
    
    package com.wlw.oop;
    
    //引用传递
    /*
        引用传递弥补了值传递的不足,
        如果传递的数据量很大,直接复过去的话,会占用大量的内存空间,
        而引用传递就是将对象的 地址值 传递过去,函数接收的是原始值的首地址值。
        在方法的执行过程中,形参和实参的内容相同,指向同一块内存地址,
        也就是说操作的其实都是源数据,所以方法的执行将会影响到实际对象。
     */
    public class Demo05 {
        public static void main(String[] args) {
    
            Person person = new Person();
            System.out.println(person.name); //null
    
            Demo05.change(person);
            System.out.println(person.name);//输出为 大海
        }
    
        public static void change(Person person){
            // person 是一个对象,指向的是---> Person person = new Person();这是一个具体的对象,可以改变属性
            person.name = "大海";
        }
    }
    
    //定义了一个Person类,有一个属性:name
    class Person{
        String name; //默认值为 null
    }
    
  5. this关键字:当前这个类,或当前这个对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

悬浮海

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值