资讯专栏INFORMATION COLUMN

【Java猫说】Java对象的行为

includecmath / 2714人阅读

摘要:阅读本文约分钟对象的行为,这里的对象即上一章中的类吧浅意状态影响行为,行为影响状态这是一个令人深思的话题了。是通过值传递的,也就是说通过拷贝传递。声明一个类型的变量并赋值为,代表的字节组合会放进称为的变量中。

阅读本文约“2分钟”

对象的行为,这里的对象即上一章中的类吧(浅意)

状态影响行为,行为影响状态!

这是一个令人深思的话题了。

同一类型的每个对象能够有不同的方法行为吗?

仔细想一下其实是可以的,任一类的每个实例都带有相同的方法,但是方法可以根据实例变量的值来表现不同的行为。

这里举例来说的话,Song这个类有两个实例变量,而play()方法会播放其中一个实例变量指定的歌曲名。但其方法是相同的。

void play(){
   System.out.println(title);
}
//main
Song song = new Song();
song.setTitle("同一首歌");
song.setArtist("Myself");
Song song1 = new Song();
song1.setTitle("你的微笑");
song1.setArtist("MySelf");

由于不同的程序设计背景和个人喜好,你可能会用实参或形参来调用传给方法的参数。

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

重点是:如果某个方法需要参数,你就一定得传东西给他,那个东西得是适当类型的值。

且如果你将一个方法声明有返回值,你就必须返回所声明类型的值。

当然,如果你有用过一些成熟的编译器,他们也会主动拒绝你返回错误的类型。

方法是可以传入多个参数的,如果方法有参数,你一定要以正确数量、类型和顺序来传递参数。

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

//声明一个int类型的变量并赋值为7,代表7的字节组合会放进

//称为x的变量中。

int x = 7;



//声明一个有int参数的方法,参数名称为z

void go(int z){ }



//以x为参数传入go()这个方法,x的字节组合会被拷贝并装

//进z中

foo.go( x );



//在方法中改变z的值,此时的x的值不会改变!

//传入z的只是一个拷贝

//方法无法改变调用方所传入的参数

void go ( int z ){

    z = 0;

}

这里有一些要点需要你注意!

——类定义对象所知及所为

——对象所知是实例变量

——对象所为者是方法

——方法可依据实例变量来展现不同的行为

——方法可使用参数,这代表你可以传入一个或多个值的方法

——传给方法的参数必须符合声明时的数量、顺序及类型

——传入与传出方法的值类型可以隐含地放大或明确地缩小

——方法必须声明返回类型,使用void类型代表方法不返回任何东西

——如果方法声明了非void的返回类型,那就一定要返回与声明类型相同的值。

本文已转载个人技术公众号:UncleCatMySelf
欢迎留言讨论与点赞
上一篇推荐:【Java猫说】Java多线程之内存可见性(下篇)
下一篇推荐:【Java猫说】关于Java方法及传参的一些问题

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/71670.html

相关文章

  • Java猫说】关于Java方法及传参一些问题

    摘要:我可不可以忽略返回值并未要求一定要处理返回值。你可以调用返回非类型的方法而不必理会返回值,这代表你要的是方法的行为而不是返回值,你可以不指派返回值。 阅读本文约1.2分钟 1、如果想要传入的参数是对象而不是primitive主数据类型会怎样? 在Java中所传递的所有东西都是值,但此值是变量所携带的值。还有,引用对象的变量所携带的是远程控制而不是对象本身,若你对方法传入参数,实际上传...

    woshicixide 评论0 收藏0
  • Java猫说】类与对象那些事

    摘要:也可以这么说,对象就好像通讯簿中的一笔数据。对象有已知的事物,并能执行工作。对象本身已知道的事物成为实例变量,它代表对象的状态。对象可执行的动作称为方法,它代表对象的行为。 阅读本文约2.1分钟。 当你在设计类时,要记得对象时靠类的模型塑造出来的,你可以这样看: ——对象是已知事物 ——对象会执行的动作 对象本身已知的事物称为实例变量,它们代表对象的状态(数据),且该类型的每一个对象...

    BWrong 评论0 收藏0
  • Java猫说Java多线程之内存可见性(下篇)

    摘要:阅读本文约分钟上一次我们说到互斥代码的实现过程,如果有忘记或不清楚的可以去上篇看看。猫说多线程之内存可见性上篇今天我们了解下重排序。 阅读本文约3分钟 上一次我们说到synchronized互斥代码的实现过程,如果有忘记或不清楚的可以去上篇看看。【Java猫说】Java多线程之内存可见性(上篇) 今天我们了解下重排序。 其使代码书写的顺序与实现执行的顺序不同,指令重排序是编译器或处理...

    elliott_hu 评论0 收藏0
  • Java猫说】主数据类型和引用

    摘要:阅读本文约分钟变量有两种主数据类型和引用。主数据类型用来保存基本类型的值,包括整数,布尔和浮点数等,而对象引用保存的是对象的引用。而在中,主数据类型也有不用的大小与名称。 阅读本文约2.3分钟 变量有两种:primitive主数据类型和引用。 Java注重类型。它不会让你做出把长颈鹿类型变量装进兔子类型变量中这种诡异又危险的举动——如果有人对长颈鹿调用跳跃这个方法会发生什么悲剧?并且...

    dongfangyiyu 评论0 收藏0
  • Java猫说】ArrayList处理战舰游戏BUG

    摘要:阅读本文约分钟处理战舰游戏前言你听说过有些程序员上班总是迟到,而下班又很准时吗因为他们使用了。复现上一章我们的程序运行起来了,但是还存在一些低级或者严重的,即当用户击中一个坐标后可以重复击杀来快速接受游戏。 阅读本文约 6分钟 ArrayList处理战舰游戏BUG 前言 你听说过有些程序员上班总是迟到,而下班又很准时吗?因为他们使用了Java API。核心Java函数库是由一堆等着被...

    godruoyi 评论0 收藏0

发表评论

0条评论

includecmath

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<