Size: a a a

2020 December 27

AK

Artem Kushnir in learn.java
Внутри массива 10x10
источник

А

Алексей in learn.java
т.е. трехмерный массив?
источник

D

D.A in learn.java
Что я делаю не так?
Браузер обновляю через ctrl+r
источник

D

D.A in learn.java
источник

ch

central hardware in learn.java
D.A
Что я делаю не так?
Браузер обновляю через ctrl+r
untitled в пути не смущает?
источник

D

D.A in learn.java
central hardware
untitled в пути не смущает?
aplication так называется
источник

D

D.A in learn.java
проект
источник

ch

central hardware in learn.java
D.A
aplication так называется
и что с того, статику вы же раздаете не из корня проекта
источник

D

D.A in learn.java
central hardware
и что с того, статику вы же раздаете не из корня проекта
но сервлет работает под ним
источник

m

makora in learn.java
Здравствуйте, только начинаю изучать Java и не могу понять один момент, есть пример игры из книги, которая состоит из трёх классов.
Её смысл состоит в том, что загадывается число от 0 до 9 и три игрока поочерёдно пытаются отгадать это число, впоследствии игра проверяет числа которые ввели игроки и выводит кто угадал а кто нет.

Класс запуска игры
public class GameLauncher {
   public static void main (String[] args) {
       GuessGame game = new GuessGame();
       game.startGame();
   }
}
Класс, который содержит логику игры
public class GuessGame {
   Player p1;
   Player p2;
   Player p3;

   public void startGame() {
       p1 = new Player();
       p2 = new Player();
       p3 = new Player();

       int guessp1 = 0;
       int guessp2 = 0;
       int guessp3 = 0;

       boolean p1isRight = false;
       boolean p2isRight = false;
       boolean p3isRight = false;

       int targetNumber = (int) (Math.random() * 10);
       System.out.println("Я загадываю число от 0 до 9...");

       while(true) {
           System.out.println("Число, которое нужно угадать, - " + targetNumber);
       
           p1.guess();
           p2.guess();
           p3.guess();

           guessp1 = p1.number;
           System.out.println("Первый игрок думает, что это " + guessp1);
           guessp2 = p2.number;
           System.out.println("Второй игрок думает, что это " + guessp2);
           guessp3 = p3.number;
           System.out.println("Третий игрок думает, что это " + guessp3);

           if (guessp1 == targetNumber) {
               p1isRight = true;
           }
           if (guessp2 == targetNumber) {
               p2isRight = true;
           }
           if (guessp3 == targetNumber) {
               p3isRight = true;
           }

           if (p1isRight || p2isRight || p3isRight) {

               System.out.println("У нас есть победитель!");
               System.out.println("Первый игрок угадал? " + p1isRight);
               System.out.println("Второй игрок угадал? " + p2isRight);
               System.out.println("Третий игрок угадал? " + p3isRight);
               System.out.println("Конец игры.");
               break;

           } else {

               System.out.println("Игроки должны попробовать еще раз.");
           }
       }
   }
}
Класс, в котором игроки идёт ввод чисел от игроков
public class Player {
   int number;
   public void guess() {
       number = (int) (Math.random() * 10);
       System.out.println("Думаю, что это число " + number);
   }
}

