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


Java猫说
1.3k 声望930 粉丝

现架构设计(码农)兼创业技术顾问,不羁平庸,热爱开源,杂谈程序人生与不定期干货。