从零开始学JAVA(05):面向对象编程--02

一、用断点调试程序

  • 查看变量的值,展开实例看内部成员变量的值
  • 程序继续执行之 Step Over:执行一行
  • 程序继续执行之 Step Out:继续执行直到遇到下一个断点或者程序结束
  • 执行任意代码值 Evaluate Expression:在对话框输入代码,直接执行看结果值
  • 条件断点:给断点设置条件,只有满足条件时,程序才会在该断点停住
  • Step Into:进入被调用的方法内部继续调试

二、给对象添加行为(方法)

1、方法定义

package com.phone;

public class Phone {
    public String name;


    // 访问修饰符---public
    // 返回值类型---void(无需返回值用void表示,它是Java中的关键字)
    // 方法名---communicateByTelephone
    // 参数列表---圆括号中的
    // 方法体--大括号中的
    public void communicateByTelephone() {
        System.out.println("打电话给" + name);
    }
}

2、方法调用

  • 通过引用的点操作符,可以调用对象的方法
  • 方法调用要有括号,即使没有参数 
  • 方法可以使用的数据:对象的成员变量
package com.phone.parts;

public class Phone {
    public String name;


    // 访问修饰符---public
    // 返回值类型---void(无需返回值用void表示,它是Java中的关键字)
    // 方法名---communicateByTelephone
    // 参数列表---圆括号中的
    // 方法体---大括号中的
    // 局部变量---方法体内部定义的变量
    public void communicateByTelephone() {
        System.out.println("打电话给" + name);
    }
}

3、方法返回值、形参

参数可以是任意类型,包括自定义类型,甚至是自己的类型

package com.phone;

public class Phone {
    public String name;
    int age = 18;

    // 访问修饰符---public
    // 返回值类型---void(无需返回值用void表示,它是Java中的关键字)
    // 方法名---communicateByTelephone
    // 参数列表---圆括号中的
    // 方法体--大括号中的
    public void communicateByTelephone() {
        System.out.println("打电话给" + age + "岁的" + name);
    }

    // 在方法中指定方法的返回值类型
    // Java中一个方法只能有一种返回值,如果不需要则使用void
    // 如果定义了返回值,则必须使用return语句返回方法的返回值
    // 一个方法可以有多个返回语句
    // 返回值如果是基本数据类型,则要类型完全相同,或者符合类型自动转换规则
    // 如果不符合规则,可以使用强制类型转换
    // 一个方法可以有多个参数
    public String heSaid(String language) {
        if (language == "Chinese") {
            return "你好";
        } else {
            return "没听懂";
        }
    }
}
package com.phone.parts;
import com.phone.Phone;
public class MyPhone {
    public static void main(String[] args) {
        Phone myPhone = new Phone();
        myPhone.name = "lcy";
        myPhone.communicateByTelephone();
        String say;
        say = myPhone.heSaid("Chinese");
        System.out.println(say);
    }
}

三、参数和返回值是怎么传递的

  • 参数和方法里的局部变量可以认为是一样的东西。只是在方法调用之前,会用实参给参数的形参赋值
  • 发生在代码块里的,就让它留在代码块里。方法执行完毕,参数和方法的局部变量的数据就会被删除回收
  • 调用一个有返回值的方法时,就好像访问一个成员变量一样,能拿到一个值
  • 给返回值赋值,并不会影响充当返回值的变量

四、局部变量、参数、实例

  • 局部变量就是在方法体内部创建的变量
  • 参数局部变量在使用完之后就清除了
  • 对象是实体/实例,不是变量。对象创建出来后,会被存放在”堆“中,不受方法控制,不会随着方法结束被清除。对象不受限制,只要有引用指向一个对象,这个对象的数据就可以通过这个引用来访问
  • 方法中隐藏一个this自引用,指向调用这个方法的对象
  • 使用一个对象调用方法,也叫做在这个对象上调用方法。因为方法可以访问这个对象的值
  • 访问一个成员变量:this.成员变量名

五、方法是什么?

  • 类中如果不定义方法,只定义成员变量,那么一个类就没有了功能,只是简单的数据的封装。创建一个对象之后,所有对这些数据的操作,都要在每个用到这些数据的地方写代码
  • 类通过成员变量和方法描述世界。成员变量是描述一类事物的属性,是数据;方法是描述一类事物的行为和功能,是对数据的操作。
  • 方法中的代码可以通过操作一个对象的成员变量,完成一个功能。
  • 方法是java中代码执行的单元,是代码的载体。所有的代码都属于某一个方法。
  • 方法就是一个语句,加上数据输入this自引用和参数,执行后得到一个返回值。所以使用一个对象调用一个方法,可以叫做调用对象的方法,也可以叫做“在这个对象上调用方法”。
  • 方法不是对象的一部分,它是类的一部分。每个对象可以给成员变量赋不同的值,但是无法让方法有不同的行为。同理,无论在一个类中定义多少方法,都不会影响创建一个对象所占用的内存
  • 和代码块相比,方法特殊在:有名字、有返回值、有参数、有this自引用、明确的属于某一个类、可以通过对象引用来调用

猜你喜欢

转载自blog.csdn.net/m0_47135993/article/details/128276178