04 方法操作实例变量

文章详细介绍了Java中方法的参数使用,包括传值、返回值、多个参数及拷贝传递的概念。强调了Java通过值传递参数,以及对象参数实际上是引用的拷贝。此外,文章讨论了封装的重要性,尤其是数据隐藏和setter/getter方法的角色。还提到了实例变量和局部变量的区别,以及如何比较对象和基本类型的平等性。
摘要由CSDN通过智能技术生成
  1. 方法的参数

1.1 传值给方法

方法会运用形参,调用的一方会传入实参。

实参是传给方法的值,当它传入方法后就成了形参。参数和局部变量是一样的,它有类型与名称,可以再方法内运用。

1.2 从方法中取返回值

如果一个方法声明有返回值,就必须返回所声明类型的值(或是与声明类型兼容的值)。

1.3 多个参数

方法可以有多个参数,在声明的时候要用逗号分开,传入时也用逗号分开。

如果方法有参数,一定要以正确数量、类型、顺序来传递参数。

1.4 拷贝传递

Java是通过值传递的,也就是说通过拷贝传递。

1.5 参数和返回值

传入的参数是对象时,引用变量携带的是远程控制而不是对象本身,传入参数时实际传入的是远程控制的拷贝。

方法只能声明单一的返回值,若需要返回3个int值,就把返回类型说明为int的数组,将值装进数组来返回。

一定要返回所声明的类型吗?
你可以返回被隐含转换成声明类型的其他类型值。例如用byte当作int类型返回。
若声明的类型容器小于想要返回的类型时,必须作明确的转换。

  1. 封装

我们需要创建Setter这个方法给所有的实例变量,并寻求某种方法强制其它程序都必须通过Setter来设定变量而不是直接地存取。

public void setHeight(int ht){
    if(ht > 9){
        height = ht;//这个检查可以确保高度不低于9
    }
}

强迫所有人都得调用Setter,可以防止设定为无法接受的高度。

2.1 数据隐藏

如何隐藏数据:使用公有和私有两个存取修饰符。

封装的基本原则:将你的实例变量标记为私有的,并提供公有的getter与setter来控制存取动作。

  1. 初始化实例变量

3.1 声明与初始化实例变量

实例变量永远都会有默认值,如果你没有明确地赋值给实例变量,或没有调用setter,实例变量还是会有值。

integers

0

floating points

0.0

booleans

false

references

null

要记得null代表没有操作对象的远程控制,它是个引用而不是对象。

3.2 实例变量和局部变量之间的差别

  1. 实例变量是声明在类内而不是方法中

  1. 局部变量是声明在方法中的

  1. 局部变量在使用前必须初始化(否则无法编译)

局部变量没有默认值!如果在变量被初始前就要使用的话,编译器会显示错误

方法的参数基本上与局部变量是相同的——它们都是在方法中声明的(方法的参数列声明的,相较于实例变量来说也算是局部的),如果调用方法而没有赋值参数时编译器就会显示错误。

3.3 变量的比较

“==”与equals()

  1. 使用“==”来比较两个primitive主数据类型或者判断两个引用是否引用同一个对象

  1. 使用equals()来判断两个对象是否在意义上相等

像是两个String对象是否带有相同的字节组合

==只用来比对两个变量的字节组合

  • 使用==来比较primitive主数据类型

  • 使用==来判别两个引用是否都指向同一对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值