引言:对于对象而言,状态(实例变量表示)影响行为(方法表示),行为影响状态.类的每个实例(即特定类型的每个对象)可以维持自己的实例变量编写类,即在描述JVM如何制作该类型的对象
1.传值给方法:
方法会运用形参,调用的一方会传入实参
实参是传给方法的值,当它传入方法后就成了形参,形参类比于局部变量
JAVA是通过值传递的,即通过拷贝传递,这样意味着在方法中无法改变调用方传入的参数
一言以蔽之:以值传递就是拷贝传递
要点:
传入与传出的值类型可以隐含地放大或明确地缩小
方法只能声明单一的返回值,若要返回多个值,则需要声明返回类型为数组,如多个值类型不同,则涉及到ArrayList
对于传入的参数是对象,明确JAVA中传递的所有东西都是值,但仅限于变量携带的值,即引用变量的是远程控制,传入的就是远程控制的拷贝
2.封装(encapsulation)
2.1.Getter与Setter
Getter主要目的是返回实例变量的值
Setter主要目的是设定实例变量的值,不通过圆点运算符的原因是保证安全性,强制通过此方法设定而不是直接的设定
2.2.封装基本原则
将实例变量标记为私有,提供公有的Getter与Setter来控制存取
2.3.数组中对象的行为
记得一条原则:数组中的元素值也是远程遥控,同其他对象
3.声明与初始化实例变量
未说明时,默认值
integers,char 0
floating points 0.0
booleans false
references null(代表没有操作对象的远程控制,是个引用,而不是对象)
4.局部变量与实例变量的区别
实例变量声明在类中而不是方法中
局部变量在方法中
局部变量使用前必须初始化(没有默认值,编译不通过)
5.变量的比较
主要用==运算符,判别主数据类型是否相等以及两个引用变量是否引用同一个对象
但若想知道两个对象是否真的相等,应用equals()方法,此处相等的意义包含对象的类型,而==运算符只是代表字节组合的相等