gpt4 book ai didi

java - 如何创建类和链接方法

转载 作者:行者123 更新时间:2023-12-02 14:45:20 24 4
gpt4 key购买 nike

我构建了一个(例如制作简单动画的类):

public class myAnimations {

private Animation animation;
private ImageView imageView;

public myAnimations(ImageView img) {
super();
this.imageView = img;
}

public void rotate(int duration, int repeat) {
animation = new RotateAnimation(0.0f, 360.0f,
Animation.RELATIVE_TO_SELF, 0.5f,
Animation.RELATIVE_TO_SELF, 0.5f);
animation.setRepeatCount(repeat);
animation.setDuration(duration);
}

public void play() {
imageView.startAnimation(animation);
}

public void stop() {
animation.setRepeatCount(0);
}
}

我可以这样使用它:

ImageView myImage = (ImageView) findViewById(R.id.my_image);
myAnimations animation = new myAnimations(myImage);
animation.rotate(1000, 10);
animation.play(); //from this way…

但是如果我想能够像这样使用它:

ImageView myImage = (ImageView) findViewById(R.id.my_image);
myAnimations animation = new myAnimations(myImage);
animation.rotate(1000, 10).play(); //…to this way

所以我可以调用这个double方法(我不知道名字),我应该如何构建我的类?

PS,如果您知道我需要的名称,请随时编辑标题。

最佳答案

您询问是否允许方法链接,为此,您的某些方法不应返回 void,而应返回 this。例如:

// note that it is declared to return myAnimation type
public MyAnimations rotate(int duration, int repeat) {
animation = new RotateAnimation(0.0f, 360.0f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
animation.setRepeatCount(repeat);
animation.setDuration(duration);
return this;
}

因此,当调用此方法时,您可以将另一个方法调用链接到它,因为它返回当前对象:

animation.rotate(1000, 10).play();

您需要对您想要允许链接的每个方法执行此操作。

请注意,根据 Marco13 ,这也称为 Fluent Interface .

顺便说一句,您将需要学习和使用 Java naming conventions 。变量名应全部以小写字母开头,而类名应以大写字母开头。学习并遵循这一点将使我们更好地理解您的代码,并且将使您更好地理解其他人的代码。因此,将您的 myAnimations 类重命名为 MyAnimations。

关于java - 如何创建类和链接方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32167622/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com