- 状态(实例变量)影响行为(方法),行为(方法)影响状态(实例变量)。
- 方法可以使用一个或多个参数:方法会运用形参(parameter),调用的一方会传入实参(argument)。实参是传给方法的值,当它传入方法后就成了形参。
- 传给方法的参数必须符合声明时的数量、顺序和类型。
- 传给方法的参数值可以是直接指定的文字或数字(例如 2 或 ‘c’ 等),或者是与所声明参数相同类型的变量。
- 传入的参数会以相同的顺序赋值。第一个实参赋给第一个形参,依此类推。
- Java是通过值传递的,即通过拷贝传递的。(方法无法改变调用方所传入的参数)
- 可以从方法中取得返回值:每个方法都必须声明返回值的类型。(如果把方法设成返回void类型,代表没有返回值)
- 如果将一个方法声明有返回值,则必须返回所声明类型的值。
- 方法只能声明单一的返回值。若需要返回3个int值,则可以把返回类型声明为int的数组,将值装进数组中来返回。若有混合不同类型的值要返回时,可以使用ArrayList。
- 可以不指派返回值:即可以调用返回非void类型的方法而不必理会返回值,这代表我要的是方法的行为而不是返回值。
- 传入和传出方法的值可以隐含地放大或是明确地缩小。
- Getter:返回实例变量的值。
- Setter:取用一个参数来设定实例变量的值。
- 封装(Encapsulation)的基本原则:将实例变量标记为私有的(private),并提供公有的(public)Getter和Setter来控制存取动作。
- 实例变量是声明在类内而不是方法中。
- 实例变量永远都会有默认值!
integers | 0 |
floating point | 0.0 |
booleans | false |
references | null(代表没有操作对象的远程控制) |
- 局部变量是声明在方法中的。
- 局部变量没有默认值!局部变量在使用前必须初始化,否则编译器会显示错误。
- 方法的参数基本与局部变量的规则相同——它们都是在方法中声明的(准确的说应该是在方法的参数列声明的,但相较于实例变量来说它也算局部的)。
变量的比较
- 使用==来对比两个primitive主数据类型,或判别两个引用是否指向同一对象(相同返回ture,不同返回false)。
- ==运算符只是比较其中的字节组合。
- 使用equals()来判断两个对象是否在意义上相等