从零开始学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自引用、明确的属于某一个类、可以通过对象引用来调用