#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 — определенно согласен — удалит мой комментарий.