阅读本文约“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方法及传参的一些问题