他のクラスの最終フィールドにアクセスする良い方法は何ですか?javaの最終フィールドに他のクラスからアクセスするための正しい方法
A)民間それを作るとgetterメソッドとsetterメソッド
public class Game extends JPanel {
private final Racquet racquet;
public Game() {
racquet = new Racquet(this);
}
}
public class Ball {
private Game game;
Ball(final Game game) {
this.game = game;
}
void move(int speed) {
if (collision()) {
y = game.getRacquet().getTopY() - DIAMETER;
}
}
}
public class Racquet {
final Game game;
public Racquet(final Game game) {
this.game = game;
}
public int getTopY() {
return Y;
}
}
Bに機能を与える)デフォルトと直接variable.methodnameを使用し、それを維持することにより、他のクラスからそれを分離します。
public class Game extends JPanel {
final Racquet racquet;
}
public class Ball {
void move(int speed) {
if (collision()) {
y = game.racquet.getTopY() - DIAMETER;
}
}
}
public class Racquet {
final Game game;
public Racquet(final Game game) {
this.game = game;
}
public int getTopY() {
return Y;
}
}
最終的なフィールドに直接アクセスすると、パフォーマンスが向上しますか?
私はあなたがそれを移動するために、ラケットのクラスでメソッドを持っているのが好きです。上に移動する、下に移動する、などメソッドが内部的に仕事をするようにする –
y = game.getRacquet()。getTopY() - DIAMETER; Aとy = game.getRacquet()。getTopY() - DIAMETER; B – Gaurav
ボールクラスではラケット(位置)の属性を取得し、直径を減算します。ボールの位置をラケットに渡して、ゲッターを呼び出すのではなく、そのメソッドが仕事をするようにします。 –