Как использовать функции и объекты в программе java, которая запрашивает год рождения, а затем интерпретирует, является ли человек пожилым гражданином или нет

#java #function #object

Вопрос:

Учесть следующее:

 package senioreligible;  import java.time.Year;  import java.util.*;   public class SeniorEligible {    public static void main(String[] args) {  System.out.print("Enter your Year of Birth: ");    Scanner in = new Scanner(System.in);  int birthYear = in.nextInt();    int age = Year.now().getValue() - birthYear;    System.out.println("Your are "  age " years old.");    if (agegt;=60) {  System.out.println("You are eligble to be senior citizen.");   }   else {  System.out.println("You are not eligible to be senior citizen.");  }  }  }  

У меня есть рабочий образец кода, но проблема в том, как использовать функции и объекты в этом синтаксисе

Ответ №1:

 import java.util.*;  import java.time.format.DateTimeFormatter;  import java.time.LocalDateTime;   public class Main  {  public static void main (String[]args)  {  System.out.print ("Enter your BirthYear-");  Scanner in = new Scanner (System.in);  int birthYear = in.nextInt ();  LocalDateTime now = LocalDateTime.now ();  // System.out.println (now.getYear ());   int age = now.getYear () - birthYear;   System.out.println ("Your are "   age   " years old.");   if (age gt;= 60)  {  System.out.println ("You are eligble to be senior citizen.");  }  else  {  System.out.println ("You are not eligible to be senior citizen.");  }  }  }  

Ответ №2:

Та же программа с функцией.

 import java.time.LocalDate;  import java.time.Period;  import java.util.Scanner;   public class Main {  public static void main(String[] args) {  System.out.print("Enter your Date of birth-");  Scanner in = new Scanner(System.in);  int birthYear = in.nextInt();  int birthMonth = in.nextInt();  int birthDay = in.nextInt();  calAge(birthYear,birthMonth,birthDay);  }   static void calAge(int birthYear,int birthMonth, int birthDay) {  LocalDate birthday = LocalDate.of(birthYear, birthMonth, birthDay);  Period p = Period.between(birthday, LocalDate.now());   System.out.println("Your are "   p.getYears()   " years old.");   if (p.getYears() gt;= 60) {  System.out.println("You are eligible to be senior citizen.");  } else {  System.out.println("You are not eligible to be senior citizen.");  }  }   }  

Ответ №3:

Я бы предложил создать метод(функцию) в программе и создать объект класса в основном методе, а затем вызвать метод пользовательского класса, который принимает входные данные для года рождения. Приведенный ниже код теперь работает правильно.

 import java.time.Year; import java.util.*;   public class SeniorEligible {  private int birthYear;   public SeniorEligible() {  Scanner sc = new Scanner(System.in);  System.out.print("Enter your Year of Birth: ");  birthYear = sc.nextInt();  sc.close();  }  public static void main(String[] args) {   SeniorEligible ob = new SeniorEligible();   int age = Year.now().getValue() - ob.birthYear;   System.out.println("Your are "   age   " years old.");   if (age gt;= 60) {  System.out.println("You are eligble to be senior citizen.");  } else {  System.out.println("You are not eligible to be senior citizen.");  } }  

}

Комментарии:

1. @Torben Это обсуждение находится на территории codereview — определенно согласен — удалит мой комментарий.