Answer:
The java program for the given scenario is as follows.
import java.util.*;
import java.lang.*;
public class Main
{
//variables for bill and tip declared and initialized
static double bill=47.28, tip=0.15;
//variables for total bill and share declared
static double total, share1;
public static void main(String[] args) {
double total_tip= (bill*tip);
//total bill computed
total = bill + total_tip;
//share of each friend computed
share1 = total/2;
System.out.printf("Each person needs to pay: $%.2f", share1);
}
}
Explanation:
1. The variables to hold the bill and tip percent are declared as double and initialized with the given values.
static double bill=47.28, tip=0.15;
2. The variables to hold the values of total bill amount and total tip are declared as double.
3. All the variables are declared outside main() and at class level, hence declared as static.
4. Inside main(), the values of total tip, total bill and share of each person are computed as shown.
double total_tip= (bill*tip);
total = bill + total_tip;
share1 = total/2;
5. The share of each person is displayed to the user. The value is displayed with only two decimal places which is assured by %.2f format modifier. The number of decimal places required can be changed by changing the number, i.e. 2. This format is used with printf() and not with println() method.
System.out.printf("Each person needs to pay: $%.2f", share1);
6. The program is not designed to take any user input.
7. The program can be tested for any value of bill and tip percent.
8. The whole code is put inside a class since java is a purely object-oriented language.
9. Only variables can be declared outside method, the logic is put inside a method in a purely object-oriented language.
10. As shown, the logic is put inside the main() method and only variables are declared outside the method.
11. Due to simplicity, the program consists of only one class.
12. The output is attached.