В классе GuessGame мы вне метода startGame() задаем три переменных экземпляра типа Player, а потом уже в методе startGame() создаем три объекта Player и
присваиваем их трем переменным экземпляра. Но ведь если я задам три переменных экземпляра и сразу же создам объекты Player вне метода, или же наоборот в методе:
public class GuessGame {
   public void startGame() {
       Player p1 = new Player();
       Player p2 = new Player();
       Player p3 = new Player();
ИЛИ
public class GuessGame {
       Player p1 = new Player();
       Player p2 = new Player();
       Player p3 = new Player();
       public void startGame() {
           <тело метода>
Программа будет работать одинаково в трёх случаях
Вопрос:
На что это влияет и как поступать лучше?
источник

ch

central hardware in learn.java
makora
Здравствуйте, только начинаю изучать Java и не могу понять один момент, есть пример игры из книги, которая состоит из трёх классов.
Её смысл состоит в том, что загадывается число от 0 до 9 и три игрока поочерёдно пытаются отгадать это число, впоследствии игра проверяет числа которые ввели игроки и выводит кто угадал а кто нет.

Класс запуска игры
public class GameLauncher {
   public static void main (String[] args) {
       GuessGame game = new GuessGame();
       game.startGame();
   }
}
Класс, который содержит логику игры
public class GuessGame {
   Player p1;
   Player p2;
   Player p3;

   public void startGame() {
       p1 = new Player();
       p2 = new Player();
       p3 = new Player();

       int guessp1 = 0;
       int guessp2 = 0;
       int guessp3 = 0;

       boolean p1isRight = false;
       boolean p2isRight = false;
       boolean p3isRight = false;

       int targetNumber = (int) (Math.random() * 10);
       System.out.println("Я загадываю число от 0 до 9...");

       while(true) {
           System.out.println("Число, которое нужно угадать, - " + targetNumber);
       
           p1.guess();
           p2.guess();
           p3.guess();

           guessp1 = p1.number;
           System.out.println("Первый игрок думает, что это " + guessp1);
           guessp2 = p2.number;
           System.out.println("Второй игрок думает, что это " + guessp2);
           guessp3 = p3.number;
           System.out.println("Третий игрок думает, что это " + guessp3);

           if (guessp1 == targetNumber) {
               p1isRight = true;
           }
           if (guessp2 == targetNumber) {
               p2isRight = true;
           }
           if (guessp3 == targetNumber) {
               p3isRight = true;
           }

           if (p1isRight || p2isRight || p3isRight) {

               System.out.println("У нас есть победитель!");
               System.out.println("Первый игрок угадал? " + p1isRight);
               System.out.println("Второй игрок угадал? " + p2isRight);
               System.out.println("Третий игрок угадал? " + p3isRight);
               System.out.println("Конец игры.");
               break;

           } else {

               System.out.println("Игроки должны попробовать еще раз.");
           }
       }
   }
}
Класс, в котором игроки идёт ввод чисел от игроков
public class Player {
   int number;
   public void guess() {
       number = (int) (Math.random() * 10);
       System.out.println("Думаю, что это число " + number);
   }
}

В классе GuessGame мы вне метода startGame() задаем три переменных экземпляра типа Player, а потом уже в методе startGame() создаем три объекта Player и
присваиваем их трем переменным экземпляра. Но ведь если я задам три переменных экземпляра и сразу же создам объекты Player вне метода, или же наоборот в методе:
public class GuessGame {
   public void startGame() {
       Player p1 = new Player();
       Player p2 = new Player();
       Player p3 = new Player();
ИЛИ
public class GuessGame {
       Player p1 = new Player();
       Player p2 = new Player();
       Player p3 = new Player();
       public void startGame() {
           <тело метода>
Программа будет работать одинаково в трёх случаях
Вопрос:
На что это влияет и как поступать лучше?
в первом случае вы создали переменные метода во втором переменные класса, а в коде выше, вы обьявляете переменные в классе и иницилизируете их в методе startGame()
источник

m

makora in learn.java
а в чем разница между ними, что лучше или что хуже
источник

m

makora in learn.java
как правильней в этом случае
источник

ch

central hardware in learn.java
makora
как правильней в этом случае
пойти в гугл и прочитать теорию по переменным
источник

m

makora in learn.java
Хорошо, спасибо большое 👍🏻
источник

D𝔇

Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶... in learn.java
makora
Хорошо, спасибо большое 👍🏻
Не за что благодарить. Нет никакой "теории по переменным", которая отвечает на ваш вопрос.
источник

m

makora in learn.java
А что ответит на мой вопрос?
источник

D

D.A in learn.java
central hardware
пойти в гугл и прочитать теорию по переменным
🤦‍♂️🤦‍♂️
источник

D𝔇

Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶... in learn.java
makora
А что ответит на мой вопрос?
Опыт скорее. Может в effective java что-то на эту тему есть, но не уверен.
Но если кратко, то чем меньше область видимости переменных, тем лучше.
источник

m

makora in learn.java
Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶
Опыт скорее. Может в effective java что-то на эту тему есть, но не уверен.
Но если кратко, то чем меньше область видимости переменных, тем лучше.
Спасибо
источник